@atlaskit/calendar
Version:
An interactive calendar for date selection experiences.
20 lines • 965 B
JavaScript
import { useMemo } from 'react';
import { createLocalizationProvider } from '@atlaskit/locale/localization-provider';
import { fg } from '@atlaskit/platform-feature-flags/fg';
// eslint-disable-next-line @repo/internal/react/require-jsdoc
export default function useLocale({
locale,
weekStartDay
}) {
const l10n = useMemo(() => createLocalizationProvider(locale), [locale]);
const resolvedWeekStartDay = useMemo(() => weekStartDay !== null && weekStartDay !== void 0 ? weekStartDay : fg('platform-dst-locale-week-start-day') ? l10n.getFirstDayOfWeek() : 0, [l10n, weekStartDay]);
const monthsLong = useMemo(() => l10n.getMonthsLong(), [l10n]);
const daysShort = useMemo(() => l10n.getDaysShort(resolvedWeekStartDay), [l10n, resolvedWeekStartDay]);
const daysLong = useMemo(() => l10n.getDaysLong(resolvedWeekStartDay), [l10n, resolvedWeekStartDay]);
return {
monthsLong,
daysShort,
daysLong,
weekStartDay: resolvedWeekStartDay
};
}