import { useEffect, useState } from 'react'; import { HashRouter, Routes, Route } from 'react-router-dom'; import { Minus, Square, X } from 'lucide-react'; import { DashboardLayout } from './components/layout/DashboardLayout'; import { DashboardPage } from './pages/DashboardPage'; import { UsersPage } from './pages/UsersPage'; import { WapServersPage } from './pages/WapServersPage'; import { CompaniesPage } from './pages/CompaniesPage'; import { PlansPage } from './pages/PlansPage'; import txadminIcon from './assets/txadmin-icon.png'; const TitleBar = () => (
txadmin txadmin
); function App() { const [keyStatus, setKeyStatus] = useState<{ loaded: boolean; path: string | null }>({ loaded: false, path: null }); const [error, setError] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { if (!window.txadmin) { setError('Desktop bridge is not available. Restart txadmin and try again.'); setLoading(false); return; } window.txadmin.getKeyStatus() .then(setKeyStatus) .catch(() => setError('Could not read private key status.')) .finally(() => setLoading(false)); }, []); const selectPrivateKey = async () => { setError(null); try { setKeyStatus(await window.txadmin.selectPrivateKey()); } catch (err) { setError(err instanceof Error ? err.message : 'Could not load the private key.'); } }; if (loading) { return
Loading txadmin...
; } if (!keyStatus.loaded) { return (
txadmin

txadmin

Load the sysadmin private key to unlock admin functions.

Expected equivalent: sysadmin/keys/tx-sysadmin-private.key

{error &&

{error}

}
); } return (
}> } /> } /> } /> } /> } />
); } export default App;