gui/components/SingleView

The single-image view — a dedicated full page for one saved image and its sidecar, promoted to a top-level view (its own header tab) alongside Generate and Gallery. Sticky image on the left with its Re-Rolls / Variations / Resizes strips beneath it; on the right the prompt and negative each in their DPL / engine-roll / AI-translation / sent layers (with inline re-roll / make-variation actions), a curated details table (toggleable to a syntax-highlighted raw-JSON view) with Markdown / JSON copy, a clickable keyword cloud, prev/next navigation, and the file actions (open / reveal / download / convert / resize / delete).

Two v1-2 features live here: re-roll / variation (regenerate a fresh image from a captured prompt layer, new seed) and ancestry (each derived image keeps its parent's id; the feed scan rebuilds the reverse child list). Re-roll / variation / resize don't navigate away — a live placeholder appears in the matching strip below the image and fills in when the new image lands.

State lives in App (the current image, the feed, in-flight derivations) so the view keeps its place when you switch tabs. It stays mounted but hidden when inactive, so keyboard nav is gated on active.

Description:
  • The single-image view — a dedicated full page for one saved image and its sidecar, promoted to a top-level view (its own header tab) alongside Generate and Gallery. Sticky image on the left with its Re-Rolls / Variations / Resizes strips beneath it; on the right the prompt and negative each in their DPL / engine-roll / AI-translation / sent layers (with inline re-roll / make-variation actions), a curated details table (toggleable to a syntax-highlighted raw-JSON view) with Markdown / JSON copy, a clickable keyword cloud, prev/next navigation, and the file actions (open / reveal / download / convert / resize / delete).

    Two v1-2 features live here: re-roll / variation (regenerate a fresh image from a captured prompt layer, new seed) and ancestry (each derived image keeps its parent's id; the feed scan rebuilds the reverse child list). Re-roll / variation / resize don't navigate away — a live placeholder appears in the matching strip below the image and fills in when the new image lands.

    State lives in App (the current image, the feed, in-flight derivations) so the view keeps its place when you switch tabs. It stays mounted but hidden when inactive, so keyboard nav is gated on active.

Source:

(require("gui/components/SingleView"))(props) → {JSX.Element}

Description:
  • The single-image view.

Source:
Parameters:
Name Type Description
props object
Properties
Name Type Attributes Description
items Array.<object>

The feed (drives prev/next + ancestry resolution).

current object | null

The image being shown.

magick Object

ImageMagick capability.

settings object

App settings (rewrite provider + key for the keyword rebuild).

active boolean

Whether this view is the visible one (gates keyboard nav).

returnLabel string

Label for the Back button target (e.g. "Generate").

onBack function

Leave the single view.

onNavigate function

(item) — show another image (prev/next/parent/child).

onDelete function

(item).

onSearch function

(term) — search the gallery for a keyword.

onMetaUpdate function

(path, meta) — apply a saved sidecar to the feed + view.

onDerive function <optional>

(item, kind, source) — re-roll / vary into a new image.

onResize function <optional>

(item, scale) — resize into a new image (ImageMagick).

derivations Array.<object> <optional>

In-flight derivations { id, parentPath, kind }.

deriveError string <optional>

The last re-roll / variation / resize failure, if any.

Returns:
Type
JSX.Element