/* global React, IOSStatusBar, Chessboard, FORK_POSITION, ScreenShell, AppIcon */ const { useState: useState2 } = React; function ScreenPuzzle() { const [state, setState] = useState2('idle'); // idle | hint | wrong | solved const [hintUsed, setHintUsed] = useState2(false); const reward = hintUsed ? '+3 min' : '+5 min'; return ( {/* top vignette + spotlight */} {/* Top row */} Instagram locked Puzzle 1 of 3 {reward} {/* Progress dots */} {/* Instruction */} Find the best move. White to move Rating · 1350 {/* Board — full bleed, edge-to-edge */} {/* Status line */} {state === 'hint' && ( Hint used. Reward reduced to +3 min. )} {state === 'wrong' && ( Not quite. Try again. )} {state === 'solved' && ( Solved. +5 minutes earned. )} {/* Bottom action row */} { setState('hint'); setHintUsed(true); }} > Hint Give up ); } // ===================================================================== // SCREEN 5 — Unlock Success // ===================================================================== function ScreenUnlock() { return ( {/* success vignette */} {/* close-ish row */} Earned {/* Logo + headline */} Unlocked Instagram is open for the next{' '} 5 minutes. {/* Stats row */} {[ { value: '1', label: 'puzzle solved', mono: false }, { value: '+5', label: 'min earned', mono: true, accent: true }, { value: '+6', label: 'rating', mono: true }, ].map((s, i) => ( {s.value} {s.label} ))} {/* Actions */} Open Instagram Solve another for +5 min Next puzzle gets harder. ); } Object.assign(window, { ScreenPuzzle, ScreenUnlock });
Instagram is open for the next{' '} 5 minutes.