The SPA shell: a slim brand top-bar (logo + wordmark + a Generate / Gallery / Single view switch
- a Providers dropdown (image + text providers, each with its BYOK key) + a provider-settings gear + NSFW toggle) over the three top-level views and a privacy footer.
All three views (Home, Gallery, SingleView) stay mounted the whole session and are shown one
at a time via a CSS class — so each keeps its full state (and scroll position) when you switch
tabs, with no manual save/restore. The shared bits they coordinate on — the saved-image feed, the
gallery search query, and the image open in the single view — live here in App. Clicking a
generated image (in Home) or a gallery thumbnail opens it in the single view; Back returns to
wherever you came from, intact. A shared link (#s=…) seeds settings on load.
The online build (VITE_ONLINE) is a stripped variant: Generate works, but the Gallery/Single
tabs, the local image providers, and the NSFW toggle are shown disabled (greyed, with a
tooltip + a link to the full desktop version) because they need a local machine; NSFW is also
forced off. See lib/online.js.
- Description:
The SPA shell: a slim brand top-bar (logo + wordmark + a Generate / Gallery / Single view switch
- a Providers dropdown (image + text providers, each with its BYOK key) + a provider-settings gear + NSFW toggle) over the three top-level views and a privacy footer.
All three views (Home, Gallery, SingleView) stay mounted the whole session and are shown one at a time via a CSS class — so each keeps its full state (and scroll position) when you switch tabs, with no manual save/restore. The shared bits they coordinate on — the saved-image feed, the gallery search query, and the image open in the single view — live here in
App. Clicking a generated image (in Home) or a gallery thumbnail opens it in the single view; Back returns to wherever you came from, intact. A shared link (#s=…) seeds settings on load.The online build (
VITE_ONLINE) is a stripped variant: Generate works, but the Gallery/Single tabs, the local image providers, and the NSFW toggle are shown disabled (greyed, with a tooltip + a link to the full desktop version) because they need a local machine; NSFW is also forced off. Seelib/online.js.
- Source:
(require("gui/App"))() → {JSX.Element}
- Description:
The application root: owns settings and establishes the i18n boundary so the whole shell (and its localized strings) renders under a configured provider.
- Source:
Returns:
- Type
- JSX.Element
Methods
(inner) AppShell(props) → {JSX.Element}
- Description:
The application shell component (top bar + the views + footer).
- Source:
Parameters:
| Name | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
props |
object |
Properties
|
Returns:
- Type
- JSX.Element
(inner) HydratedApp() → {JSX.Element}
- Description:
The app once the storage cache is hydrated: owns settings and establishes the i18n boundary.
- Source:
Returns:
- Type
- JSX.Element