PluginProbe
Extendify / 3.2.2
Extendify v3.2.2
3.2.2 3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 All 128 releases
← All changes | src/Agent/state/canvas.js +9 -5 3.1.5 → 3.2.2 View file →
@@ -10,19 +10,23 @@
10 10 // Persisting these would rehydrate a canvas the page can no longer show.
11 11 export const useCanvasStore = create((set) => ({
12 12 steps: [],
13 13 activeStep: 0,
14 + // A step opens for good, so this is a high-water mark rather than a position.
15 + reached: 0,
14 16 values: {},
15 - startSession: (steps) => set({ steps, activeStep: 0, values: seed(steps) }),
16 - endSession: () => set({ steps: [], activeStep: 0, values: {} }),
17 + startSession: (steps) =>
18 + set({ steps, activeStep: 0, reached: 0, values: seed(steps) }),
19 + endSession: () => set({ steps: [], activeStep: 0, reached: 0, values: {} }),
17 20 setValue: (name, value) =>
18 21 set(({ values }) => ({ values: { ...values, [name]: value } })),
19 22 writeValues: (written) =>
20 23 set(({ values }) => ({ values: { ...values, ...written } })),
21 24 goToStep: (index) =>
22 - set(({ steps }) => ({
23 - activeStep: Math.min(Math.max(index, 0), steps.length - 1),
24 - })),
25 + set(({ steps, reached }) => {
26 + const activeStep = Math.min(Math.max(index, 0), steps.length - 1);
27 + return { activeStep, reached: Math.max(reached, activeStep) };
28 + }),
25 29 }));
26 30
27 31 // Sending every step lets the agent write where the user cannot see.
28 32 export const activeCanvasStep = () => {