• Steven's avatar
    refactor: simplify theme/locale to user preferences and improve initialization · 81da20c9
    Steven authored
    Remove theme and locale from instance settings to eliminate duplication and
    simplify the codebase. These are user-specific preferences and should only
    exist in user settings, not instance-wide settings.
    
    Backend changes:
    - Remove theme from InstanceGeneralSetting proto
    - Remove locale from InstanceCustomProfile proto
    - Update instance service converters to remove theme/locale handling
    - Simplify RSS feed to use static locale
    
    Frontend changes:
    - Remove theme/locale from instanceStore state
    - Create unified initialization flow with clear fallback priority:
      * Theme: user setting → localStorage → system preference
      * Locale: user setting → browser language
    - Add applyUserPreferences() to centralize theme/locale application
    - Simplify App.tsx by removing redundant state synchronization
    - Update all components to use new helper functions:
      * getThemeWithFallback() for theme resolution
      * getLocaleWithFallback() for locale resolution
    - Remove theme/locale selectors from instance profile dialog
    
    Theme utilities refactor:
    - Organize code into clear sections with JSDoc comments
    - Extract localStorage operations into getStoredTheme/setStoredTheme helpers
    - Split DOM manipulation into focused functions
    - Improve type safety with Theme and ResolvedTheme types
    - Reduce code duplication and improve maintainability
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
    81da20c9
instance_service.proto 5.94 KB