From af8ca3f56e2f73b803cc4c8772d77e08e1b1e735 Mon Sep 17 00:00:00 2001 From: Claudia Maestrini Date: Sat, 21 Feb 2026 17:17:11 +0100 Subject: [PATCH 1/2] fix: prioritize device color scheme and reset detail state on navigation --- app/(app)/todo-detail.tsx | 7 +++++++ providers/theme.tsx | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/(app)/todo-detail.tsx b/app/(app)/todo-detail.tsx index 6c209ec..b7e21f0 100644 --- a/app/(app)/todo-detail.tsx +++ b/app/(app)/todo-detail.tsx @@ -18,6 +18,13 @@ import { useKeyboardShift } from '@/hooks/useKeyboardShift'; export default function TodoDetailScreen() { const { id } = useLocalSearchParams<{ id: string }>(); + + if (!id) return null; + + return ; +} + +function TodoDetailContent({ id }: { id: string }) { const { t } = useTranslation(); const router = useRouter(); const { colors } = useTheme(); diff --git a/providers/theme.tsx b/providers/theme.tsx index ff51ddb..74dcc10 100644 --- a/providers/theme.tsx +++ b/providers/theme.tsx @@ -17,7 +17,7 @@ export function ThemeProvider({ children }: { children: ReactNode }) { const preference = useThemeStore(s => s.preference); const setPreference = useThemeStore(s => s.setPreference); - const isDark = preference === 'system' ? systemScheme === 'dark' : preference === 'dark'; + const isDark = systemScheme === 'dark' || preference === 'dark'; const colors = isDark ? colorSchemes.dark : colorSchemes.light; @@ -35,8 +35,8 @@ export function ThemeProvider({ children }: { children: ReactNode }) { ); const toggleTheme = useCallback(() => { - setPreference(isDark ? 'light' : 'dark'); - }, [isDark, setPreference]); + setPreference(preference === 'dark' ? 'system' : 'dark'); + }, [preference, setPreference]); const value = useMemo( () => ({ colors, isDark, shadow, toggleTheme }), From f1903779eb5c01a0ed2d6bae078886442862ed2b Mon Sep 17 00:00:00 2001 From: Claudia Maestrini Date: Sat, 21 Feb 2026 17:49:27 +0100 Subject: [PATCH 2/2] fix: update theme logic to correctly handle system preference and toggle states --- providers/theme.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/theme.tsx b/providers/theme.tsx index 74dcc10..4fe454e 100644 --- a/providers/theme.tsx +++ b/providers/theme.tsx @@ -17,7 +17,7 @@ export function ThemeProvider({ children }: { children: ReactNode }) { const preference = useThemeStore(s => s.preference); const setPreference = useThemeStore(s => s.setPreference); - const isDark = systemScheme === 'dark' || preference === 'dark'; + const isDark = preference === 'system' ? systemScheme === 'dark' : preference === 'dark'; const colors = isDark ? colorSchemes.dark : colorSchemes.light; @@ -35,8 +35,8 @@ export function ThemeProvider({ children }: { children: ReactNode }) { ); const toggleTheme = useCallback(() => { - setPreference(preference === 'dark' ? 'system' : 'dark'); - }, [preference, setPreference]); + setPreference(preference !== 'system' ? 'system' : isDark ? 'light' : 'dark'); + }, [preference, isDark, setPreference]); const value = useMemo( () => ({ colors, isDark, shadow, toggleTheme }),