refactor(database): migrate to new modular database layer and unify data access
All checks were successful
Frontend CI / build-and-push-web (push) Successful in 2m44s
Frontend CI / ota-android (push) Successful in 12m51s
Frontend CI / build-android-apk (push) Successful in 1h1m26s

- Remove legacy database.ts, LocalDataSource.ts, and MessageRepository.ts
- Create new src/database/ module with messageRepository, userCacheRepository, conversationRepository, and groupCacheRepository
- Update all consumers to import from @/database instead of services/database
- Add web platform blur handling for modal components to fix focus issues
- Flatten SystemMessageItem and NotificationsScreen styles for consistent design
- Add draggable slider in ChatSettingsScreen and dynamic font size support
- Introduce 9 new chat color themes
- Add profile screens for about, terms, and privacy policy with navigation routes
- Add policy links to login and registration screens
- Fix post share URL format from /posts/ to /post/
This commit is contained in:
lafay
2026-04-04 08:01:45 +08:00
parent 189b977fac
commit 82c2970a85
76 changed files with 3382 additions and 2000 deletions

View File

@@ -81,6 +81,132 @@ export const CHAT_THEMES = [
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'coral',
name: '珊瑚橙',
primary: '#FF6B6B',
secondary: '#FFF0F0',
bubble: '#FFD4D4',
icon: '🐠',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#FFF5F5',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'rose',
name: '玫瑰粉',
primary: '#E91E63',
secondary: '#FCE4EC',
bubble: '#F8BBD9',
icon: '🌹',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#FCE4EC',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'indigo',
name: '靛蓝紫',
primary: '#3F51B5',
secondary: '#E8EAF6',
bubble: '#C5CAE9',
icon: '🐉',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#E8EAF6',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'mint',
name: '薄荷绿',
primary: '#00BCD4',
secondary: '#E0F7FA',
bubble: '#B2EBF2',
icon: '🧊',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#E0F7FA',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'cherry',
name: '樱桃红',
primary: '#D32F2F',
secondary: '#FFEBEE',
bubble: '#FFCDD2',
icon: '🍒',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#FFEBEE',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'lavender',
name: '薰衣草',
primary: '#7E57C2',
secondary: '#EDE7F6',
bubble: '#D1C4E9',
icon: '💜',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#EDE7F6',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'sunset',
name: '落日橙',
primary: '#FF5722',
secondary: '#FBE9E7',
bubble: '#FFCCBC',
icon: '🌅',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#FBE9E7',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'ocean',
name: '深海蓝',
primary: '#006064',
secondary: '#B2EBF2',
bubble: '#80DEEA',
icon: '🌊',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#E0F7FA',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
{
id: 'forest',
name: '森林绿',
primary: '#1B5E20',
secondary: '#C8E6C9',
bubble: '#A5D6A7',
icon: '🌳',
card: '#FFFFFF',
inputBg: '#FFFFFF',
panelBg: '#E8F5E9',
headerBg: '#FFFFFF',
textPrimary: '#1A1A1A',
textSecondary: '#666666',
},
] as const;
export type ChatThemeId = typeof CHAT_THEMES[number]['id'];