From 260a71b07f46b873ace1913b27ef869ffa9e696b Mon Sep 17 00:00:00 2001 From: elenitaex5 Date: Tue, 22 Jul 2025 14:41:20 +0200 Subject: [PATCH] fix: first time date picker on UTC mode --- src/datetime-picker.tsx | 56 +++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/datetime-picker.tsx b/src/datetime-picker.tsx index 8deb622..ea12bab 100644 --- a/src/datetime-picker.tsx +++ b/src/datetime-picker.tsx @@ -1,3 +1,11 @@ +import dayjs from 'dayjs'; +import duration from 'dayjs/plugin/duration'; +import localeData from 'dayjs/plugin/localeData'; +import localizedFormat from 'dayjs/plugin/localizedFormat'; +import relativeTime from 'dayjs/plugin/relativeTime'; +import timezone from 'dayjs/plugin/timezone'; +import utc from 'dayjs/plugin/utc'; +import jalaliday from 'jalali-plugin-dayjs'; import React, { useCallback, useEffect, @@ -6,40 +14,32 @@ import React, { useRef, } from 'react'; import { I18nManager } from 'react-native'; -import { - dateToUnix, - getEndOfDay, - getStartOfDay, - areDatesOnSameDay, - removeTime, -} from './utils'; import { CalendarContext } from './calendar-context'; +import Calendar from './components/calendar'; import { - CalendarViews, CalendarActionKind, + CalendarViews, CONTAINER_HEIGHT, WEEKDAYS_HEIGHT, } from './enums'; +import { usePrevious } from './hooks/use-previous'; import type { - DateType, CalendarAction, - LocalState, DatePickerBaseProps, - SingleChange, - RangeChange, + DateType, + LocalState, MultiChange, + RangeChange, + SingleChange, } from './types'; -import Calendar from './components/calendar'; -import { useDeepCompareMemo } from './utils'; -import dayjs from 'dayjs'; -import localeData from 'dayjs/plugin/localeData'; -import relativeTime from 'dayjs/plugin/relativeTime'; -import localizedFormat from 'dayjs/plugin/localizedFormat'; -import utc from 'dayjs/plugin/utc'; -import timezone from 'dayjs/plugin/timezone'; -import duration from 'dayjs/plugin/duration'; -import { usePrevious } from './hooks/use-previous'; -import jalaliday from 'jalali-plugin-dayjs'; +import { + areDatesOnSameDay, + dateToUnix, + getEndOfDay, + getStartOfDay, + removeTime, + useDeepCompareMemo, +} from './utils'; dayjs.extend(localeData); dayjs.extend(relativeTime); @@ -294,11 +294,13 @@ const DateTimePicker = ( useEffect(() => { if (mode === 'single') { - let _date = + let _date = (date && - (timePicker - ? dayjs.tz(date, timeZone) - : getStartOfDay(dayjs.tz(date, timeZone)))) ?? + (timeZone === 'UTC' + ? dayjs(date) + : timePicker + ? dayjs.tz(date, timeZone) + : getStartOfDay(dayjs.tz(date, timeZone)))) ?? date; if (_date && maxDate && dayjs.tz(_date, timeZone).isAfter(maxDate)) {