From 793b499c760ebb8396809c03479fd618396a4961 Mon Sep 17 00:00:00 2001
From: Thomas Ruoff
Date: Sat, 1 Aug 2020 16:05:58 +0200
Subject: [PATCH] move rest into pages
---
{components => pages/components}/contact.js | 0
{components => pages/components}/dateSelect.js | 2 +-
{components => pages/components}/reason.js | 0
{components => pages/components}/required.js | 2 --
{components => pages/components}/wizard.js | 4 ++--
{context => pages/context}/wizardStore.js | 13 +++++++++++--
lib/dateHelper.js => pages/helpers/date.js | 0
pages/helpers/storage.js | 17 +++++++++++++++++
pages/index.js | 2 +-
9 files changed, 32 insertions(+), 8 deletions(-)
rename {components => pages/components}/contact.js (100%)
rename {components => pages/components}/dateSelect.js (98%)
rename {components => pages/components}/reason.js (100%)
rename {components => pages/components}/required.js (69%)
rename {components => pages/components}/wizard.js (90%)
rename {context => pages/context}/wizardStore.js (90%)
rename lib/dateHelper.js => pages/helpers/date.js (100%)
create mode 100644 pages/helpers/storage.js
diff --git a/components/contact.js b/pages/components/contact.js
similarity index 100%
rename from components/contact.js
rename to pages/components/contact.js
diff --git a/components/dateSelect.js b/pages/components/dateSelect.js
similarity index 98%
rename from components/dateSelect.js
rename to pages/components/dateSelect.js
index 84d4c99..f5c5c4f 100644
--- a/components/dateSelect.js
+++ b/pages/components/dateSelect.js
@@ -10,7 +10,7 @@ import 'react-dates/initialize'
import { DateRangePicker, SingleDatePicker } from 'react-dates'
import Required from './required'
-import { dateFormat } from '../lib/dateHelper'
+import { dateFormat } from '../helpers/date'
const fetcher = (path) => fetch(path).then((r) => r.json())
diff --git a/components/reason.js b/pages/components/reason.js
similarity index 100%
rename from components/reason.js
rename to pages/components/reason.js
diff --git a/components/required.js b/pages/components/required.js
similarity index 69%
rename from components/required.js
rename to pages/components/required.js
index 3214b5f..4e5e120 100644
--- a/components/required.js
+++ b/pages/components/required.js
@@ -1,4 +1,2 @@
-import react from 'react'
-
const Required = () => *
export default Required
diff --git a/components/wizard.js b/pages/components/wizard.js
similarity index 90%
rename from components/wizard.js
rename to pages/components/wizard.js
index a4d9e7b..52e16e4 100644
--- a/components/wizard.js
+++ b/pages/components/wizard.js
@@ -11,7 +11,7 @@ import Contact from './contact'
//import Driver from './driver'
function WizardInternal() {
- const { onSubmit, state } = useContext(WizardContext)
+ const { onSubmit, state, storeData } = useContext(WizardContext)
const { postData, postDataSuccess, postDataError } = state
if (postDataSuccess) {
@@ -23,7 +23,7 @@ function WizardInternal() {
Sollen die eingegebenen Daten in Deinem Browser für die nächste
Buchung gespeichert werden?
-
+
>
)
}
diff --git a/context/wizardStore.js b/pages/context/wizardStore.js
similarity index 90%
rename from context/wizardStore.js
rename to pages/context/wizardStore.js
index 3266e7b..ab386e6 100644
--- a/context/wizardStore.js
+++ b/pages/context/wizardStore.js
@@ -1,4 +1,6 @@
-import React, { useReducer } from 'react'
+import React, { useReducer, useEffect } from 'react'
+
+import { storeFormData, loadFormData } from '../helpers/storage'
export const WizardContext = React.createContext()
@@ -93,6 +95,11 @@ async function createBooking(formData) {
export default function WizardStore({ children }) {
const [state, dispatch] = useReducer(debugReducer, initialState)
+ useEffect(() => {
+ const data = loadFormData()
+ dispatch({ type: ACTIONS.SET_FORM_DATA, payload: data })
+ }, [])
+
const onChangeEvent = (event) => {
const { name, value } = event.target
@@ -121,9 +128,11 @@ export default function WizardStore({ children }) {
}
}
+ const storeData = () => storeFormData(state.formData)
+
return (
{children}
diff --git a/lib/dateHelper.js b/pages/helpers/date.js
similarity index 100%
rename from lib/dateHelper.js
rename to pages/helpers/date.js
diff --git a/pages/helpers/storage.js b/pages/helpers/storage.js
new file mode 100644
index 0000000..6848e3a
--- /dev/null
+++ b/pages/helpers/storage.js
@@ -0,0 +1,17 @@
+const FORM_DATA_KEY = 'pfadiBussleFormData'
+
+function getStorage() {
+ return localStorage
+}
+
+export function storeFormData({ org, name, email, street, zip, city }) {
+ getStorage().setItem(
+ FORM_DATA_KEY,
+ JSON.stringify({ org, name, email, street, zip, city })
+ )
+}
+
+export function loadFormData() {
+ const dataAsString = getStorage().getItem(FORM_DATA_KEY)
+ return JSON.parse(dataAsString || '{}')
+}
diff --git a/pages/index.js b/pages/index.js
index 633b83e..0e2559e 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,6 +1,6 @@
import Head from 'next/head'
-import Wizard from '../components/wizard'
+import Wizard from './components/wizard'
export default function Home() {
return (