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) { 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 } }