@invergent/agent-chat-react 1.4.4 → 1.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +23 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6524,44 +6524,63 @@ function WorkspacePanel({
|
|
|
6524
6524
|
const [deleteTarget, setDeleteTarget] = react.useState(null);
|
|
6525
6525
|
const [expandedPaths, setExpandedPaths] = react.useState(/* @__PURE__ */ new Set());
|
|
6526
6526
|
const [width, setWidth] = react.useState(DEFAULT_WIDTH);
|
|
6527
|
+
const sessionIdRef = react.useRef(sessionId);
|
|
6527
6528
|
const isResizing = react.useRef(false);
|
|
6528
6529
|
const startX = react.useRef(0);
|
|
6529
6530
|
const startWidth = react.useRef(DEFAULT_WIDTH);
|
|
6531
|
+
sessionIdRef.current = sessionId;
|
|
6530
6532
|
const fetchTree = react.useCallback(async () => {
|
|
6531
6533
|
if (!sessionId) {
|
|
6532
6534
|
setEntries([]);
|
|
6533
6535
|
setRootName("workspace");
|
|
6536
|
+
setExpandedPaths(/* @__PURE__ */ new Set());
|
|
6537
|
+
setTreeLoading(false);
|
|
6534
6538
|
setTreeError(null);
|
|
6535
6539
|
return;
|
|
6536
6540
|
}
|
|
6541
|
+
const requestedSessionId = sessionId;
|
|
6537
6542
|
setTreeLoading(true);
|
|
6538
6543
|
setTreeError(null);
|
|
6539
6544
|
try {
|
|
6540
|
-
const tree = await adapter.getWorkspaceTree({
|
|
6545
|
+
const tree = await adapter.getWorkspaceTree({
|
|
6546
|
+
sessionId: requestedSessionId
|
|
6547
|
+
});
|
|
6548
|
+
if (sessionIdRef.current !== requestedSessionId) return;
|
|
6541
6549
|
setEntries(tree.entries);
|
|
6542
6550
|
setRootName(tree.root || "workspace");
|
|
6543
6551
|
setExpandedPaths(new Set(collectExpandedPaths(tree.entries)));
|
|
6544
6552
|
} catch (error) {
|
|
6553
|
+
if (sessionIdRef.current !== requestedSessionId) return;
|
|
6545
6554
|
setEntries([]);
|
|
6546
6555
|
setRootName("workspace");
|
|
6547
6556
|
setTreeError(error.message);
|
|
6548
6557
|
} finally {
|
|
6549
|
-
|
|
6558
|
+
if (sessionIdRef.current === requestedSessionId) {
|
|
6559
|
+
setTreeLoading(false);
|
|
6560
|
+
}
|
|
6550
6561
|
}
|
|
6551
6562
|
}, [adapter, sessionId]);
|
|
6552
6563
|
const fetchFile = react.useCallback(
|
|
6553
6564
|
async (path) => {
|
|
6554
6565
|
if (!sessionId) return;
|
|
6566
|
+
const requestedSessionId = sessionId;
|
|
6555
6567
|
setFileLoading(true);
|
|
6556
6568
|
setFileError(null);
|
|
6557
6569
|
try {
|
|
6558
|
-
const nextFile = await adapter.getWorkspaceFile({
|
|
6570
|
+
const nextFile = await adapter.getWorkspaceFile({
|
|
6571
|
+
sessionId: requestedSessionId,
|
|
6572
|
+
path
|
|
6573
|
+
});
|
|
6574
|
+
if (sessionIdRef.current !== requestedSessionId) return;
|
|
6559
6575
|
setFile(nextFile);
|
|
6560
6576
|
} catch (error) {
|
|
6577
|
+
if (sessionIdRef.current !== requestedSessionId) return;
|
|
6561
6578
|
setFile(null);
|
|
6562
6579
|
setFileError(error.message);
|
|
6563
6580
|
} finally {
|
|
6564
|
-
|
|
6581
|
+
if (sessionIdRef.current === requestedSessionId) {
|
|
6582
|
+
setFileLoading(false);
|
|
6583
|
+
}
|
|
6565
6584
|
}
|
|
6566
6585
|
},
|
|
6567
6586
|
[adapter, sessionId]
|