diff --git a/packages/react-aria-components/src/HiddenDateInput.tsx b/packages/react-aria-components/src/HiddenDateInput.tsx index f0ce4b971b7..c87042dfc1b 100644 --- a/packages/react-aria-components/src/HiddenDateInput.tsx +++ b/packages/react-aria-components/src/HiddenDateInput.tsx @@ -11,7 +11,7 @@ */ -import {CalendarDate, CalendarDateTime, parseDate, parseDateTime} from '@internationalized/date'; +import {CalendarDate, CalendarDateTime, parseDate, parseDateTime, toCalendarDate, toCalendarDateTime, toLocalTimeZone} from '@internationalized/date'; import {DateFieldState, DatePickerState, DateSegmentType} from 'react-stately'; import React, {ReactNode} from 'react'; import {useVisuallyHidden} from 'react-aria'; @@ -65,8 +65,15 @@ export function useHiddenDateInput(props: HiddenDateInputProps, state: DateField } else if (state.granularity === 'hour') { inputStep = 3600; } - - let dateValue = state.value == null ? '' : state.value.toString(); + + let dateValue = ''; + if (state.value) { + if (state.granularity === 'day') { + dateValue = toCalendarDate(state.value).toString(); + } else { + dateValue = toCalendarDateTime('timeZone' in state.value ? toLocalTimeZone(state.value) : state.value).toString(); + } + } let inputType = state.granularity === 'day' ? 'date' : 'datetime-local'; diff --git a/packages/react-aria-components/stories/DateField.stories.tsx b/packages/react-aria-components/stories/DateField.stories.tsx index 3c7ff7cdabc..133fc0602ab 100644 --- a/packages/react-aria-components/stories/DateField.stories.tsx +++ b/packages/react-aria-components/stories/DateField.stories.tsx @@ -94,8 +94,7 @@ export const DateFieldAutoFill = (props) => ( {...props} name="bday" autoComplete="bday" - defaultValue={parseAbsoluteToLocal('2021-04-07T18:45:22Z') - } + defaultValue={parseAbsoluteToLocal('2021-04-07T18:45:22Z')} data-testid="date-field-example"> diff --git a/packages/react-aria-components/stories/DatePicker.stories.tsx b/packages/react-aria-components/stories/DatePicker.stories.tsx index 4838bcffe59..ae079959edf 100644 --- a/packages/react-aria-components/stories/DatePicker.stories.tsx +++ b/packages/react-aria-components/stories/DatePicker.stories.tsx @@ -14,6 +14,7 @@ import {action} from '@storybook/addon-actions'; import {Button, Calendar, CalendarCell, CalendarGrid, DateInput, DatePicker, DateRangePicker, DateSegment, Dialog, Form, Group, Heading, Input, Label, Popover, RangeCalendar, TextField} from 'react-aria-components'; import clsx from 'clsx'; import {Meta, StoryFn} from '@storybook/react'; +import {parseAbsoluteToLocal} from '@internationalized/date'; import React from 'react'; import styles from '../example/index.css'; import './styles.css'; @@ -211,7 +212,7 @@ export const DatePickerAutofill = (props) => ( - +