Dont unmount apps

This commit is contained in:
LukeGus
2025-08-08 00:43:52 -05:00
parent 08f9143993
commit 2ff31f5a82
+34 -24
View File
@@ -8,36 +8,46 @@ import {SSHManager} from "@/apps/SSH/Manager/SSHManager.tsx"
function App() { function App() {
const [view, setView] = React.useState<string>("homepage") const [view, setView] = React.useState<string>("homepage")
const [mountedViews, setMountedViews] = React.useState<Set<string>>(new Set(["homepage"]))
const renderActiveView = () => { const handleSelectView = (nextView: string) => {
switch (view) { setMountedViews((prev) => {
case "homepage": if (prev.has(nextView)) return prev
return <Homepage const next = new Set(prev)
onSelectView={setView} next.add(nextView)
/> return next
case "ssh_manager": })
return <SSHManager setView(nextView)
onSelectView={setView}
/>
case "terminal":
return <SSH
onSelectView={setView}
/>
case "tunnel":
return <SSHTunnel
onSelectView={setView}
/>
case "config_editor":
return <ConfigEditor
onSelectView={setView}
/>
}
} }
return ( return (
<div className="flex min-h-svh w-full"> <div className="flex min-h-svh w-full">
<main className="flex-1 w-full"> <main className="flex-1 w-full">
{renderActiveView()} {mountedViews.has("homepage") && (
<div style={{display: view === "homepage" ? "block" : "none"}}>
<Homepage onSelectView={handleSelectView} />
</div>
)}
{mountedViews.has("ssh_manager") && (
<div style={{display: view === "ssh_manager" ? "block" : "none"}}>
<SSHManager onSelectView={handleSelectView} />
</div>
)}
{mountedViews.has("terminal") && (
<div style={{display: view === "terminal" ? "block" : "none"}}>
<SSH onSelectView={handleSelectView} />
</div>
)}
{mountedViews.has("tunnel") && (
<div style={{display: view === "tunnel" ? "block" : "none"}}>
<SSHTunnel onSelectView={handleSelectView} />
</div>
)}
{mountedViews.has("config_editor") && (
<div style={{display: view === "config_editor" ? "block" : "none"}}>
<ConfigEditor onSelectView={handleSelectView} />
</div>
)}
</main> </main>
</div> </div>
) )