This repository has been archived on 2026-03-09. You can view files and clone it, but cannot push or open issues or pull requests.
as-app/src/stores/session/index.js

38 lines
957 B
JavaScript

import { createAtom } from "~/lib/atomic-zustand";
import sessionVarsFromJWT from "./sessionVarsFromJWT";
import {
DEFAULT_DEVICE_RADIUS_ALL,
DEFAULT_DEVICE_RADIUS_REACH,
} from "~/misc/devicePrefs";
export default createAtom(({ merge }) => {
const defaultValues = {
initialized: false,
allowedRoles: [],
defaultRole: null,
userId: null,
deviceId: null,
radiusAll: DEFAULT_DEVICE_RADIUS_ALL,
radiusReach: DEFAULT_DEVICE_RADIUS_REACH,
};
return {
default: defaultValues,
actions: {
loadSessionFromJWT: (jwt) =>
merge({
...sessionVarsFromJWT(jwt),
initialized: true,
}),
loadUserPreference: ({ radiusAll, radiusReach }) =>
merge({
radiusAll: radiusAll || DEFAULT_DEVICE_RADIUS_ALL,
radiusReach: radiusReach || DEFAULT_DEVICE_RADIUS_REACH,
}),
clear: () => {
merge({ ...defaultValues });
},
},
};
});