mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
refactor: drive share, location and scene controls through product state
This commit is contained in:
1 parent
21a0d0c74e
commit
45d97376d0
21 files changed
+606
-96
No files matched your search
@@ -338,3 +338,29 @@ Panel layout, position/drag, notices, recording and deferred UI work have separa
|
||||
owners with synchronous cleanup. Existing scene, share and HUD engines retain
|
||||
their entry points. `ui/styles` loads the ordered stylesheet entry; component
|
||||
files retain the original cascade, including responsive and dock refinements.
|
||||
|
||||
|
||||
## UI state and Scene actions
|
||||
|
||||
`StyleManager.subscribeShareState(listener)` supplies the current shareable
|
||||
visual preferences and subsequent settings changes. The built-in share manager
|
||||
consumes the same updates. `subscribeLocationSearch(listener)` follows the
|
||||
current lookup owner across control replacement. `LocationSearch.subscribe`
|
||||
provides the corresponding per-owner contract. Changes identify `started`,
|
||||
`found`, `missing`, `failed`, `settled`, and the shell's `reset`; request IDs
|
||||
belong to their lookup owner. Only current requests publish accepted results.
|
||||
|
||||
`gods-eye-view/scenes` exports `SceneDirector`. Its `subscribe(listener)` supplies
|
||||
small playback snapshots plus editing outcomes. Scene controls consume these
|
||||
updates to render the affected presentation; progress does not copy the project
|
||||
or rebuild shot rows. Project import/export outcomes include the project;
|
||||
shot editing outcomes include the affected shot and its index before deletion.
|
||||
Camera, layer sequencing, storage and run-file download retain their existing
|
||||
owners. Cesium remains an external dependency supplied by the application.
|
||||
|
||||
Each listener receives `{ state, change, revision, initial }` and subscriptions
|
||||
return an unsubscribe function. Initial state is emitted by default; pass
|
||||
`{ emitCurrent: false }` to receive only changes. Snapshots and outcomes are
|
||||
immutable plain data. Reentrant publications retain delivery order; removing a
|
||||
listener or destroying its owner prevents further queued delivery. These APIs
|
||||
perform no network requests and discover no additional modules.
|
||||
@@ -1,5 +1,19 @@
|
||||
# God's Eye View Current State
|
||||
|
||||
## State and action outcomes
|
||||
|
||||
Share preferences, place lookups and Scene playback expose immutable snapshots
|
||||
and disposable subscriptions. Share settings drive URL updates; lookup outcomes
|
||||
drive Location labels and busy/error feedback. Superseded or disposed lookups
|
||||
cannot publish accepted destinations. Each completion carries its own request
|
||||
identity so an older completion cannot clear the current search indicator.
|
||||
|
||||
Scene controls consume playback state and editing outcomes from the director.
|
||||
Progress updates carry a small playback snapshot and preserve shot-row identity;
|
||||
editing outcomes include a copy of the affected scene or shot. Subscriptions
|
||||
start with current state, isolate listener failures and stop on disposal.
|
||||
`gods-eye-view/scenes` exports the same director used by the standalone app.
|
||||
|
||||
## UI shell and component ownership
|
||||
|
||||
The standalone entry composes the UI with the application's existing layer,
|
||||
|
||||
Reference in new issue
Block a user