Files
Termix/src/ui/shell/ShellRoot.tsx
T
96b8520fb4 v26.10.5 (#1710)
* feat: add an auto or fixed columns picker to card grids

* feat: add safe mode that only runs layout and theme plugins

* docs: add simple layout to plugin table

* fix: ask for local network access in the macOS app

* feat: allow plugin registries on listed private hosts (#1705)

* chore: add private registry hosts to the changelog

* feat: use the proxy for plugin registry downloads

* fix: allow changing connection origin on shared hosts

* chore: update translations and plugin pins

* chore: lint, format, and bump version to 26.10.5

---------

Co-authored-by: Lukas <80832688+0skater0@users.noreply.github.com>
2026-10-22 13:30:48 -05:00

35 lines
1.2 KiB
TypeScript

import { isElectron } from "@/lib/electron";
import { ServerStatusProvider } from "@/lib/ServerStatusContext";
import { ComponentSlot } from "@/shell/ActionSlot";
import { OnboardingHost } from "@/onboarding/OnboardingHost";
import { DesktopUpdateToasts } from "@/shell/DesktopUpdateToasts";
import { SafeModeNotice } from "@/shell/SafeModeNotice";
import { TabPortals } from "@/shell/stage/TabPortals";
import { LayoutHost } from "@/shell/layout/LayoutHost";
import { ShellControllerProvider } from "@/shell/controller/ShellControllerProvider";
/**
* The signed-in app: the shell's state, the chosen layout, every tab's
* content and the pieces core always owns (overlays, onboarding).
*/
export function ShellRoot({
username,
onLogout,
}: {
username: string;
onLogout: (options?: { manual?: boolean }) => void;
}) {
return (
<ServerStatusProvider isAuthenticated={!!username}>
<ShellControllerProvider username={username} onLogout={onLogout}>
<LayoutHost />
<TabPortals />
<ComponentSlot slotId="shell.overlay" />
<OnboardingHost />
<SafeModeNotice />
{isElectron() && <DesktopUpdateToasts />}
</ShellControllerProvider>
</ServerStatusProvider>
);
}