diff --git a/src/api.ts b/src/api.ts index dde5cec..c7bf475 100644 --- a/src/api.ts +++ b/src/api.ts @@ -20,7 +20,7 @@ export const addVisitor = async (visitor: Visitor) => { await setDoc(doc(db, "visitors", visitor.name), { invitationId: visitor.invitationId, allergies: visitor.allergies, - services: visitor.services, + welcomeDrink: visitor.welcomeDrink, preferences: visitor.preferences }); diff --git a/src/components/RegForm.tsx b/src/components/RegForm.tsx index 4746937..657c19f 100644 --- a/src/components/RegForm.tsx +++ b/src/components/RegForm.tsx @@ -1,5 +1,4 @@ -import { Button, Form, Input, Select } from 'antd'; -import { CloseCircleOutlined } from '@ant-design/icons'; +import { Button, Form, Input, Modal, Select } from 'antd'; import { useParams } from 'react-router'; import './RegForm.scss'; @@ -40,7 +39,7 @@ const welcomeDrinks = ['alcoholBubbles', 'alcoholFreeBubbles'].map( return ( ); @@ -51,156 +50,190 @@ export const RegForm = () => { const { id } = useParams(); const intl = useIntl(); const [visitorCount, setVisitorCount] = useState(0); + const [isModalVisible, setIsModalVisible] = useState(false); - const onFinish = (values: FormValues) => { + const onSubmit = (values: FormValues) => { values.visitors.map((visitor) => { addVisitor({ ...visitor, allergies: visitor.allergies ? arrayToString(visitor.allergies) : '', - services: visitor.services ? arrayToString(visitor.services) : '', preferences: visitor.preferences ?? '', + welcomeDrink: visitor.welcomeDrink ?? '', invitationId: (visitor.invitationId = atob(id)), }); }); }; + const onOk = () => { + form.submit(); + + setIsModalVisible(false); + }; + + const onCancel = () => { + setIsModalVisible(false); + }; + const [form] = Form.useForm(); return ( -
- - {(fields, { add, remove }) => ( - <> -
- {fields.map((field) => ( -
- - - - - - - - - - - - - -
- ))} -
- - - - + + + + + + + + + + + ))} + + + + + + )} +
+ {visitorCount == 0 ? ( + + + + ) : ( + + + )} - - {visitorCount == 0 ? ( - - - - ) : ( - - - - )} -
+ + +

+ +

+
+ ); }; diff --git a/src/constants/localization/registration/en.ts b/src/constants/localization/registration/en.ts index 3aa288e..f5c9473 100644 --- a/src/constants/localization/registration/en.ts +++ b/src/constants/localization/registration/en.ts @@ -28,9 +28,14 @@ export const registration: Record = { "registration.form.preferences.vegan": "Vegan", "registration.form.preferences.vegetarian": "Vegetarian", - "registration.form.welcomeDrinks": "Welcome drink", - "registration.form.welcomeDrinks.placeholder": "What fancy you?", - "registration.form.welcomeDrinks.missing": "Missing welcome drink", - "registration.form.welcomeDrinks.alcoholBubbles": "Alcohol bubbles", - "registration.form.welcomeDrinks.alcoholFreeBubbles": "Alcohol-free bubbles" + "registration.form.welcomeDrink": "Welcome drink", + "registration.form.welcomeDrink.placeholder": "What fancy you?", + "registration.form.welcomeDrink.missing": "Missing welcome drink", + "registration.form.welcomeDrink.alcoholBubbles": "Alcohol bubbles", + "registration.form.welcomeDrink.alcoholFreeBubbles": "Alcohol-free bubbles", + + "registration.form.submitModal.title": "You want to add {visitorCount} visitors?", + "registration.form.submitModal.description": "The link will not work after the submit.", + "registration.form.submitModal.save": "Yes, please", + "registration.form.submitModal.back": "No, something is missing...", } \ No newline at end of file diff --git a/src/constants/localization/registration/fi.ts b/src/constants/localization/registration/fi.ts index cf48688..695ffb3 100644 --- a/src/constants/localization/registration/fi.ts +++ b/src/constants/localization/registration/fi.ts @@ -15,7 +15,7 @@ export const registration: Record = { "registration.form.name": "Nimi", "registration.form.name.placeholder": "Koko tai lempinimi", "registration.form.name.missing": "Nimi puuttuu", - + "registration.form.allergies": "Ruoka-allergiat (valitse tai kirjoita)", "registration.form.allergies.placeholder": "Kaikki käy", "registration.form.allergies.lactose": "Laktoosi", @@ -28,9 +28,14 @@ export const registration: Record = { "registration.form.preferences.vegan": "Vegaaninen", "registration.form.preferences.vegetarian": "Kasvis", - "registration.form.welcomeDrinks": "Tervetuliasmalja", - "registration.form.welcomeDrinks.placeholder": "Mitä saisi olla?", - "registration.form.welcomeDrinks.missing": "Tervetulias malja puuttuu", - "registration.form.welcomeDrinks.alcoholBubbles": "Holillista kuplivaa", - "registration.form.welcomeDrinks.alcoholFreeBubbles": "Holitonta kuplivaa" + "registration.form.welcomeDrink": "Tervetuliasmalja", + "registration.form.welcomeDrink.placeholder": "Mitä saisi olla?", + "registration.form.welcomeDrink.missing": "Tervetulias malja puuttuu", + "registration.form.welcomeDrink.alcoholBubbles": "Holillista kuplivaa", + "registration.form.welcomeDrink.alcoholFreeBubbles": "Holitonta kuplivaa", + + "registration.form.submitModal.title": "Lisätään siis {visitorCount} vierasta listalle?", + "registration.form.submitModal.description": "Tämä linkki lakkaa toimimasta tallennuksen jälkeen.", + "registration.form.submitModal.save": "Tallenna", + "registration.form.submitModal.back": "Takaisin", } \ No newline at end of file diff --git a/src/model/visitor.ts b/src/model/visitor.ts index ea3e4ac..26ff71f 100644 --- a/src/model/visitor.ts +++ b/src/model/visitor.ts @@ -2,6 +2,6 @@ export type Visitor = { name: string; invitationId: string; allergies: any; - services: any; + welcomeDrink: any; preferences: string; } \ No newline at end of file