{
// set selected file
chatStore.setSelectedFile(
@@ -376,10 +376,10 @@ export default function ChatBox(): JSX.Element {
onTyping={scrollToBottom}
/> */}
- {item.fileList?.map((file) => {
+ {item.fileList?.map((file, fileIndex) => {
return (
{
// set selected file
chatStore.setSelectedFile(
diff --git a/src/components/WorkFlow/index.tsx b/src/components/WorkFlow/index.tsx
index e92a873b2..42c013243 100644
--- a/src/components/WorkFlow/index.tsx
+++ b/src/components/WorkFlow/index.tsx
@@ -31,6 +31,8 @@ const nodeTypes: NodeTypes = {
node: (props: any) => ,
};
+const VIEWPORT_ANIMATION_DURATION = 500;
+
export default function Workflow({
taskAssigning,
}: {
@@ -298,15 +300,17 @@ export default function Workflow({
if (isAnimating) return;
const viewport = getViewport();
setIsAnimating(true);
+ // Prevent scrolling past x=0 (too far right) when moving left
+ const newX = dx > 0 ? Math.min(0, viewport.x + dx) : viewport.x + dx;
setViewport(
- { x: viewport.x + dx, y: viewport.y, zoom: viewport.zoom },
+ { x: newX, y: viewport.y, zoom: viewport.zoom },
{
- duration: 500,
+ duration: VIEWPORT_ANIMATION_DURATION,
}
);
setTimeout(() => {
setIsAnimating(false);
- }, 500);
+ }, VIEWPORT_ANIMATION_DURATION);
};
const handleShare = async (taskId: string) => {
@@ -404,10 +408,6 @@ export default function Workflow({
nodesDraggable={isEditMode}
panOnScrollMode={PanOnScrollMode.Horizontal}
onMove={(event, viewport) => {
- const current = getViewport();
- if (viewport.zoom !== current.zoom) {
- setViewport({ ...viewport, zoom: current.zoom });
- }
if (isEditMode) {
setLastViewport(viewport);
}