From 7774791bd8ff580da850758b0aefbe1b946529e3 Mon Sep 17 00:00:00 2001 From: Stephanie Gredell Date: Wed, 24 Dec 2025 17:48:34 -0800 Subject: [PATCH] fix stuff --- frontend/src/pages/LandingPage.tsx | 25 ++++++++++++++++++++++- frontend/src/services/magicCodeService.ts | 17 +++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/LandingPage.tsx b/frontend/src/pages/LandingPage.tsx index c11520a..d5d9a1b 100644 --- a/frontend/src/pages/LandingPage.tsx +++ b/frontend/src/pages/LandingPage.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { OptimizedImage } from '../components/OptimizedImage/OptimizedImage'; import { MagicCodeInput } from '../components/MagicCodeInput/MagicCodeInput'; -import { getAppliedMagicCode, getMagicCodeSettings, hasActiveMagicCode } from '../services/magicCodeService'; +import { getAppliedMagicCode, getMagicCodeSettings, hasActiveMagicCode, refreshMagicCodeSettings } from '../services/magicCodeService'; import { getEnabledApps } from '../utils/appFilter'; const categoryEmojis: { [key: string]: string } = { @@ -37,6 +37,29 @@ export function LandingPage() { const appliedCode = getAppliedMagicCode(); const magicCodeSettings = getMagicCodeSettings(); + // Refresh magic code settings from server on load (if a code exists) + useEffect(() => { + let isMounted = true; + + async function syncMagicCodeSettings() { + if (!appliedCode) return; + try { + await refreshMagicCodeSettings(); + if (isMounted) { + setEnabledApps(getEnabledApps()); + } + } catch (error) { + console.warn('Failed to refresh magic code on load', error); + } + } + + syncMagicCodeSettings(); + + return () => { + isMounted = false; + }; + }, [appliedCode]); + // Re-check enabled apps when magic code is applied/cleared useEffect(() => { setEnabledApps(getEnabledApps()); diff --git a/frontend/src/services/magicCodeService.ts b/frontend/src/services/magicCodeService.ts index 29b618f..f1defb8 100644 --- a/frontend/src/services/magicCodeService.ts +++ b/frontend/src/services/magicCodeService.ts @@ -80,6 +80,23 @@ export async function applyMagicCode(code: string): Promise { return settings; } +/** + * Re-fetch settings for the currently applied magic code (if any) + */ +export async function refreshMagicCodeSettings(): Promise { + const currentCode = getAppliedMagicCode(); + if (!currentCode) { + return null; + } + + try { + return await applyMagicCode(currentCode); + } catch (error) { + console.warn('Failed to refresh magic code settings', error); + throw error; + } +} + /** * Clear the applied magic code and settings */