Skip to content

Commit a24596e

Browse files
Bug fixing
1 parent 5701341 commit a24596e

4 files changed

Lines changed: 21 additions & 10 deletions

File tree

src/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,7 @@ export default function App() {
656656
blurMode={blurMode}
657657
onBlurModeToggle={handleBlurModeToggle}
658658
onOpenDrawer={() => setIsDrawerOpen(true)}
659+
isMobile={isMobile}
659660
/>
660661
)}
661662

src/components/PlaybackDock.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ interface PlaybackDockProps {
2525
blurMode: boolean;
2626
onBlurModeToggle: () => void;
2727
onOpenDrawer: () => void;
28+
isMobile: boolean;
2829
}
2930

3031
const SPEED_PRESETS = [0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3];
@@ -44,6 +45,7 @@ export default function PlaybackDock({
4445
blurMode,
4546
onBlurModeToggle,
4647
onOpenDrawer,
48+
isMobile,
4749
}: PlaybackDockProps) {
4850
const isPlaying = status === 'playing';
4951
const isPaused = status === 'paused';
@@ -322,8 +324,12 @@ export default function PlaybackDock({
322324
</button>
323325
</div>
324326

325-
{/* Focus mode toggle */}
326-
<div className="tooltip-wrapper" data-tooltip={blurMode ? 'Focus: On' : 'Focus: Off'}>
327+
{/* Focus mode toggle — Hide on mobile/tablet */}
328+
<div
329+
className="tooltip-wrapper"
330+
data-tooltip={blurMode ? 'Focus: On' : 'Focus: Off'}
331+
style={{ display: isMobile ? 'none' : 'block' }}
332+
>
327333
<button
328334
onClick={onBlurModeToggle}
329335
aria-label={blurMode ? 'Disable focus mode' : 'Enable focus mode'}

src/components/VoicePicker.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,10 +397,14 @@ export default function VoicePicker({
397397
role="option"
398398
aria-selected={isSelected}
399399
tabIndex={0}
400-
onClick={() => onSelectVoice(voiceInfo)}
400+
onClick={(e) => {
401+
e.stopPropagation();
402+
onSelectVoice(voiceInfo);
403+
}}
401404
onKeyDown={(e) => {
402405
if (e.key === 'Enter' || e.key === ' ') {
403406
e.preventDefault();
407+
e.stopPropagation();
404408
onSelectVoice(voiceInfo);
405409
}
406410
}}

src/hooks/useTheme.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const STORAGE_KEY = 'pdf-tts-theme';
1818
*/
1919
function getSystemTheme(): Theme {
2020
if (typeof window === 'undefined') return 'light';
21-
21+
2222
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
2323
return prefersDark ? 'dark' : 'light';
2424
}
@@ -35,7 +35,7 @@ function loadSavedTheme(): Theme {
3535
} catch {
3636
// localStorage might not be available
3737
}
38-
return getSystemTheme();
38+
return 'dark'; // Default to dark mode for all users
3939
}
4040

4141
/**
@@ -45,15 +45,15 @@ function loadSavedTheme(): Theme {
4545
function applyTheme(theme: Theme): void {
4646
const root = document.documentElement;
4747
root.setAttribute('data-theme', theme);
48-
48+
4949
// Also update meta theme-color for mobile browsers
5050
const metaThemeColor = document.querySelector('meta[name="theme-color"]');
5151
const colors: Record<Theme, string> = {
5252
light: '#ffffff',
5353
dark: '#0f0f23',
5454
sepia: '#f5f0e8',
5555
};
56-
56+
5757
if (metaThemeColor) {
5858
metaThemeColor.setAttribute('content', colors[theme]);
5959
}
@@ -103,7 +103,7 @@ export function useTheme() {
103103
// Listen for system theme changes (if user hasn't manually set one)
104104
useEffect(() => {
105105
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
106-
106+
107107
const handleChange = () => {
108108
// Only auto-switch if user hasn't manually saved a preference
109109
const saved = localStorage.getItem(STORAGE_KEY);
@@ -137,13 +137,13 @@ export function useTheme() {
137137
const currentIndex = THEME_CYCLE.indexOf(current);
138138
const nextIndex = (currentIndex + 1) % THEME_CYCLE.length;
139139
const nextTheme = THEME_CYCLE[nextIndex];
140-
140+
141141
try {
142142
localStorage.setItem(STORAGE_KEY, nextTheme);
143143
} catch {
144144
// Ignore storage errors
145145
}
146-
146+
147147
return nextTheme;
148148
});
149149
}, []);

0 commit comments

Comments
 (0)