diff --git a/components/invite/photo-upload.tsx b/components/invite/photo-upload.tsx index f337904..f63630e 100644 --- a/components/invite/photo-upload.tsx +++ b/components/invite/photo-upload.tsx @@ -100,7 +100,7 @@ export function PhotoUpload({ return (
-
+

04

{labels.title}

@@ -109,7 +109,7 @@ export function PhotoUpload({

{labels.requirements}

-
+
{filename ? (

{labels.current.replace("{filename}", filename)} diff --git a/components/invite/rsvp-form.tsx b/components/invite/rsvp-form.tsx index 23f1a6c..efdb622 100644 --- a/components/invite/rsvp-form.tsx +++ b/components/invite/rsvp-form.tsx @@ -30,7 +30,7 @@ export function RsvpForm({

- {!closed ? : null} + {!closed ?
: null} ) } diff --git a/components/invite/rsvp-guest-fields.tsx b/components/invite/rsvp-guest-fields.tsx index fc15b63..666ed3a 100644 --- a/components/invite/rsvp-guest-fields.tsx +++ b/components/invite/rsvp-guest-fields.tsx @@ -1,8 +1,6 @@ +import { RsvpGuestResponse } from "@/components/invite/rsvp-guest-response" import type { InvitationMember } from "@/lib/db/types" import type { GuestDictionary } from "@/lib/i18n/dictionaries" -import type { MealPreference } from "@/lib/validation/response" - -const mealOptions: MealPreference[] = ["meat", "fish", "vegetarian", "vegan", "kids", "other"] export function RsvpGuestFields({ members, @@ -16,16 +14,13 @@ export function RsvpGuestFields({ return (
{members.map((member, index) => ( -
- {member.name} -

0{index + 1}

-

{member.name}

{dictionary.form.attending}

-
-
- - -
-
+ ))}
) diff --git a/components/invite/rsvp-guest-response.tsx b/components/invite/rsvp-guest-response.tsx new file mode 100644 index 0000000..7d229bc --- /dev/null +++ b/components/invite/rsvp-guest-response.tsx @@ -0,0 +1,94 @@ +"use client" + +import { useState } from "react" + +import type { InvitationMember } from "@/lib/db/types" +import type { GuestDictionary } from "@/lib/i18n/dictionaries" +import type { MealPreference } from "@/lib/validation/response" + +const mealOptions: MealPreference[] = ["meat", "fish", "vegetarian", "vegan", "kids", "other"] + +export function RsvpGuestResponse({ + member, + index, + dictionary, + disabled, +}: { + member: InvitationMember + index: number + dictionary: GuestDictionary + disabled: boolean +}) { + const [attending, setAttending] = useState(member.attending) + + return ( +
+ {member.name} +

0{index + 1}

+
+

{member.name}

+

+ {dictionary.form.attending} +

+
+
+
+ {[true, false].map((value) => ( + + ))} +
+ + +
+
+ ) +} diff --git a/components/invite/rsvp-section.tsx b/components/invite/rsvp-section.tsx index 7d61003..ff56c3d 100644 --- a/components/invite/rsvp-section.tsx +++ b/components/invite/rsvp-section.tsx @@ -19,7 +19,7 @@ export function RsvpSection(props: { submitted?: string error?: string }) { - const message = props.submitted ? props.dictionary.form.submitted : props.error === "closed" ? props.dictionary.errors.closed : props.error ? props.dictionary.errors.generic : null + const message = props.closed ? props.dictionary.deadline.closed : props.submitted ? props.dictionary.form.submitted : props.error === "closed" ? props.dictionary.errors.closed : props.error ? props.dictionary.errors.generic : null return (
diff --git a/components/invite/rsvp-toast-fields.tsx b/components/invite/rsvp-toast-fields.tsx index a5beb1c..63ba76e 100644 --- a/components/invite/rsvp-toast-fields.tsx +++ b/components/invite/rsvp-toast-fields.tsx @@ -19,7 +19,7 @@ export function RsvpToastFields({ const [enabled, setEnabled] = useState(Boolean(toastRequest)) return ( -
+
{dictionary.interactions.toastTitle}

03

{dictionary.interactions.toastTitle}

{dictionary.interactions.toastDescription}

diff --git a/components/invite/rsvp-travel-fields.tsx b/components/invite/rsvp-travel-fields.tsx index 9c88d7a..37e700e 100644 --- a/components/invite/rsvp-travel-fields.tsx +++ b/components/invite/rsvp-travel-fields.tsx @@ -15,7 +15,7 @@ export function RsvpTravelFields({ disabled: boolean }) { return ( -
+
{dictionary.sections.travel}

02

{dictionary.sections.travel}