Add easy & DBA mode
This commit is contained in:
@@ -2,6 +2,7 @@ import React, { createContext, useContext, useMemo, useState } from "react";
|
||||
import { API_URL } from "./api";
|
||||
|
||||
const AuthCtx = createContext(null);
|
||||
const UI_MODE_KEY = "nexapg_ui_mode";
|
||||
|
||||
function loadStorage() {
|
||||
try {
|
||||
@@ -11,10 +12,21 @@ function loadStorage() {
|
||||
}
|
||||
}
|
||||
|
||||
function loadUiMode() {
|
||||
try {
|
||||
const value = localStorage.getItem(UI_MODE_KEY);
|
||||
if (value === "easy" || value === "dba") return value;
|
||||
} catch {
|
||||
// ignore storage errors
|
||||
}
|
||||
return "dba";
|
||||
}
|
||||
|
||||
export function AuthProvider({ children }) {
|
||||
const initial = loadStorage();
|
||||
const [tokens, setTokens] = useState(initial?.tokens || null);
|
||||
const [me, setMe] = useState(initial?.me || null);
|
||||
const [uiMode, setUiModeState] = useState(loadUiMode);
|
||||
|
||||
const persist = (nextTokens, nextMe) => {
|
||||
if (nextTokens && nextMe) {
|
||||
@@ -78,7 +90,13 @@ export function AuthProvider({ children }) {
|
||||
}
|
||||
};
|
||||
|
||||
const value = useMemo(() => ({ tokens, me, login, logout, refresh }), [tokens, me]);
|
||||
const setUiMode = (nextMode) => {
|
||||
const mode = nextMode === "easy" ? "easy" : "dba";
|
||||
setUiModeState(mode);
|
||||
localStorage.setItem(UI_MODE_KEY, mode);
|
||||
};
|
||||
|
||||
const value = useMemo(() => ({ tokens, me, login, logout, refresh, uiMode, setUiMode }), [tokens, me, uiMode]);
|
||||
return <AuthCtx.Provider value={value}>{children}</AuthCtx.Provider>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user