Merge pull request #452 from the-luap/fix/create-event-branding-default-race
fix(create-event): branding-default theme survives eventTypes refetch (#323-B)
This commit is contained in:
@@ -283,11 +283,23 @@ export const CreateEventPage: React.FC = () => {
|
|||||||
}));
|
}));
|
||||||
}, [settings]);
|
}, [settings]);
|
||||||
|
|
||||||
// Update theme when event type changes — but only when the event type has
|
// Update theme when the user actively changes the event type — but only
|
||||||
// an explicit recommended preset. Skip the generic 'default' so the global
|
// when the new type has an explicit recommended preset. Skips both the
|
||||||
// Branding theme isn't clobbered by Classic Grid for event types like
|
// generic 'default' (so types like "Other" don't clobber the global
|
||||||
// "Other" (#323).
|
// Branding theme with Classic Grid) and the very first render (so the
|
||||||
|
// wedding default doesn't out-race the Branding-default effect above
|
||||||
|
// when eventTypes resolves AFTER settings — #323-B / smoke spec 07).
|
||||||
|
const prevEventTypeRef = useRef<string | null>(null);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const prev = prevEventTypeRef.current;
|
||||||
|
prevEventTypeRef.current = formData.event_type;
|
||||||
|
// First render: just record the initial value and let the
|
||||||
|
// Branding-default effect own the theme. Without this guard the
|
||||||
|
// initial-mount fire of this effect (and any later eventTypes
|
||||||
|
// refetch that swaps `availableEventTypes` identity) would
|
||||||
|
// overwrite the Branding theme with the wedding preset.
|
||||||
|
if (prev === null || prev === formData.event_type) return;
|
||||||
|
|
||||||
const selectedType = availableEventTypes.find(t => t.value === formData.event_type);
|
const selectedType = availableEventTypes.find(t => t.value === formData.event_type);
|
||||||
const recommendedPreset = selectedType?.theme_preset;
|
const recommendedPreset = selectedType?.theme_preset;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user