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
This commit is contained in:
Niclas Edenvin
2024-11-27 08:38:29 +00:00
parent 27f48bcc7e
commit a69d14ff61

View File

@@ -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) {