mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:41:09 +02:00
✨ feat(zitare): add settings store and i18n updates
This commit is contained in:
parent
702a30b699
commit
ceebb5dda6
4 changed files with 119 additions and 4 deletions
|
|
@ -8,6 +8,7 @@
|
|||
@source "../../../../packages/shared-theme-ui/src";
|
||||
@source "../../../../packages/shared-theme-ui/src/components";
|
||||
@source "../../../../packages/shared-theme-ui/src/pages";
|
||||
@source "../../../../packages/shared-stores/src";
|
||||
|
||||
/* Quote-specific styles */
|
||||
.quote-text {
|
||||
|
|
|
|||
|
|
@ -5,12 +5,17 @@
|
|||
},
|
||||
"nav": {
|
||||
"home": "Heute",
|
||||
"today": "Heute",
|
||||
"categories": "Kategorien",
|
||||
"favorites": "Favoriten",
|
||||
"lists": "Listen",
|
||||
"search": "Suche",
|
||||
"settings": "Einstellungen",
|
||||
"feedback": "Feedback"
|
||||
"feedback": "Feedback",
|
||||
"menu": "Menü",
|
||||
"allThemes": "Alle Themes",
|
||||
"showNav": "Navigation anzeigen",
|
||||
"hideNav": "Navigation ausblenden"
|
||||
},
|
||||
"home": {
|
||||
"dailyQuote": "Zitat des Tages",
|
||||
|
|
@ -50,7 +55,11 @@
|
|||
"title": "Suche",
|
||||
"placeholder": "Zitat oder Autor suchen...",
|
||||
"noResults": "Keine Ergebnisse",
|
||||
"results": "{count} Ergebnisse"
|
||||
"results": "{count} Ergebnisse",
|
||||
"searching": "Suche...",
|
||||
"create": "Erstellen",
|
||||
"createList": "als Liste erstellen",
|
||||
"createListDescription": "Neue Liste mit diesem Namen erstellen"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Anmelden",
|
||||
|
|
|
|||
|
|
@ -5,12 +5,17 @@
|
|||
},
|
||||
"nav": {
|
||||
"home": "Today",
|
||||
"today": "Today",
|
||||
"categories": "Categories",
|
||||
"favorites": "Favorites",
|
||||
"lists": "Lists",
|
||||
"search": "Search",
|
||||
"settings": "Settings",
|
||||
"feedback": "Feedback"
|
||||
"feedback": "Feedback",
|
||||
"menu": "Menu",
|
||||
"allThemes": "All Themes",
|
||||
"showNav": "Show navigation",
|
||||
"hideNav": "Hide navigation"
|
||||
},
|
||||
"home": {
|
||||
"dailyQuote": "Quote of the Day",
|
||||
|
|
@ -50,7 +55,11 @@
|
|||
"title": "Search",
|
||||
"placeholder": "Search quotes or authors...",
|
||||
"noResults": "No results",
|
||||
"results": "{count} results"
|
||||
"results": "{count} results",
|
||||
"searching": "Searching...",
|
||||
"create": "Create",
|
||||
"createList": "create as list",
|
||||
"createListDescription": "Create a new list with this name"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Sign In",
|
||||
|
|
|
|||
96
apps/zitare/apps/web/src/lib/stores/settings.svelte.ts
Normal file
96
apps/zitare/apps/web/src/lib/stores/settings.svelte.ts
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
/**
|
||||
* Settings Store - Manages user preferences for the Zitare app
|
||||
* Uses @manacore/shared-stores createAppSettingsStore factory
|
||||
*/
|
||||
|
||||
import { createAppSettingsStore } from '@manacore/shared-stores';
|
||||
|
||||
export interface ZitareAppSettings extends Record<string, unknown> {
|
||||
// View & Display
|
||||
showQuoteOfTheDay: boolean;
|
||||
autoRefreshDaily: boolean;
|
||||
compactMode: boolean;
|
||||
|
||||
// Quote Display
|
||||
showCategory: boolean;
|
||||
showSource: boolean;
|
||||
fontSizeMultiplier: number;
|
||||
|
||||
// Immersive Mode
|
||||
immersiveModeEnabled: boolean;
|
||||
|
||||
// Navigation UI
|
||||
pillNavCollapsed: boolean;
|
||||
}
|
||||
|
||||
const DEFAULT_SETTINGS: ZitareAppSettings = {
|
||||
// View & Display
|
||||
showQuoteOfTheDay: true,
|
||||
autoRefreshDaily: true,
|
||||
compactMode: false,
|
||||
|
||||
// Quote Display
|
||||
showCategory: true,
|
||||
showSource: true,
|
||||
fontSizeMultiplier: 1,
|
||||
|
||||
// Immersive Mode
|
||||
immersiveModeEnabled: false,
|
||||
|
||||
// Navigation UI
|
||||
pillNavCollapsed: true,
|
||||
};
|
||||
|
||||
// Create base store using factory
|
||||
const baseStore = createAppSettingsStore<ZitareAppSettings>('zitare-settings', DEFAULT_SETTINGS);
|
||||
|
||||
// Export with convenience getters
|
||||
export const zitareSettings = {
|
||||
// Base store methods
|
||||
get settings() {
|
||||
return baseStore.settings;
|
||||
},
|
||||
initialize: baseStore.initialize,
|
||||
set: baseStore.set,
|
||||
update: baseStore.update,
|
||||
reset: baseStore.reset,
|
||||
getDefaults: baseStore.getDefaults,
|
||||
toggleImmersiveMode: baseStore.toggleImmersiveMode,
|
||||
|
||||
// Convenience getters
|
||||
get showQuoteOfTheDay() {
|
||||
return baseStore.settings.showQuoteOfTheDay;
|
||||
},
|
||||
get autoRefreshDaily() {
|
||||
return baseStore.settings.autoRefreshDaily;
|
||||
},
|
||||
get compactMode() {
|
||||
return baseStore.settings.compactMode;
|
||||
},
|
||||
get showCategory() {
|
||||
return baseStore.settings.showCategory;
|
||||
},
|
||||
get showSource() {
|
||||
return baseStore.settings.showSource;
|
||||
},
|
||||
get fontSizeMultiplier() {
|
||||
return baseStore.settings.fontSizeMultiplier;
|
||||
},
|
||||
get immersiveModeEnabled() {
|
||||
return baseStore.settings.immersiveModeEnabled;
|
||||
},
|
||||
get pillNavCollapsed() {
|
||||
return baseStore.settings.pillNavCollapsed;
|
||||
},
|
||||
|
||||
// Toggle methods
|
||||
togglePillNav() {
|
||||
baseStore.update({ pillNavCollapsed: !baseStore.settings.pillNavCollapsed });
|
||||
},
|
||||
showPillNav() {
|
||||
baseStore.update({ pillNavCollapsed: false });
|
||||
},
|
||||
hidePillNav() {
|
||||
baseStore.update({ pillNavCollapsed: true });
|
||||
},
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue