From 652519f2194a4ba69b8dbb7e64d2bf18a77e5ebe Mon Sep 17 00:00:00 2001 From: Thomas Hallock Date: Thu, 11 Dec 2025 17:03:45 -0600 Subject: [PATCH] feat(practice): separate phrase sets for manual vs auto pause MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auto-pause phrases (thinking-themed): - "This one's a thinker!", "Brain at work!", "Processing...", etc. Manual pause phrases (break-themed): - "We pressed paws! 🙏", "Break time!", "Taking five!", etc. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../practice/SessionPausedModal.tsx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/web/src/components/practice/SessionPausedModal.tsx b/apps/web/src/components/practice/SessionPausedModal.tsx index affb11fa..3434910a 100644 --- a/apps/web/src/components/practice/SessionPausedModal.tsx +++ b/apps/web/src/components/practice/SessionPausedModal.tsx @@ -55,17 +55,26 @@ function getPartTypeEmoji(type: SessionPart['type']): string { } } -// Fun phrases for auto-pause +// Fun phrases for auto-pause (when taking too long on a problem) const AUTO_PAUSE_PHRASES = [ "This one's a thinker!", 'Taking your time? Smart!', 'Deep thoughts happening...', 'Brain at work!', - 'No rush!', 'Thinking cap on!', 'Processing...', 'Working it out!', +] + +// Fun phrases for manual pause (user chose to take a break) +const MANUAL_PAUSE_PHRASES = [ 'We pressed paws! 🙏', + 'Break time!', + 'Taking five!', + 'Quick breather!', + 'Stretch break!', + 'Recharging...', + 'Be right back!', ] // Intl formatters for duration display @@ -272,11 +281,11 @@ export function SessionPausedModal({ const [showStats, setShowStats] = useState(false) // Pick a random phrase once per pause (stable while modal is open) - const autoPausePhrase = useMemo( - () => AUTO_PAUSE_PHRASES[Math.floor(Math.random() * AUTO_PAUSE_PHRASES.length)], + const pausePhrase = useMemo(() => { + const phrases = pauseInfo?.reason === 'auto-timeout' ? AUTO_PAUSE_PHRASES : MANUAL_PAUSE_PHRASES + return phrases[Math.floor(Math.random() * phrases.length)] // eslint-disable-next-line react-hooks/exhaustive-deps - [pauseInfo?.pausedAt?.getTime()] - ) + }, [pauseInfo?.pausedAt?.getTime(), pauseInfo?.reason]) useEffect(() => { if (!isOpen || !pauseInfo?.pausedAt) { @@ -384,7 +393,7 @@ export function SessionPausedModal({ })} > {isAutoTimeout ? '🤔' : '☕'} - {isAutoTimeout ? autoPausePhrase : 'Break Time!'} + {pausePhrase} {pauseInfo && (