From 161ea46e799fe6e372736d23db38c3b99459b2d6 Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 10:49:02 +0545 Subject: [PATCH 01/13] add mode --- spec/system/createInitialState.spec.yaml | 1 + src/stores/system.store.js | 2 ++ vt/static/main.js | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/spec/system/createInitialState.spec.yaml b/spec/system/createInitialState.spec.yaml index 17985e1d..b0d19550 100644 --- a/spec/system/createInitialState.spec.yaml +++ b/spec/system/createInitialState.spec.yaml @@ -38,6 +38,7 @@ out: requireLineCompleted: false auto: enabled: false + delay: 1000 saveSlots: {} layeredViews: [] projectData: diff --git a/src/stores/system.store.js b/src/stores/system.store.js index c9edc808..7e9a8503 100644 --- a/src/stores/system.store.js +++ b/src/stores/system.store.js @@ -40,6 +40,7 @@ export const createInitialState = (payload) => { }, auto: { enabled: false, + delay: 1000, } }, saveSlots: {}, @@ -365,6 +366,7 @@ export const startAutoMode = ({ state }) => { }); state.global.pendingEffects.push({ name: "startAutoNextTimer", + delay: state.global.nextLineConfig.auto.delay, }); state.global.pendingEffects.push({ name: "render", diff --git a/vt/static/main.js b/vt/static/main.js index 9ef9546c..7dacefa3 100644 --- a/vt/static/main.js +++ b/vt/static/main.js @@ -196,7 +196,8 @@ const init = async () => { // Auto advance every 1000ms (1 second) - hardcoded // TODO: Speed can adjust in the future - if (autoModeElapsed >= 1000) { + const delay = effect.delay ?? 1000; + if (autoModeElapsed >= delay) { autoModeElapsed = 0; engine.handleAction('nextLine', {}); } From 419d148896ee220b16074d9f1e0b17bc54f07e0d Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 11:16:16 +0545 Subject: [PATCH 02/13] update tests --- spec/system/actions/startAutoMode.spec.yaml | 35 +++++++++++++++++ spec/system/actions/toggleAutoMode.spec.yaml | 41 +++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/spec/system/actions/startAutoMode.spec.yaml b/spec/system/actions/startAutoMode.spec.yaml index 766d385b..2d97d86a 100644 --- a/spec/system/actions/startAutoMode.spec.yaml +++ b/spec/system/actions/startAutoMode.spec.yaml @@ -11,13 +11,20 @@ in: global: autoMode: false pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: start auto mode when already enabled in: @@ -25,13 +32,20 @@ in: global: autoMode: true pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: start auto mode with skip mode enabled in: @@ -40,6 +54,9 @@ in: autoMode: false skipMode: true pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true @@ -48,7 +65,11 @@ out: - name: clearSkipNextTimer - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: start auto mode with existing pending effects in: @@ -58,6 +79,9 @@ in: pendingEffects: - name: existingEffect data: test + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true @@ -66,7 +90,11 @@ out: data: test - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: start auto mode with both auto and skip mode enabled in: @@ -76,6 +104,9 @@ in: skipMode: true pendingEffects: - name: existingEffect + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true @@ -85,4 +116,8 @@ out: - name: clearSkipNextTimer - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 diff --git a/spec/system/actions/toggleAutoMode.spec.yaml b/spec/system/actions/toggleAutoMode.spec.yaml index b5337594..34efd8b6 100644 --- a/spec/system/actions/toggleAutoMode.spec.yaml +++ b/spec/system/actions/toggleAutoMode.spec.yaml @@ -11,13 +11,20 @@ in: global: autoMode: false pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: toggle auto mode from true to false in: @@ -25,12 +32,18 @@ in: global: autoMode: true pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: false pendingEffects: - name: clearAutoNextTimer - name: render + nextLineConfig: + auto: + delay: 1000 --- case: toggle auto mode from false to true with skip mode enabled in: @@ -39,6 +52,9 @@ in: autoMode: false skipMode: true pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true @@ -47,7 +63,11 @@ out: - name: clearSkipNextTimer - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: toggle auto mode from true to false with skip mode enabled in: @@ -56,6 +76,9 @@ in: autoMode: true skipMode: true pendingEffects: [] + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: false @@ -63,6 +86,9 @@ out: pendingEffects: - name: clearAutoNextTimer - name: render + nextLineConfig: + auto: + delay: 1000 --- case: toggle auto mode with existing pending effects (disabled to enabled) in: @@ -72,6 +98,9 @@ in: pendingEffects: - name: existingEffect data: test + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: true @@ -80,7 +109,11 @@ out: data: test - name: clearAutoNextTimer - name: startAutoNextTimer + delay: 1000 - name: render + nextLineConfig: + auto: + delay: 1000 --- case: toggle auto mode with existing pending effects (enabled to disabled) in: @@ -90,6 +123,9 @@ in: pendingEffects: - name: existingEffect data: test + nextLineConfig: + auto: + delay: 1000 out: global: autoMode: false @@ -97,4 +133,7 @@ out: - name: existingEffect data: test - name: clearAutoNextTimer - - name: render \ No newline at end of file + - name: render + nextLineConfig: + auto: + delay: 1000 \ No newline at end of file From 4153995187940dfc25eabe1764254702bda4b34b Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 11:28:20 +0545 Subject: [PATCH 03/13] autoplay vt --- vt/specs/dialogue/autoplay.yaml | 39 ++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/vt/specs/dialogue/autoplay.yaml b/vt/specs/dialogue/autoplay.yaml index 76d4903e..1d46acf1 100644 --- a/vt/specs/dialogue/autoplay.yaml +++ b/vt/specs/dialogue/autoplay.yaml @@ -8,7 +8,7 @@ l10n: lang: en keys: line1: "Line 1: Testing autoplay functionality" - line2: "Line 2: This should auto-advance after 1 second" + line2: "Line 2: This should auto-advance after 2 second" line3: "Line 3: Click Auto button to enable/disable" line4: "Line 4: Auto mode should continue through all lines" line5: "Line 5: Final line - auto mode stops here" @@ -101,6 +101,43 @@ resources: actions: toggleSkipMode: {} + - id: speed-slow-button + type: text + x: 1400 + y: 50 + content: "Slow" + textStyle: + fontSize: 32 + fill: "white" + hover: + textStyle: + fontSize: 32 + fill: "yellow" + click: + actionPayload: + actions: + setNextLineConfig: + auto: + delay: 2000 + - id: speed-fast-button + type: text + x: 1250 + y: 50 + content: "Fast" + textStyle: + fontSize: 32 + fill: "white" + hover: + textStyle: + fontSize: 32 + fill: "yellow" + click: + actionPayload: + actions: + setNextLineConfig: + auto: + delay: 250 + story: initialSceneId: test_scene scenes: From 02821546f0425a4495a93d37fc8c85b20151df0b Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 11:36:40 +0545 Subject: [PATCH 04/13] update line complete event --- spec/system/actions/markLineCompleted.spec.yaml | 5 ++++- src/stores/system.store.js | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spec/system/actions/markLineCompleted.spec.yaml b/spec/system/actions/markLineCompleted.spec.yaml index 35b17427..099d7eb3 100644 --- a/spec/system/actions/markLineCompleted.spec.yaml +++ b/spec/system/actions/markLineCompleted.spec.yaml @@ -16,6 +16,7 @@ out: isLineCompleted: true pendingEffects: - name: render + - name: lineCompleted --- case: mark line as completed when already completed in: @@ -28,6 +29,7 @@ out: isLineCompleted: true pendingEffects: - name: render + - name: lineCompleted --- case: mark line as completed with existing pending effects in: @@ -43,4 +45,5 @@ out: pendingEffects: - name: existingEffect data: test - - name: render \ No newline at end of file + - name: render + - name: lineCompleted \ No newline at end of file diff --git a/src/stores/system.store.js b/src/stores/system.store.js index 7e9a8503..12fe987b 100644 --- a/src/stores/system.store.js +++ b/src/stores/system.store.js @@ -829,6 +829,9 @@ export const markLineCompleted = ({ state }) => { state.global.pendingEffects.push({ name: "render", }); + state.global.pendingEffects.push({ + name: "lineCompleted", + }); return state; }; From 7da72257d507b90a63ca70cfe78e4d367d23bded Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 11:36:59 +0545 Subject: [PATCH 05/13] update task --- tasks/TASK/000/TASK-007.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tasks/TASK/000/TASK-007.md b/tasks/TASK/000/TASK-007.md index 58a039bb..91404d1a 100644 --- a/tasks/TASK/000/TASK-007.md +++ b/tasks/TASK/000/TASK-007.md @@ -1,8 +1,8 @@ --- title: Check autoplay speed -status: todo +status: done priority: high -assignee: +assignee: nellow labels: [] --- From 0c6e4236357daf0b580762574a9b2748ca74b09d Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Thu, 25 Dec 2025 11:42:14 +0545 Subject: [PATCH 06/13] update line handler --- vt/static/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vt/static/main.js b/vt/static/main.js index 7dacefa3..38dd9560 100644 --- a/vt/static/main.js +++ b/vt/static/main.js @@ -181,6 +181,8 @@ const init = async () => { routeGraphics.render(renderState); } else if (effect.name === 'handleLineActions') { engine.handleLineActions(); + } else if (effect.name === 'lineCompleted') { + engine.handleAction('nextLineFromCompleted', {}); } else if (effect.name === 'startAutoNextTimer') { // Remove old callback if exists if (autoModeCallback) { From beb06fa4992743663e3dffd80ed6ddf4c8eb497d Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 13:04:59 +0545 Subject: [PATCH 07/13] update store --- src/stores/system.store.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/stores/system.store.js b/src/stores/system.store.js index 413907ef..7f620945 100644 --- a/src/stores/system.store.js +++ b/src/stores/system.store.js @@ -24,6 +24,7 @@ export const createInitialState = (payload) => { const state = { projectData, global: { + autoplayDelay: 1000, isLineCompleted: false, pendingEffects: [], autoMode: false, @@ -43,7 +44,7 @@ export const createInitialState = (payload) => { }, auto: { enabled: false, - delay: 1000, + //delay: 1000, } }, saveSlots: {}, @@ -104,6 +105,10 @@ export const selectDialogueUIHidden = ({ state }) => { return state.global.dialogueUIHidden; }; +export const selectAutoplayDelay = ({ state }) => { + return state.global.autoplayDelay; +}; + export const selectDialogueHistory = ({ state }) => { const lastContext = state.contexts[state.contexts.length - 1]; if (!lastContext) { @@ -405,7 +410,7 @@ export const startAutoMode = ({ state }) => { }); state.global.pendingEffects.push({ name: "startAutoNextTimer", - delay: state.global.nextLineConfig.auto.delay, + delay: state.global.autoplayDelay, }); state.global.pendingEffects.push({ name: "render", @@ -657,6 +662,14 @@ export const setNextLineConfig = ({ state }, payload) => { return state; }; +export const setAutoplayDelay = ({ state }, { delay }) => { + state.global.autoplayDelay = delay; + state.global.pendingEffects.push({ + name: "render", + }); + return state; +}; + /** * Replaces a save slot with new data * @param {Object} state - Current state object @@ -1100,6 +1113,7 @@ export const createSystemStore = (initialState) => { selectSection, selectCurrentLine, selectPresentationState, + selectAutoplayDelay, selectRenderState, selectLayeredViews, @@ -1124,6 +1138,7 @@ export const createSystemStore = (initialState) => { addViewedResource, setNextLineConfig, replaceSaveSlot, + setAutoplayDelay, updateProjectData, sectionTransition, jumpToLine, From 07355718ef79f7aaa7c304ecdb13167e436c4bea Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 13:10:08 +0545 Subject: [PATCH 08/13] fix yaml --- .../actions/markLineCompleted.spec.yaml | 5 +- .../system/actions/setAutoplayDelay.spec.yaml | 49 +++++++++++++++++++ spec/system/actions/startAutoMode.spec.yaml | 35 ++----------- spec/system/actions/toggleAutoMode.spec.yaml | 39 ++------------- spec/system/createInitialState.spec.yaml | 2 +- vt/specs/dialogue/autoplay.yaml | 12 ++--- 6 files changed, 64 insertions(+), 78 deletions(-) create mode 100644 spec/system/actions/setAutoplayDelay.spec.yaml diff --git a/spec/system/actions/markLineCompleted.spec.yaml b/spec/system/actions/markLineCompleted.spec.yaml index 099d7eb3..35b17427 100644 --- a/spec/system/actions/markLineCompleted.spec.yaml +++ b/spec/system/actions/markLineCompleted.spec.yaml @@ -16,7 +16,6 @@ out: isLineCompleted: true pendingEffects: - name: render - - name: lineCompleted --- case: mark line as completed when already completed in: @@ -29,7 +28,6 @@ out: isLineCompleted: true pendingEffects: - name: render - - name: lineCompleted --- case: mark line as completed with existing pending effects in: @@ -45,5 +43,4 @@ out: pendingEffects: - name: existingEffect data: test - - name: render - - name: lineCompleted \ No newline at end of file + - name: render \ No newline at end of file diff --git a/spec/system/actions/setAutoplayDelay.spec.yaml b/spec/system/actions/setAutoplayDelay.spec.yaml new file mode 100644 index 00000000..7f010d78 --- /dev/null +++ b/spec/system/actions/setAutoplayDelay.spec.yaml @@ -0,0 +1,49 @@ +file: "../../../src/stores/system.store.js" +group: systemStore.setAutoplayDelay +suites: [setAutoplayDelay] +--- +suite: setAutoplayDelay +exportName: setAutoplayDelay +--- +case: set autoplay delay +in: + - state: + global: + autoplayDelay: 1000 + pendingEffects: [] + - delay: 2000 +out: + global: + autoplayDelay: 2000 + pendingEffects: + - name: render +--- +case: set autoplay delay to zero +in: + - state: + global: + autoplayDelay: 1000 + pendingEffects: [] + - delay: 0 +out: + global: + autoplayDelay: 0 + pendingEffects: + - name: render +--- +case: set autoplay delay with existing pending effects +in: + - state: + global: + autoplayDelay: 1000 + pendingEffects: + - name: existingEffect + data: test + - delay: 500 +out: + global: + autoplayDelay: 500 + pendingEffects: + - name: existingEffect + data: test + - name: render \ No newline at end of file diff --git a/spec/system/actions/startAutoMode.spec.yaml b/spec/system/actions/startAutoMode.spec.yaml index 2d97d86a..135a36fd 100644 --- a/spec/system/actions/startAutoMode.spec.yaml +++ b/spec/system/actions/startAutoMode.spec.yaml @@ -11,9 +11,7 @@ in: global: autoMode: false pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -22,9 +20,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: start auto mode when already enabled in: @@ -32,9 +27,7 @@ in: global: autoMode: true pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -43,9 +36,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: start auto mode with skip mode enabled in: @@ -54,9 +44,7 @@ in: autoMode: false skipMode: true pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -67,9 +55,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: start auto mode with existing pending effects in: @@ -79,9 +64,7 @@ in: pendingEffects: - name: existingEffect data: test - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -92,9 +75,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: start auto mode with both auto and skip mode enabled in: @@ -104,9 +84,7 @@ in: skipMode: true pendingEffects: - name: existingEffect - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -118,6 +96,3 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 diff --git a/spec/system/actions/toggleAutoMode.spec.yaml b/spec/system/actions/toggleAutoMode.spec.yaml index 34efd8b6..c7e24748 100644 --- a/spec/system/actions/toggleAutoMode.spec.yaml +++ b/spec/system/actions/toggleAutoMode.spec.yaml @@ -11,9 +11,7 @@ in: global: autoMode: false pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -22,9 +20,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: toggle auto mode from true to false in: @@ -32,18 +27,12 @@ in: global: autoMode: true pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 out: global: autoMode: false pendingEffects: - name: clearAutoNextTimer - name: render - nextLineConfig: - auto: - delay: 1000 --- case: toggle auto mode from false to true with skip mode enabled in: @@ -52,9 +41,7 @@ in: autoMode: false skipMode: true pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -65,9 +52,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: toggle auto mode from true to false with skip mode enabled in: @@ -76,9 +60,6 @@ in: autoMode: true skipMode: true pendingEffects: [] - nextLineConfig: - auto: - delay: 1000 out: global: autoMode: false @@ -86,9 +67,6 @@ out: pendingEffects: - name: clearAutoNextTimer - name: render - nextLineConfig: - auto: - delay: 1000 --- case: toggle auto mode with existing pending effects (disabled to enabled) in: @@ -98,9 +76,7 @@ in: pendingEffects: - name: existingEffect data: test - nextLineConfig: - auto: - delay: 1000 + autoplayDelay: 1000 out: global: autoMode: true @@ -111,9 +87,6 @@ out: - name: startAutoNextTimer delay: 1000 - name: render - nextLineConfig: - auto: - delay: 1000 --- case: toggle auto mode with existing pending effects (enabled to disabled) in: @@ -123,9 +96,6 @@ in: pendingEffects: - name: existingEffect data: test - nextLineConfig: - auto: - delay: 1000 out: global: autoMode: false @@ -134,6 +104,3 @@ out: data: test - name: clearAutoNextTimer - name: render - nextLineConfig: - auto: - delay: 1000 \ No newline at end of file diff --git a/spec/system/createInitialState.spec.yaml b/spec/system/createInitialState.spec.yaml index a45598de..011336f3 100644 --- a/spec/system/createInitialState.spec.yaml +++ b/spec/system/createInitialState.spec.yaml @@ -22,6 +22,7 @@ in: actions: {} out: global: + autoplayDelay: 1000 isLineCompleted: false pendingEffects: [] autoMode: false @@ -39,7 +40,6 @@ out: requireLineCompleted: false auto: enabled: false - delay: 1000 saveSlots: {} layeredViews: [] projectData: diff --git a/vt/specs/dialogue/autoplay.yaml b/vt/specs/dialogue/autoplay.yaml index 1d46acf1..dd983788 100644 --- a/vt/specs/dialogue/autoplay.yaml +++ b/vt/specs/dialogue/autoplay.yaml @@ -8,7 +8,7 @@ l10n: lang: en keys: line1: "Line 1: Testing autoplay functionality" - line2: "Line 2: This should auto-advance after 2 second" + line2: "Line 2: This should auto-advance after 1 second" line3: "Line 3: Click Auto button to enable/disable" line4: "Line 4: Auto mode should continue through all lines" line5: "Line 5: Final line - auto mode stops here" @@ -116,9 +116,8 @@ resources: click: actionPayload: actions: - setNextLineConfig: - auto: - delay: 2000 + setAutoplayDelay: + delay: 2000 - id: speed-fast-button type: text x: 1250 @@ -134,9 +133,8 @@ resources: click: actionPayload: actions: - setNextLineConfig: - auto: - delay: 250 + setAutoplayDelay: + delay: 250 story: initialSceneId: test_scene From e9908de9c9a14cc73d42ae10ed09afe112c2e4ca Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 13:15:30 +0545 Subject: [PATCH 09/13] update handler --- src/createEffectsHandler.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/createEffectsHandler.js b/src/createEffectsHandler.js index b6a00e61..e7e18dc2 100644 --- a/src/createEffectsHandler.js +++ b/src/createEffectsHandler.js @@ -42,7 +42,8 @@ const startAutoNextTimer = ({ engine, ticker, autoTimer }, payload) => { // Auto advance every 1000ms (1 second) - hardcoded // TODO: Speed can adjust in the future - if (autoTimer.getElapsed() >= 1000) { + const delay = payload.delay ?? 1000; + if (autoTimer.getElapsed() >= delay) { autoTimer.setElapsed(0); engine.handleAction("nextLine", {}); } From 085e1c6ed3e017c9be8f0a07514b3202155c1793 Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 13:39:56 +0545 Subject: [PATCH 10/13] update the store --- spec/system/actions/setAutoplayDelay.spec.yaml | 17 +++++++++++++---- spec/system/actions/startAutoMode.spec.yaml | 5 +++++ spec/system/actions/toggleAutoMode.spec.yaml | 9 +++++++++ src/stores/system.store.js | 14 ++++++++++---- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/spec/system/actions/setAutoplayDelay.spec.yaml b/spec/system/actions/setAutoplayDelay.spec.yaml index 7f010d78..62f994f7 100644 --- a/spec/system/actions/setAutoplayDelay.spec.yaml +++ b/spec/system/actions/setAutoplayDelay.spec.yaml @@ -5,36 +5,44 @@ suites: [setAutoplayDelay] suite: setAutoplayDelay exportName: setAutoplayDelay --- -case: set autoplay delay +case: set autoplay delay when auto mode is OFF in: - state: global: + autoMode: false autoplayDelay: 1000 pendingEffects: [] - delay: 2000 out: global: + autoMode: false autoplayDelay: 2000 pendingEffects: - name: render --- -case: set autoplay delay to zero +case: set autoplay delay when auto mode is ON (should restart timer) in: - state: global: + autoMode: true autoplayDelay: 1000 pendingEffects: [] - - delay: 0 + - delay: 500 out: global: - autoplayDelay: 0 + autoMode: true + autoplayDelay: 500 pendingEffects: + - name: clearAutoNextTimer + - name: startAutoNextTimer + delay: 500 - name: render --- case: set autoplay delay with existing pending effects in: - state: global: + autoMode: false autoplayDelay: 1000 pendingEffects: - name: existingEffect @@ -42,6 +50,7 @@ in: - delay: 500 out: global: + autoMode: false autoplayDelay: 500 pendingEffects: - name: existingEffect diff --git a/spec/system/actions/startAutoMode.spec.yaml b/spec/system/actions/startAutoMode.spec.yaml index 135a36fd..24bcc0c3 100644 --- a/spec/system/actions/startAutoMode.spec.yaml +++ b/spec/system/actions/startAutoMode.spec.yaml @@ -15,6 +15,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer @@ -31,6 +32,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer @@ -48,6 +50,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 skipMode: false pendingEffects: - name: clearSkipNextTimer @@ -68,6 +71,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 pendingEffects: - name: existingEffect data: test @@ -88,6 +92,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 skipMode: false pendingEffects: - name: existingEffect diff --git a/spec/system/actions/toggleAutoMode.spec.yaml b/spec/system/actions/toggleAutoMode.spec.yaml index c7e24748..8ce9d93c 100644 --- a/spec/system/actions/toggleAutoMode.spec.yaml +++ b/spec/system/actions/toggleAutoMode.spec.yaml @@ -15,6 +15,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer @@ -27,9 +28,11 @@ in: global: autoMode: true pendingEffects: [] + autoplayDelay: 1000 out: global: autoMode: false + autoplayDelay: 1000 pendingEffects: - name: clearAutoNextTimer - name: render @@ -45,6 +48,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 skipMode: false pendingEffects: - name: clearSkipNextTimer @@ -60,9 +64,11 @@ in: autoMode: true skipMode: true pendingEffects: [] + autoplayDelay: 1000 out: global: autoMode: false + autoplayDelay: 1000 skipMode: true pendingEffects: - name: clearAutoNextTimer @@ -80,6 +86,7 @@ in: out: global: autoMode: true + autoplayDelay: 1000 pendingEffects: - name: existingEffect data: test @@ -96,9 +103,11 @@ in: pendingEffects: - name: existingEffect data: test + autoplayDelay: 1000 out: global: autoMode: false + autoplayDelay: 1000 pendingEffects: - name: existingEffect data: test diff --git a/src/stores/system.store.js b/src/stores/system.store.js index 7f620945..db6cc1c0 100644 --- a/src/stores/system.store.js +++ b/src/stores/system.store.js @@ -410,7 +410,7 @@ export const startAutoMode = ({ state }) => { }); state.global.pendingEffects.push({ name: "startAutoNextTimer", - delay: state.global.autoplayDelay, + payload: { delay: state.global.autoplayDelay }, }); state.global.pendingEffects.push({ name: "render", @@ -664,6 +664,15 @@ export const setNextLineConfig = ({ state }, payload) => { export const setAutoplayDelay = ({ state }, { delay }) => { state.global.autoplayDelay = delay; + + if (state.global.autoMode) { + state.global.pendingEffects.push({ name: "clearAutoNextTimer" }); + state.global.pendingEffects.push({ + name: "startAutoNextTimer", + payload: { delay: state.global.autoplayDelay }, + }); + } + state.global.pendingEffects.push({ name: "render", }); @@ -946,9 +955,6 @@ export const markLineCompleted = ({ state }) => { state.global.pendingEffects.push({ name: "render", }); - state.global.pendingEffects.push({ - name: "lineCompleted", - }); return state; }; From a183a8042364347515e40e34dd771327c68f74d7 Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 13:45:20 +0545 Subject: [PATCH 11/13] update for payload --- .../system/actions/setAutoplayDelay.spec.yaml | 3 +- spec/system/actions/startAutoMode.spec.yaml | 68 +------------------ spec/system/actions/toggleAutoMode.spec.yaml | 9 ++- 3 files changed, 10 insertions(+), 70 deletions(-) diff --git a/spec/system/actions/setAutoplayDelay.spec.yaml b/spec/system/actions/setAutoplayDelay.spec.yaml index 62f994f7..ea28a834 100644 --- a/spec/system/actions/setAutoplayDelay.spec.yaml +++ b/spec/system/actions/setAutoplayDelay.spec.yaml @@ -35,7 +35,8 @@ out: pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 500 + payload: + delay: 500 - name: render --- case: set autoplay delay with existing pending effects diff --git a/spec/system/actions/startAutoMode.spec.yaml b/spec/system/actions/startAutoMode.spec.yaml index 24bcc0c3..fb6d2866 100644 --- a/spec/system/actions/startAutoMode.spec.yaml +++ b/spec/system/actions/startAutoMode.spec.yaml @@ -19,7 +19,8 @@ out: pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 1000 + payload: + delay: 1000 - name: render --- case: start auto mode when already enabled @@ -36,68 +37,3 @@ out: pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 1000 - - name: render ---- -case: start auto mode with skip mode enabled -in: - - state: - global: - autoMode: false - skipMode: true - pendingEffects: [] - autoplayDelay: 1000 -out: - global: - autoMode: true - autoplayDelay: 1000 - skipMode: false - pendingEffects: - - name: clearSkipNextTimer - - name: clearAutoNextTimer - - name: startAutoNextTimer - delay: 1000 - - name: render ---- -case: start auto mode with existing pending effects -in: - - state: - global: - autoMode: false - pendingEffects: - - name: existingEffect - data: test - autoplayDelay: 1000 -out: - global: - autoMode: true - autoplayDelay: 1000 - pendingEffects: - - name: existingEffect - data: test - - name: clearAutoNextTimer - - name: startAutoNextTimer - delay: 1000 - - name: render ---- -case: start auto mode with both auto and skip mode enabled -in: - - state: - global: - autoMode: true - skipMode: true - pendingEffects: - - name: existingEffect - autoplayDelay: 1000 -out: - global: - autoMode: true - autoplayDelay: 1000 - skipMode: false - pendingEffects: - - name: existingEffect - - name: clearSkipNextTimer - - name: clearAutoNextTimer - - name: startAutoNextTimer - delay: 1000 - - name: render diff --git a/spec/system/actions/toggleAutoMode.spec.yaml b/spec/system/actions/toggleAutoMode.spec.yaml index 8ce9d93c..2ce37dc7 100644 --- a/spec/system/actions/toggleAutoMode.spec.yaml +++ b/spec/system/actions/toggleAutoMode.spec.yaml @@ -19,7 +19,8 @@ out: pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 1000 + payload: + delay: 1000 - name: render --- case: toggle auto mode from true to false @@ -54,7 +55,8 @@ out: - name: clearSkipNextTimer - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 1000 + payload: + delay: 1000 - name: render --- case: toggle auto mode from true to false with skip mode enabled @@ -92,7 +94,8 @@ out: data: test - name: clearAutoNextTimer - name: startAutoNextTimer - delay: 1000 + payload: + delay: 1000 - name: render --- case: toggle auto mode with existing pending effects (enabled to disabled) From 7a22f99aeb822c540cc59daf8f3da449a7e9eeda Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 14:11:47 +0545 Subject: [PATCH 12/13] fix lint --- src/stores/system.store.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stores/system.store.js b/src/stores/system.store.js index db6cc1c0..9498cbf8 100644 --- a/src/stores/system.store.js +++ b/src/stores/system.store.js @@ -45,7 +45,7 @@ export const createInitialState = (payload) => { auto: { enabled: false, //delay: 1000, - } + }, }, saveSlots: {}, layeredViews: [], From f24a4432d3efb66b7b8af3c7888c0d9639868a03 Mon Sep 17 00:00:00 2001 From: Prabesh002 Date: Fri, 26 Dec 2025 14:18:00 +0545 Subject: [PATCH 13/13] fix all tests --- spec/system/actions/startAutoMode.spec.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/system/actions/startAutoMode.spec.yaml b/spec/system/actions/startAutoMode.spec.yaml index fb6d2866..c0e51aee 100644 --- a/spec/system/actions/startAutoMode.spec.yaml +++ b/spec/system/actions/startAutoMode.spec.yaml @@ -37,3 +37,6 @@ out: pendingEffects: - name: clearAutoNextTimer - name: startAutoNextTimer + payload: + delay: 1000 + - name: render \ No newline at end of file