From 8cc6d3998c3171b3098b09cef481ae19ddb5be06 Mon Sep 17 00:00:00 2001 From: Jumpy Squirrel Date: Sun, 16 Feb 2025 19:27:28 +0100 Subject: [PATCH] fix(#265): correctly handle required add-ons --- .../funnels/register/steps/ticket/level/addons/addon.tsx | 4 ++-- src/config.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/funnels/funnels/register/steps/ticket/level/addons/addon.tsx b/src/components/funnels/funnels/register/steps/ticket/level/addons/addon.tsx index d0bd6b4..ef85b63 100644 --- a/src/components/funnels/funnels/register/steps/ticket/level/addons/addon.tsx +++ b/src/components/funnels/funnels/register/steps/ticket/level/addons/addon.tsx @@ -38,7 +38,7 @@ const TicketLevelAddon = ({ addon, formContext }: TicketLevelAddonProps) => { if (resetOnLevelChange && name === 'level' && type === 'change') { const levelValue = value.level as Exclude - setValue(`addons.${addon.id}.selected`, isIncluded(levelValue) && !isUnavailable(levelValue) || addon.default) + setValue(`addons.${addon.id}.selected`, (isIncluded(levelValue) || isRequired(levelValue)) && !isUnavailable(levelValue) || addon.default) } if (name) { @@ -67,7 +67,7 @@ const TicketLevelAddon = ({ addon, formContext }: TicketLevelAddonProps) => { label={addon.id} description={addon.id} price={isIncluded(level) ? 0 : addon.price} - disabled={isIncluded(level) || isRequired(level)} + disabled={isIncluded(level) || isRequired(level) || addon.id === 'stage-pass'} {...register(`addons.${addon.id}.selected`)} > {Object.entries(addon.options).map(([id, option]) => diff --git a/src/config.ts b/src/config.ts index 0375d3f..da7cc8d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -186,6 +186,9 @@ const configEf = { type: ['day'], }, hidden: false, + resetOn: { + levelChange: true, + }, }, 'tshirt': { price: 20,