From 4499c9ad57dcdcd3126c8d4261bc9f32accd21d7 Mon Sep 17 00:00:00 2001 From: c0mrade Date: Wed, 4 Feb 2026 16:09:10 +0300 Subject: [PATCH] fix: prevent payment type reset after wheel spin The auto-select useEffect for payment type (days/stars) was running on every config refetch, resetting the user's manual selection back to stars. Now it only runs once on initial load using a ref flag. --- src/pages/Wheel.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pages/Wheel.tsx b/src/pages/Wheel.tsx index df745bc..5a70cc6 100644 --- a/src/pages/Wheel.tsx +++ b/src/pages/Wheel.tsx @@ -72,6 +72,7 @@ export default function Wheel() { ); const [isPayingStars, setIsPayingStars] = useState(false); const [historyExpanded, setHistoryExpanded] = useState(false); + const paymentTypeInitialized = useRef(false); // Check if we're in Telegram Mini App environment const isTelegramMiniApp = platform === 'telegram'; @@ -90,9 +91,10 @@ export default function Wheel() { queryFn: () => wheelApi.getHistory(1, 10), }); - // Auto-select payment type based on availability + // Auto-select payment type based on availability (only on initial load) useEffect(() => { - if (!config) return; + if (!config || paymentTypeInitialized.current) return; + paymentTypeInitialized.current = true; const starsEnabled = config.spin_cost_stars_enabled && config.spin_cost_stars; const daysEnabled = config.spin_cost_days_enabled && config.spin_cost_days;