Skip to content

feat(settings): add theme preference with system default support #158 (AI-generated) - #176

Merged
GiZano merged 3 commits into
ClimbStack:mainfrom
Gheb6:feat/issue-158-theme-preference
Oct 14, 2026
Merged

GiZano merged 3 commits into
ClimbStack:mainfrom
Gheb6:feat/issue-158-theme-preference

Conversation

@Gheb6

@Gheb6 Gheb6 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

This pull request description was written by an AI agent.

Closes #158

Summary of Changes

  • Introduced ThemeProvider and ThemeContext in src/store/ThemeContext.tsx supporting system, light, and dark modes with persistence in AsyncStorage under @climbstack/theme_mode.
  • Updated useThemeColors in src/utils/useThemeColors.ts to consume ThemeContext when available, falling back gracefully to useColorScheme() when outside the provider.
  • Added Theme preference tile and selection modal in src/screens/SettingsScreen.tsx, matching the language selector design and accessibility conventions.
  • Wrapped root application in ThemeProvider in App.tsx, and updated RootNavigator, TabNavigator, and StatusBar to dynamically adapt to the active theme.
  • Added internationalization keys ( hemeTitle, selectTheme, hemeSystem, hemeLight, hemeDark) across all supported languages (en, it, de, r, es) in src/utils/i18n.ts.
  • Added unit tests in src/store/tests/ThemeContext.test.tsx (100% coverage), src/utils/tests/useThemeColors.test.tsx, and updated src/screens/tests/SettingsScreen.test.tsx.

AI Generation Disclosure

  • Tool / Agent: Antigravity (Google DeepMind)
  • Model: Gemini 3.8 Flash
  • AI-generated files:
    • src/store/ThemeContext.tsx (all lines)
    • src/store/tests/ThemeContext.test.tsx (all lines)
    • src/utils/useThemeColors.ts (all lines)
    • src/utils/tests/useThemeColors.test.tsx (all lines)
    • src/utils/i18n.ts (theme translation keys)
    • src/screens/SettingsScreen.tsx (theme tile and modal)
    • src/screens/tests/SettingsScreen.test.tsx (theme modal tests)
    • App.tsx (ThemeProvider integration)

@codecov

codecov Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@GiZano
GiZano merged commit df19750 into ClimbStack:main Oct 14, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add theme appearance settings (System / Light / Dark)

2 participants