Skip to content

Commit e64ac25

Browse files
authored
Localize TimeField label in DatePicker and DateRangePicker (#3433)
Fixes #3297
1 parent 4fdd20e commit e64ac25

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"time": "Time",
3+
"startTime": "Start time",
4+
"endTime": "End time"
5+
}

packages/@react-spectrum/datepicker/src/DatePicker.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import {Field} from '@react-spectrum/label';
2222
import {FieldButton} from '@react-spectrum/button';
2323
import {FocusableRef} from '@react-types/shared';
2424
import {Input} from './Input';
25+
// @ts-ignore
26+
import intlMessages from '../intl/*.json';
2527
import {mergeProps} from '@react-aria/utils';
2628
import React, {ReactElement, useRef} from 'react';
2729
import '@adobe/spectrum-css-temp/components/textfield/vars.css'; // HACK: must be included BEFORE inputgroup
@@ -32,7 +34,7 @@ import {useDatePickerState} from '@react-stately/datepicker';
3234
import {useFocusManagerRef, useFormatHelpText, useVisibleMonths} from './utils';
3335
import {useFocusRing} from '@react-aria/focus';
3436
import {useHover} from '@react-aria/interactions';
35-
import {useLocale} from '@react-aria/i18n';
37+
import {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';
3638
import {useProviderProps} from '@react-spectrum/provider';
3739

3840
function DatePicker<T extends DateValue>(props: SpectrumDatePickerProps<T>, ref: FocusableRef<HTMLElement>) {
@@ -55,6 +57,7 @@ function DatePicker<T extends DateValue>(props: SpectrumDatePickerProps<T>, ref:
5557
let {isOpen, setOpen} = state;
5658
let {direction} = useLocale();
5759
let domRef = useFocusManagerRef(ref);
60+
let stringFormatter = useLocalizedStringFormatter(intlMessages);
5861

5962
let {isFocused, isFocusVisible, focusProps} = useFocusRing({
6063
within: true,
@@ -159,7 +162,7 @@ function DatePicker<T extends DateValue>(props: SpectrumDatePickerProps<T>, ref:
159162
{showTimeField &&
160163
<div className={classNames(datepickerStyles, 'react-spectrum-Datepicker-timeFields')}>
161164
<TimeField
162-
label="Time"
165+
label={stringFormatter.format('time')}
163166
value={state.timeValue}
164167
onChange={state.setTimeValue}
165168
placeholderValue={timePlaceholder}

packages/@react-spectrum/datepicker/src/DateRangePicker.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import {FieldButton} from '@react-spectrum/button';
2222
import {Flex} from '@react-spectrum/layout';
2323
import {FocusableRef} from '@react-types/shared';
2424
import {Input} from './Input';
25+
// @ts-ignore
26+
import intlMessages from '../intl/*.json';
2527
import {mergeProps} from '@react-aria/utils';
2628
import {RangeCalendar} from '@react-spectrum/calendar';
2729
import React, {ReactElement, useRef} from 'react';
@@ -32,7 +34,7 @@ import {useDateRangePickerState} from '@react-stately/datepicker';
3234
import {useFocusManagerRef, useFormatHelpText, useVisibleMonths} from './utils';
3335
import {useFocusRing} from '@react-aria/focus';
3436
import {useHover} from '@react-aria/interactions';
35-
import {useLocale} from '@react-aria/i18n';
37+
import {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';
3638
import {useProviderProps} from '@react-spectrum/provider';
3739

3840
function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProps<T>, ref: FocusableRef<HTMLElement>) {
@@ -55,6 +57,7 @@ function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProp
5557
let {isOpen, setOpen} = state;
5658
let {direction} = useLocale();
5759
let domRef = useFocusManagerRef(ref);
60+
let stringFormatter = useLocalizedStringFormatter(intlMessages);
5861

5962
let {isFocused, isFocusVisible, focusProps} = useFocusRing({
6063
within: true,
@@ -173,7 +176,7 @@ function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProp
173176
{showTimeField &&
174177
<Flex gap="size-100" marginTop="size-100" UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-timeFields')}>
175178
<TimeField
176-
label="Start time"
179+
label={stringFormatter.format('startTime')}
177180
value={state.timeRange?.start || null}
178181
onChange={v => state.setTime('start', v)}
179182
placeholderValue={timePlaceholder}
@@ -184,7 +187,7 @@ function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProp
184187
hideTimeZone={props.hideTimeZone}
185188
flex />
186189
<TimeField
187-
label="End time"
190+
label={stringFormatter.format('endTime')}
188191
value={state.timeRange?.end || null}
189192
onChange={v => state.setTime('end', v)}
190193
placeholderValue={timePlaceholder}

0 commit comments

Comments
 (0)