From a69d14ff61061a51c0a0eb33dfad3513109d0fc1 Mon Sep 17 00:00:00 2001 From: Niclas Edenvin Date: Wed, 27 Nov 2024 08:38:29 +0000 Subject: [PATCH] Merged in fix/sw-1011-calendar (pull request #975) fix(SW-1011): when only choosing one date on mobile * fix(SW-1011): when only choosing one date on mobile When choosing only from date on mobile the to date is set to the next day. This was only the case on desktop before, no it's on mobile too. * Remove unnecessary dependency Approved-by: Pontus Dreij Approved-by: Hrishikesh Vaipurkar --- components/DatePicker/index.tsx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/components/DatePicker/index.tsx b/components/DatePicker/index.tsx index b115a163d..9cf6b3446 100644 --- a/components/DatePicker/index.tsx +++ b/components/DatePicker/index.tsx @@ -33,9 +33,18 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) { const [isSelectingFrom, setIsSelectingFrom] = useState(true) - function close() { + const close = useCallback(() => { + if (!selectedDate.toDate) { + setValue(name, { + fromDate: selectedDate.fromDate, + toDate: dt(selectedDate.fromDate).add(1, "day").format("YYYY-MM-DD"), + }) + + setIsSelectingFrom(true) + } + setIsOpen(false) - } + }, [name, setValue, selectedDate]) function showOnFocus() { setIsOpen(true) @@ -72,19 +81,10 @@ export default function DatePickerForm({ name = "date" }: DatePickerFormProps) { const closeIfOutside = useCallback( (target: HTMLElement) => { if (ref.current && target && !ref.current.contains(target)) { - if (!selectedDate.toDate) { - setValue(name, { - fromDate: selectedDate.fromDate, - toDate: dt(selectedDate.fromDate) - .add(1, "day") - .format("YYYY-MM-DD"), - }) - setIsSelectingFrom(true) - } - setIsOpen(false) + close() } }, - [setIsOpen, setValue, setIsSelectingFrom, selectedDate, name, ref] + [close, ref] ) function closeOnBlur(evt: FocusEvent) {