mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-13 09:19:56 -05:00
Chore: Port over Extensions & Search
This commit is contained in:
@@ -1,22 +1,13 @@
|
||||
export type NavPage =
|
||||
| 'home' | 'library' | 'sources' | 'explore'
|
||||
| 'downloads' | 'extensions' | 'history' | 'search' | 'tracking'
|
||||
|
||||
export type AppStatus = 'booting' | 'not-configured' | 'auth' | 'ready' | 'error'
|
||||
|
||||
class AppStore {
|
||||
navPage: NavPage = $state('home')
|
||||
settingsOpen: boolean = $state(false)
|
||||
searchPrefill: string = $state('')
|
||||
searchQuery: string = $state('')
|
||||
genreFilter: string = $state('')
|
||||
settingsOpen: boolean = $state(false)
|
||||
navPage: string = $state('')
|
||||
scrollPositions: Map<string, number> = $state(new Map())
|
||||
|
||||
setNavPage(next: NavPage) { this.navPage = next }
|
||||
setSettingsOpen(next: boolean) { this.settingsOpen = next }
|
||||
setSearchPrefill(next: string) { this.searchPrefill = next }
|
||||
setSearchQuery(next: string) { this.searchQuery = next }
|
||||
setGenreFilter(next: string) { this.genreFilter = next }
|
||||
setSettingsOpen(next: boolean) { this.settingsOpen = next }
|
||||
setNavPage(next: string) { this.navPage = next }
|
||||
|
||||
saveScroll(key: string, top: number) {
|
||||
const m = new Map(this.scrollPositions)
|
||||
m.set(key, top)
|
||||
@@ -36,15 +27,14 @@ export const appState = $state({
|
||||
platform: 'web' as 'web' | 'tauri' | 'capacitor',
|
||||
version: '',
|
||||
libraryFilter: '',
|
||||
navPage: '',
|
||||
categories: [] as { id: number; name: string }[],
|
||||
history: [] as unknown[],
|
||||
toasts: [] as unknown[],
|
||||
})
|
||||
|
||||
export function setNavPage(next: NavPage) { app.setNavPage(next) }
|
||||
export function setSettingsOpen(next: boolean) { app.setSettingsOpen(next) }
|
||||
export function setSearchPrefill(next: string) { app.setSearchPrefill(next) }
|
||||
export function setSearchQuery(next: string) { app.setSearchQuery(next) }
|
||||
export function setGenreFilter(next: string) { app.setGenreFilter(next) }
|
||||
export function saveScroll(key: string, top: number) { app.saveScroll(key, top) }
|
||||
export function getScroll(key: string): number { return app.getScroll(key) }
|
||||
export function getScroll(key: string): number { return app.getScroll(key) }
|
||||
export function setGenreFilter(genre: string) { appState.libraryFilter = genre }
|
||||
export function setNavPage(page: string) { app.setNavPage(page); appState.navPage = page }
|
||||
Reference in New Issue
Block a user