Add easy & DBA mode

This commit is contained in:
2026-02-12 11:37:25 +01:00
parent d1af2bf4c6
commit 64b4c3dfa4
4 changed files with 238 additions and 4 deletions

View File

@@ -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>;
}