release v2.0.0 #4

Merged
crimsen merged 481 commits from develop into master 2024-01-18 15:15:08 +00:00
4 changed files with 21 additions and 14 deletions
Showing only changes of commit d9267bcc0a - Show all commits

View File

@ -5,17 +5,17 @@ import { api } from '../internal';
import { defineStore } from 'pinia'; import { defineStore } from 'pinia';
import { PersistentStorage } from '../utils/persistent'; import { PersistentStorage } from '../utils/persistent';
function loadToken() { function reviveSession() {
return PersistentStorage.get<string>('fg_token'); return PersistentStorage.get<FG.Session>('fg_session').then((s) => fixSession(s || undefined));
} }
function clearToken() { function clearPersistant() {
void PersistentStorage.remove('fg_token'); void PersistentStorage.remove('fg_session');
} }
export function saveToken(token?: string) { export function saveSession(session?: FG.Session) {
if (token === undefined) return clearToken(); if (session === undefined) return clearPersistant();
PersistentStorage.set('fg_token', token).catch(() => PersistentStorage.set('fg_session', session).catch(() =>
console.error('Could not save token to storage') console.error('Could not save token to storage')
); );
} }
@ -52,9 +52,9 @@ export const useMainStore = defineStore({
const userStore = useUserStore(); const userStore = useUserStore();
try { try {
const token = await loadToken(); this.session = await reviveSession();
if (token !== null) { if (this.session !== undefined) {
this.session = await sessionStore.getSession(token); this.session = await sessionStore.getSession(this.session.token);
if (this.session !== undefined) this.user = await userStore.getUser(this.session.userid); if (this.session !== undefined) this.user = await userStore.getUser(this.session.userid);
} }
} catch (error) { } catch (error) {
@ -146,7 +146,7 @@ export const useMainStore = defineStore({
handleLoggedOut() { handleLoggedOut() {
this.$reset(); this.$reset();
void clearToken(); void clearPersistant();
}, },
}, },
}); });

View File

@ -24,6 +24,7 @@
"devDependencies": { "devDependencies": {
"@capacitor/core": "^3.3.2", "@capacitor/core": "^3.3.2",
"@capacitor/storage": "^1.2.3", "@capacitor/storage": "^1.2.3",
"@flaschengeist/types": "^1.0.0-alpha.9",
"@quasar/app": "^3.2.3", "@quasar/app": "^3.2.3",
"@quasar/extras": "^1.12.1", "@quasar/extras": "^1.12.1",
"@types/node": "^14.17.34", "@types/node": "^14.17.34",

View File

@ -1,7 +1,13 @@
/** /**
* This boot file initalizes the store from persistent storage and load all plugins * This boot file initalizes the store from persistent storage and load all plugins
*/ */
import { PersistentStorage, api, saveToken, useMainStore, isAxiosError } from '@flaschengeist/api'; import {
PersistentStorage,
api,
isAxiosError,
saveSession,
useMainStore,
} from '@flaschengeist/api';
import { Notify, Platform } from 'quasar'; import { Notify, Platform } from 'quasar';
import { loadPlugins } from './plugins'; import { loadPlugins } from './plugins';
import { boot } from 'quasar/wrappers'; import { boot } from 'quasar/wrappers';
@ -44,7 +50,7 @@ export default boot(async ({ app, router }) => {
} finally { } finally {
// Any changes on the session is written back to the persistent store // Any changes on the session is written back to the persistent store
store.$subscribe((mutation, state) => { store.$subscribe((mutation, state) => {
saveToken(state.session?.token); saveSession(state.session);
}); });
} }

View File

@ -115,7 +115,7 @@ export default defineComponent({
const status = await mainStore.login(userid.value, password.value); const status = await mainStore.login(userid.value, password.value);
if (status === true) { if (status === true) {
mainStore.user = (await userStore.getUser(userid.value, true)) || undefined; mainStore.user = await userStore.getUser(userid.value, true);
const x = router.currentRoute.value.query['redirect']; const x = router.currentRoute.value.query['redirect'];
void router.push(typeof x === 'string' ? { path: x } : mainRoute); void router.push(typeof x === 'string' ? { path: x } : mainRoute);
} else { } else {