fix: retain completed scene status in current snapshots

This commit is contained in:
Sameh Khamis committed 2026-09-13 05:43:41 -07:00
1 parent e0652b19f2
commit 3164405108
5 files changed
+6 -5

No files matched your search

-1
View File
@@ -339,7 +339,6 @@ 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
+1 -1
View File
@@ -258,7 +258,7 @@ test('deferred search releases only after its final authority check', () => {
assert.match(ui, /begin: \(\) => this\._beginDeferredNavigation\('location'\)/);
assert.match(ui, /beforeFly: \(generation\) => this\._reassertNavigationHandoff\(generation\)/);
assert.match(ui, /isCurrent: \(generation\) =>\s*!this\._disposed && generation === this\._navigationGeneration/);
assert.match(ui, /change\.type === 'settled'\) this\._settleLocationSearchUi\(change\.generation\)/);
assert.match(ui, /change\.type === 'settled'\)\s*this\._settleLocationSearchUi\(change\.generation\)/);
assert.doesNotMatch(search.slice(0, search.indexOf('await this.search')), /_releaseFollowCamera/);
});
+2
View File
@@ -404,6 +404,7 @@ export class SceneDirector {
_publish(change) { this._state?.publish(change); }
_shotOutcome(type, scene, shot, index = scene.shots.indexOf(shot)) {
if (type === 'shot-loaded') this._presentation.status = `Loaded: ${scene.title} / ${shot.title}`;
this._publish({ type, sceneId: scene.id, sceneTitle: scene.title, shot, index });
}
@@ -979,6 +980,7 @@ export class SceneDirector {
link.click();
link.remove();
URL.revokeObjectURL(url);
this._presentation.status = 'Project exported';
this._publish({ type: 'project-exported', project: this._project });
}
+2 -3
View File
@@ -100,9 +100,8 @@ export class SceneControls {
this.setPlaybackActive(state.playbackActive);
if (initial || type === 'playback-keyboard')
this.setPlaybackKeyboardEnabled(state.keyboardEnabled);
if (type === 'project-exported') this.updateStatus('Project exported');
if (type === 'shot-loaded')
this.updateStatus(`Loaded: ${change.sceneTitle} / ${change.shot.title}`);
if (type === 'project-exported') this.updateStatus(state.status);
if (type === 'shot-loaded') this.updateStatus(state.status);
if (type === 'run-event' && change.event === 'shot_start')
this.setButtons(state.running);
}
+1
View File
@@ -374,6 +374,7 @@ test('Scene controls consume current state, preserve rows on progress, and unsub
f.state.progress = 0.5;
channel.publish({ type: 'progress-changed' });
assert.equal(f.elements.shots.children[0], row);
f.state.status = 'Project exported';
channel.publish({ type: 'project-exported' });
assert.equal(f.elements.status.textContent, 'Project exported');
owner.destroy();