diff --git a/client/src/components/WhitelistModal.jsx b/client/src/components/WhitelistModal.jsx index 0f68a87..24b3ea7 100644 --- a/client/src/components/WhitelistModal.jsx +++ b/client/src/components/WhitelistModal.jsx @@ -105,7 +105,7 @@ export default function WhitelistModal({ businessId, template, boundProfile, onC return (
-
+
diff --git a/client/src/pages/Events.jsx b/client/src/pages/Events.jsx index f0557e0..ad66558 100644 --- a/client/src/pages/Events.jsx +++ b/client/src/pages/Events.jsx @@ -11,7 +11,7 @@ export default function Events() { const [showAddForm, setShowAddForm] = useState(false); const [genState, setGenState] = useState({}); const [variants, setVariants] = useState({}); - const [selectingSlug, setSelectingSlug] = useState(null); + const [selectingVariantKey, setSelectingVariantKey] = useState(''); const [error, setError] = useState(''); const [readyToGenerate, setReadyToGenerate] = useState(false); @@ -78,8 +78,9 @@ export default function Events() { } } - async function handleSelect(slug, variant) { - setSelectingSlug(slug); + async function handleSelect(slug, variant, variantIndex) { + const variantKey = `${slug}:${variantIndex}`; + setSelectingVariantKey(variantKey); setError(''); try { await apiClient.post(`/api/businesses/${businessId}/templates/${slug}/select`, { selectedVariant: variant }); @@ -89,7 +90,7 @@ export default function Events() { } catch (err) { setError(err.response?.data?.error || 'Failed to select template'); } finally { - setSelectingSlug(null); + setSelectingVariantKey(''); } } @@ -213,26 +214,38 @@ export default function Events() {

Pick a Variant

- {eventVariants.map((v, i) => ( -
+ {eventVariants.map((v, i) => { + const variantKey = `${event.slug}:${i}`; + const isSelectingThis = selectingVariantKey === variantKey; + const isSelectingAnotherVariant = !!selectingVariantKey + && selectingVariantKey !== variantKey + && selectingVariantKey.startsWith(`${event.slug}:`); + + return ( +

{v}

160 ? 'bg-red-50 text-red-700' : 'bg-gray-100 text-gray-600'}`}> {v.length} / 160
- ))} + ); + })}
)} diff --git a/client/src/pages/Templates.jsx b/client/src/pages/Templates.jsx index b147bd7..a5ffc18 100644 --- a/client/src/pages/Templates.jsx +++ b/client/src/pages/Templates.jsx @@ -190,7 +190,7 @@ export default function Templates() { {!isBoundProfileMissing && tmpl.status === 'pending_whitelisting' && (