From b3c1b18e50ded32792c175491328b5241e3a429a Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Thu, 3 Sep 2020 00:30:54 +0200 Subject: [PATCH] simplify date selection --- components/wizard/dateSelect.tsx | 151 +++++++------------------------ package-lock.json | 8 -- package.json | 1 - styles/index.css | 35 +------ 4 files changed, 34 insertions(+), 161 deletions(-) diff --git a/components/wizard/dateSelect.tsx b/components/wizard/dateSelect.tsx index 971129b..b8bcca1 100644 --- a/components/wizard/dateSelect.tsx +++ b/components/wizard/dateSelect.tsx @@ -1,129 +1,40 @@ -import 'moment/locale/de' -import React, { useContext, useEffect, useRef, useState } from 'react' -import { DateUtils, RangeModifier } from 'react-day-picker' -import DayPickerInput from 'react-day-picker/DayPickerInput' -import MomentLocaleUtils from 'react-day-picker/moment' -import useSWR from 'swr' -import { getNextBigger, getNextSmaller } from '../../helpers/array' -import { dateFormatBackend } from '../../helpers/date' +import React, { useContext } from 'react' import { WizardContext } from './context/wizardStore' import InputWrapper from './inputWrapper' -const fetcher = (path: string) => fetch(path).then((r) => r.json()) - export default function DateSelect() { - const { onChange } = useContext(WizardContext) - const [range, setRange] = useState({ - from: undefined, //state.startDate && new Date(state.startDate), - to: undefined, //state.endDate && new Date(state.endDate), - }) - const { from, to } = range - const { data: daysBooked, error: fetchBookedOnError } = useSWR( - '/api/daysbooked', - fetcher - ) - const prevBookedDay = getNextSmaller( - daysBooked, - dateFormatBackend(from || to) - ) - const nextBookedDay = getNextBigger(daysBooked, dateFormatBackend(from || to)) + const { onChangeEvent, state } = useContext(WizardContext) + const { startDate, endDate } = state.formData - const fromRef = useRef() - const toRef = useRef() - - function dayBooked(day: Date) { - return daysBooked && daysBooked.includes(dateFormatBackend(day)) - } - - function dayDisabled(day: Date) { - return ( - DateUtils.isPastDay(day) || - dayBooked(day) || - (prevBookedDay && day < new Date(prevBookedDay)) || - (nextBookedDay && day > new Date(nextBookedDay)) || - day < from - ) - } - - useEffect(() => { - toRef.current?.getInput().focus() - }, [from]) - - useEffect(() => { - onChange({ startDate: from?.toISOString(), endDate: to?.toISOString() }) - }, [from, to]) - - const disabledDays = [dayDisabled] - const modifiers = { - dayBooked, - start: from, - end: to, - } - - if (fetchBookedOnError) { - return ( -
- Entschuldige, aber die Buchungszeiten konnten nicht geladen werden. - Versuchen Sie es später nochmals. -
- ) - } + const today = new Date().toISOString().substring(0, 10) return ( - - setRange({ ...range, from })} - /> - {' - '} - setRange({ ...range, to })} - /> - - + <> + + + + + + + ) } diff --git a/package-lock.json b/package-lock.json index bb1b660..9c3ec3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9525,14 +9525,6 @@ "prop-types": "^15.6.2" } }, - "react-day-picker": { - "version": "7.4.8", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-7.4.8.tgz", - "integrity": "sha512-pp0hnxFVoRuBQcRdR1Hofw4CQtOCGVmzCNrscyvS0Q8NEc+UiYLEDqE5dk37bf0leSnBW4lheIt0CKKhuKzDVw==", - "requires": { - "prop-types": "^15.6.2" - } - }, "react-dom": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", diff --git a/package.json b/package.json index 74951cf..80c19da 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "mongoose": "^5.9.25", "next": "^9.5.2", "react": "16.13.1", - "react-day-picker": "^7.4.8", "react-dom": "16.13.1", "rebass": "^4.0.7", "swr": "^0.3.0", diff --git a/styles/index.css b/styles/index.css index d891266..415f7f8 100644 --- a/styles/index.css +++ b/styles/index.css @@ -6,10 +6,6 @@ @tailwind components; /* Stop purging. */ -/* Start purging... */ -@tailwind utilities; -/* Stop purging. */ - /* Your own custom utilities */ .wrapper { @@ -114,31 +110,6 @@ @apply text-blue-700; } -.DayPickerInput .input-text { - @apply w-full; -} - -.DayPickerInput { - @apply w-1/3; -} - -.datepicker - .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) { - background-color: #f0f8ff !important; - color: #4a90e2; -} -.datepicker .DayPicker-Day { - border-radius: 0 !important; -} -.datepicker .DayPicker-Day--start { - border-top-left-radius: 50% !important; - border-bottom-left-radius: 50% !important; -} -.datepicker .DayPicker-Day--end { - border-top-right-radius: 50% !important; - border-bottom-right-radius: 50% !important; -} -.datepicker .DayPicker-Day--dayBooked:not(.DayPicker-Day--outside) { - color: #505050; - background-color: #fcc; -} +/* Start purging... */ +@tailwind utilities; +/* Stop purging. */