From a8219611cbebbd27501d9f30c804979048b98107 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Tue, 13 Dec 2022 14:48:11 +0100 Subject: feat: A whole slew of things - Use a md5 hash of the session cookie value as key for session validity check - Introduce global state - Introduce a common interface for form logic, and implement it on the sign-in form - Introduce static resolve() on all services instead of new-upping all over. - Implement /portal on the frontend to support giving the frontend a inital context from server or anywhere. - Show a notification when users sign in for the first time after validating their email --- code/app/src/help/global-state.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 code/app/src/help/global-state.ts (limited to 'code/app/src/help/global-state.ts') diff --git a/code/app/src/help/global-state.ts b/code/app/src/help/global-state.ts new file mode 100644 index 0000000..a253ae9 --- /dev/null +++ b/code/app/src/help/global-state.ts @@ -0,0 +1,22 @@ +import { get } from "svelte/store"; +import { writable_persistent } from "./persistent-store"; + +const state = writable_persistent({ + initialState: {}, + name: "global-state" +}); + +export type GlobalStateKeys = "isLoggedIn" | "showEmailValidatedAlertWhenLoggedIn" | "all"; + +export function fgs(key: GlobalStateKeys): any { + const value = get(state); + if (key === "all") return value; + return value[key]; +} + +export function sgs(key: GlobalStateKeys, value: any) { + if (key === "all") throw new Error("Not allowed to set global state key: all"); + const stateValue = get(state); + stateValue[key] = JSON.stringify(value) + state.set(stateValue); +} \ No newline at end of file -- cgit v1.3