Files
g3fo-recurring-investment/src/composables/useUrlPreferences.ts
T

27 lines
791 B
TypeScript

import { useRoute, useRouter } from 'vue-router'
import type { AppPreferences } from '@/config/urlPreferences'
import type { AppLocale } from '@/i18n/locale'
import { useAppStore } from '@/stores/app'
import type { AppTheme } from '@/theme/types'
export function useUrlPreferences() {
const route = useRoute()
const router = useRouter()
const appStore = useAppStore()
function replacePreferences(partial: Partial<AppPreferences>) {
const query = appStore.buildQueryForPreferences(partial, route.query)
router.replace({ path: route.path, hash: route.hash, query })
}
function setLocale(next: AppLocale) {
replacePreferences({ locale: next })
}
function setTheme(next: AppTheme) {
replacePreferences({ theme: next })
}
return { setLocale, setTheme }
}