// Settings scene — identity, backend URL, polling cadence, theme. import { useState } from "react"; import { useApp } from "../state/store"; import { api } from "../lib/api"; import { User, Refresh, Cog, Pulse, Layers, Check } from "../components/icons"; const COMMON_EMAILS = [ "ceo-head@flow-master.ai", "hr-head@flow-master.ai", "it-head@flow-master.ai", ]; export default function Settings() { const userEmail = useApp((s) => s.userEmail); const actor = useApp((s) => s.actor); const userDisplayName = useApp((s) => s.userDisplayName); const loginAs = useApp((s) => s.loginAs); const pollEverySec = useApp((s) => s.pollEverySec); const setPollEverySec = useApp((s) => s.setPollEverySec); const theme = useApp((s) => s.theme); const setTheme = useApp((s) => s.setTheme); const consoleOpen = useApp((s) => s.consoleOpen); const setConsoleOpen = useApp((s) => s.setConsoleOpen); const refreshLive = useApp((s) => s.refreshLive); const pushToast = useApp((s) => s.pushToast); const [emailInput, setEmailInput] = useState(userEmail); const [signingIn, setSigningIn] = useState(false); const signIn = async (email: string) => { setSigningIn(true); try { await loginAs(email, undefined, { method: "dev" }); } finally { setSigningIn(false); } }; const clearToken = () => { api.clearToken(); pushToast("info", "Cleared bearer token. Next request will re-login."); }; return (
FlowMaster operator cockpit. Live at{" "} canvas.flow-master.ai . Every action writes to EA2 — open the live console (above) to see the API trail.