@wener/console
Version:
Base console UI toolkit
62 lines (61 loc) • 1.99 kB
JavaScript
import { getGlobalStates, setGlobalStates } from "@wener/utils";
import Emittery from "emittery";
import { useStore } from "zustand";
import { getSiteStore as _getSiteStore } from "../foundation/site/SiteStore.js";
import { createRouteStore } from "./store/RouteStore.js";
import { createUserStore } from "./store/UserStore.js";
export const ConsoleEvents = {
Error: "Console:Error",
SignIn: "Console:SignIn",
SignOut: "Console:SignOut",
Lock: "Console:Lock",
Unlock: "Console:Unlock",
RefreshProfile: "Console:RefreshProfile",
ModuleLoad: "Console:Module:Load",
LauncherToggle: "Console:Launcher:Toggle"
};
function createConsoleContext({ emitter: _emitter }) {
const emitter = _emitter || new Emittery();
const routeStore = createRouteStore();
const userStore = createUserStore();
const ctx = {
getAccessToken: () => undefined,
getEmitter: () => emitter,
getRouteStore: () => routeStore,
getSiteStore: _getSiteStore,
getUserStore: () => userStore,
useUserId: () => useStore(getUserStore(), (s) => s.id)
};
return {
emitter,
context: ctx
};
}
const ConsoleContextKey = "ConsoleContext";
export function getConsoleContext() {
return getGlobalStates(ConsoleContextKey, () => {
return createConsoleContext({}).context;
});
}
export function setConsoleContext(context) {
setGlobalStates(ConsoleContextKey, context);
}
export function getAccessToken() {
return getConsoleContext().getAccessToken();
}
export function useUserId() {
return getConsoleContext().useUserId();
}
export function getRouteStore() {
return getConsoleContext().getRouteStore();
}
export function getSiteStore() {
return getConsoleContext().getSiteStore();
}
export function getUserStore() {
return getConsoleContext().getUserStore();
}
export function getConsoleEmitter() {
return getConsoleContext().getEmitter();
}
//# sourceMappingURL=context.js.map