diff --git a/pages/[user]/book.tsx b/pages/[user]/book.tsx index abdad3b0..b9b19e7e 100644 --- a/pages/[user]/book.tsx +++ b/pages/[user]/book.tsx @@ -286,7 +286,7 @@ export default function Book(props: any): JSX.Element { required={input.required} rows={3} className="shadow-sm dark:bg-black dark:text-white dark:border-gray-900 focus:ring-black focus:border-black block w-full sm:text-sm border-gray-300 rounded-md" - placeholder="" + placeholder={input.placeholder} /> )} {input.type === EventTypeCustomInputType.TEXT && ( @@ -296,7 +296,7 @@ export default function Book(props: any): JSX.Element { id={"custom_" + input.id} required={input.required} className="shadow-sm dark:bg-black dark:text-white dark:border-gray-900 focus:ring-black focus:border-black block w-full sm:text-sm border-gray-300 rounded-md" - placeholder="" + placeholder={input.placeholder} /> )} {input.type === EventTypeCustomInputType.NUMBER && ( diff --git a/pages/api/availability/eventtype.ts b/pages/api/availability/eventtype.ts index 69dbac99..8e5faa74 100644 --- a/pages/api/availability/eventtype.ts +++ b/pages/api/availability/eventtype.ts @@ -35,6 +35,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) type: input.type, label: input.label, required: input.required, + placeholder: input.placeholder, })), }, update: req.body.customInputs @@ -44,6 +45,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) type: input.type, label: input.label, required: input.required, + placeholder: input.placeholder, }, where: { id: input.id, @@ -107,6 +109,13 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) } if (req.method == "DELETE") { + // Delete associations first + await prisma.eventTypeCustomInput.deleteMany({ + where: { + eventTypeId: req.body.id, + }, + }); + await prisma.eventType.delete({ where: { id: req.body.id, diff --git a/pages/event-types/[type].tsx b/pages/event-types/[type].tsx index b4af7f6f..ee11444d 100644 --- a/pages/event-types/[type].tsx +++ b/pages/event-types/[type].tsx @@ -347,12 +347,14 @@ export default function EventTypePage({ const customInput: EventTypeCustomInput = { label: e.target.label.value, + placeholder: e.target.placeholder?.value, required: e.target.required.checked, type: e.target.type.value, }; if (selectedCustomInput) { selectedCustomInput.label = customInput.label; + selectedCustomInput.placeholder = customInput.placeholder; selectedCustomInput.required = customInput.required; selectedCustomInput.type = customInput.type; } else { @@ -645,6 +647,13 @@ export default function EventTypePage({
Label: {customInput.label}
+ {customInput.placeholder && ( +
+ + Placeholder: {customInput.placeholder} + +
+ )}
Type: {customInput.type}
@@ -1015,6 +1024,23 @@ export default function EventTypePage({ /> + {(selectedInputOption.value === EventTypeCustomInputType.TEXT || + selectedInputOption.value === EventTypeCustomInputType.TEXTLONG) && ( +
+ +
+ +
+
+ )}