fix: 修复录制过程中同个标签页内发生导航会清空状态的bug

This commit is contained in:
hangerye
2025-10-26 21:08:44 +08:00
parent 4e969df0a9
commit 73d205bfec
2 changed files with 22 additions and 22 deletions
@@ -54,6 +54,10 @@ export function initBrowserEventListeners(session: RecordingSessionManager): voi
await broadcastControlToTab(tabId, REC_CMD.START);
// Track active tab for targeted STOP later
session.addActiveTab(tabId);
const f = session.getFlow();
if (f) {
session.broadcastTimelineUpdate(f.steps || []);
}
} catch (e) {
console.warn('onCommitted handler failed', e);
}
@@ -31,31 +31,27 @@ export function appendSteps(flow: Flow, steps: Step[]): void {
if (!step.id) step.id = generateStepId();
flow.steps.push(step);
}
try {
const timeStamp = new Date().toISOString();
if (flow.meta) {
flow.meta.updatedAt = timeStamp;
} else {
flow = {
...flow,
meta: {
createdAt: timeStamp,
updatedAt: timeStamp,
},
};
}
} catch {}
const timeStamp = new Date().toISOString();
if (flow.meta) {
flow.meta.updatedAt = timeStamp;
} else {
flow = {
...flow,
meta: {
createdAt: timeStamp,
updatedAt: timeStamp,
},
};
}
}
export function addNavigationStep(flow: Flow, url: string): void {
const step: Step = { id: generateStepId(), type: STEP_TYPES.NAVIGATE, url } as Step;
try {
// Prefer centralized session append (single broadcast path) when active and matching flow
const sessFlow = recordingSession.getFlow?.();
if (recordingSession.getStatus?.() === 'recording' && sessFlow === flow) {
recordingSession.appendSteps([step]);
return;
}
} catch {}
// Prefer centralized session append (single broadcast path) when active and matching flow
const sessFlow = recordingSession.getFlow?.();
if (recordingSession.getStatus?.() === 'recording' && sessFlow === flow) {
recordingSession.appendSteps([step]);
return;
}
appendSteps(flow, [step]);
}