make new localstorage function file

This commit is contained in:
Adrian Zürcher
2025-11-15 14:19:45 +01:00
parent 44f355a5ea
commit 7b17cd99fe
8 changed files with 128 additions and 56 deletions

View File

@@ -1,10 +1,10 @@
import { createI18n } from 'vue-i18n';
import yaml from 'js-yaml';
import { getLocalLanguage } from 'src/localstorage/localStorage';
export const lang = [];
const systemLocale = navigator.language || 'en-US';
const savedLang = localStorage.getItem('lang');
const messages = {};
const modules = import.meta.glob('src/assets/lang/*.yaml', {
@@ -39,7 +39,7 @@ function resolveLocale(desiredLocale) {
return messages['en'] ? 'en' : Object.keys(messages)[0];
}
const selectedLocale = resolveLocale(savedLang || systemLocale);
const selectedLocale = resolveLocale(getLocalLanguage() || systemLocale);
const i18n = createI18n({
legacy: false, // Composition API mode

View File

@@ -3,44 +3,29 @@ import { setQuasarInstance } from 'src/vueLib/utils/globalQ';
import { setRouterInstance } from 'src/vueLib/utils/globalRouter';
import { databaseName, logo, appName } from 'src/vueLib/models/settings';
import { Dark } from 'quasar';
import { getLocalDarkMode, getLocalSettings } from 'src/localstorage/localStorage';
export default boot(({ app, router }) => {
setRouterInstance(router); // store router for global access
const $q = app.config.globalProperties.$q;
setQuasarInstance($q);
Dark.set(localStorage.getItem('mode') === 'true');
Dark.set(getLocalDarkMode());
logo.value = localStorage.getItem('icon') ?? logo.value;
appName.value = localStorage.getItem('appName') ?? appName.value;
databaseName.value = localStorage.getItem('databaseName') ?? databaseName.value;
let primaryColor = localStorage.getItem('primaryColor');
if (primaryColor == null || primaryColor === 'undefined' || primaryColor.trim() === '') {
primaryColor = null;
}
let primaryColorText = localStorage.getItem('primaryColorText');
if (
primaryColorText == null ||
primaryColorText === 'undefined' ||
primaryColorText.trim() === ''
) {
primaryColorText = null;
}
let secondaryColor = localStorage.getItem('secondaryColor');
if (secondaryColor == null || secondaryColor === 'undefined' || secondaryColor.trim() === '') {
secondaryColor = null;
}
let secondaryColorText = localStorage.getItem('secondaryColorText');
if (
secondaryColorText == null ||
secondaryColorText === 'undefined' ||
secondaryColorText.trim() === ''
) {
secondaryColorText = null;
}
const settings = getLocalSettings();
document.documentElement.style.setProperty('--q-primary', primaryColor ?? '#1976d2');
document.documentElement.style.setProperty('--q-primary-text', primaryColorText ?? '#ffffff');
document.documentElement.style.setProperty('--q-secondary', secondaryColor ?? '#26a69a');
document.documentElement.style.setProperty('--q-secondary-text', secondaryColorText ?? '#ffffff');
logo.value = settings.icon ?? logo.value;
appName.value = settings.appName ?? appName.value;
databaseName.value = settings.databaseName ?? databaseName.value;
document.documentElement.style.setProperty('--q-primary', settings.primaryColor ?? '#1976d2');
document.documentElement.style.setProperty(
'--q-primary-text',
settings.primaryColorText ?? '#ffffff',
);
document.documentElement.style.setProperty('--q-secondary', settings.secondaryColor ?? '#26a69a');
document.documentElement.style.setProperty(
'--q-secondary-text',
settings.secondaryColorText ?? '#ffffff',
);
});

View File

@@ -1,6 +1,7 @@
import { boot } from 'quasar/wrappers';
import { useUserStore } from 'src/vueLib/login/userStore';
import { appApi } from './axios';
import { getLocalLastRoute, setLocalLastRoute } from 'src/localstorage/localStorage';
export default boot(async ({ router }) => {
const userStore = useUserStore();
@@ -14,7 +15,7 @@ export default boot(async ({ router }) => {
// Restore logic after router is ready but before navigation
router.isReady().then(() => {
const lastRoute = localStorage.getItem('lastRoute');
const lastRoute = getLocalLastRoute();
const currentPath = router.currentRoute.value.fullPath;
// Restore only if:
@@ -34,7 +35,7 @@ export default boot(async ({ router }) => {
router.afterEach((to) => {
// Don't save login page as "last route"
if (to.path !== '/login' && to.path !== '/') {
localStorage.setItem('lastRoute', to.fullPath);
setLocalLastRoute(to.fullPath);
}
});
});