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 void window.txadmin.minimizeWindow()}> void window.txadmin.toggleMaximizeWindow()}> void window.txadmin.closeWindow()}> ); 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 Load the sysadmin private key to unlock admin functions. Select Private Key Expected equivalent: sysadmin/keys/tx-sysadmin-private.key {error && {error}} ); } return ( }> } /> } /> } /> } /> } /> ); } export default App;
Load the sysadmin private key to unlock admin functions.
Expected equivalent: sysadmin/keys/tx-sysadmin-private.key
{error}