From 9b5da1bca32bd0085704d49b978c1fbec9983bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ricardo?= Date: Tue, 4 Jan 2022 06:06:05 -0400 Subject: [PATCH] :zap: performance increase for the DatePicker component (#1404) Co-authored-by: Bailey Pumfleet Co-authored-by: Peer Richelsen --- components/booking/DatePicker.tsx | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/components/booking/DatePicker.tsx b/components/booking/DatePicker.tsx index 3f3691cba8..cc42b4e68a 100644 --- a/components/booking/DatePicker.tsx +++ b/components/booking/DatePicker.tsx @@ -86,12 +86,24 @@ function DatePicker({ const { i18n } = useLocale(); const [browsingDate, setBrowsingDate] = useState(date); + const [month, setMonth] = useState(""); + const [year, setYear] = useState(""); + const [isFirstMonth, setIsFirstMonth] = useState(false); + useEffect(() => { if (!browsingDate || (date && browsingDate.utcOffset() !== date?.utcOffset())) { setBrowsingDate(date || dayjs().tz(timeZone())); } }, [date, browsingDate]); + useEffect(() => { + if (browsingDate) { + setMonth(browsingDate.toDate().toLocaleString(i18n.language, { month: "long" })); + setYear(browsingDate.format("YYYY")); + setIsFirstMonth(browsingDate.startOf("month").isBefore(dayjs())); + } + }, [browsingDate, i18n.language]); + const days = useMemo(() => { if (!browsingDate) { return []; @@ -156,19 +168,14 @@ function DatePicker({ }>
- - {browsingDate.toDate().toLocaleString(i18n.language, { month: "long" })} - {" "} - {browsingDate.format("YYYY")} + {month}{" "} + {year}