From ed32f16fcd9ca50ef9e724d84ea4bbee7cf839a5 Mon Sep 17 00:00:00 2001 From: Shane Date: Wed, 1 Jul 2026 20:17:39 -0500 Subject: [PATCH] fix(og-generator): switching templates no longer resets the background pattern MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit changeTemplate() used to overwrite patternType/Scale/Opacity with the new template's defaultPattern on every switch. Template and background are meant to be independent controls, so it now only sets the template. AI suggestions are unaffected — applySuggestion() already sets the pattern separately, right after calling changeTemplate(), when the suggestion includes one. Verified: set pattern to vlines, switched template to centered (whose default is dots), pattern select stayed on vlines. Co-Authored-By: Claude Opus 4.8 --- apps/og-generator/app/page.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/og-generator/app/page.tsx b/apps/og-generator/app/page.tsx index 1ae5eb2d8c2..842eaf98798 100644 --- a/apps/og-generator/app/page.tsx +++ b/apps/og-generator/app/page.tsx @@ -439,14 +439,12 @@ export default function Page() { const og = useRenderedImage(ogEndpoint, showOg) const thumb = useRenderedImage(thumbEndpoint, showThumb) + // Template and background are independent controls — switching templates + // must not touch whatever pattern the user already has set. (AI suggestions + // still set a pattern explicitly, right after calling this, when the + // suggestion includes one — see applySuggestion below.) const changeTemplate = (id: string) => { setTemplate(id) - const t = TEMPLATES.find((x) => x.id === id) - if (t) { - setPatternType(t.defaultPattern.type as PatternTypeOpt) - setPatternScale(normalizeScale(t.defaultPattern.scale as PatternScaleOpt)) - setPatternOpacity(Math.max(OPACITY_MIN, t.defaultPattern.opacity)) - } } const [generated, setGenerated] = useState(null)