Skip to content

Commit ef71e3b

Browse files
committed
fix(files): isAgentEditing flag passthrough
1 parent 1248f8e commit ef71e3b

7 files changed

Lines changed: 28 additions & 1 deletion

File tree

apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/file-viewer.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ interface FileViewerProps {
9191
onSaveStatusChange?: (status: 'idle' | 'saving' | 'saved' | 'error') => void
9292
saveRef?: React.MutableRefObject<(() => Promise<void>) | null>
9393
streamingContent?: string
94+
isAgentEditing?: boolean
9495
disableStreamingAutoScroll?: boolean
9596
previewContextKey?: string
9697
}
@@ -106,6 +107,7 @@ export function FileViewer({
106107
onSaveStatusChange,
107108
saveRef,
108109
streamingContent,
110+
isAgentEditing,
109111
disableStreamingAutoScroll = false,
110112
previewContextKey,
111113
}: FileViewerProps) {
@@ -147,6 +149,7 @@ export function FileViewer({
147149
onSaveStatusChange={onSaveStatusChange}
148150
saveRef={saveRef}
149151
streamingContent={streamingContent}
152+
isAgentEditing={isAgentEditing}
150153
disableStreamingAutoScroll={disableStreamingAutoScroll}
151154
previewContextKey={previewContextKey}
152155
/>
@@ -164,6 +167,7 @@ export function FileViewer({
164167
onSaveStatusChange={onSaveStatusChange}
165168
saveRef={saveRef}
166169
streamingContent={streamingContent}
170+
isAgentEditing={isAgentEditing}
167171
disableStreamingAutoScroll={disableStreamingAutoScroll}
168172
previewContextKey={previewContextKey}
169173
/>

apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/rich-markdown-editor/rich-markdown-editor.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ interface RichMarkdownEditorProps {
3939
onSaveStatusChange?: (status: SaveStatus) => void
4040
saveRef?: React.MutableRefObject<(() => Promise<void>) | null>
4141
streamingContent?: string
42+
isAgentEditing?: boolean
4243
disableStreamingAutoScroll?: boolean
4344
previewContextKey?: string
4445
}
@@ -64,6 +65,7 @@ export const RichMarkdownEditor = memo(function RichMarkdownEditor({
6465
onSaveStatusChange,
6566
saveRef,
6667
streamingContent,
68+
isAgentEditing,
6769
disableStreamingAutoScroll = false,
6870
previewContextKey,
6971
}: RichMarkdownEditorProps) {
@@ -79,6 +81,7 @@ export const RichMarkdownEditor = memo(function RichMarkdownEditor({
7981
workspaceId,
8082
canEdit,
8183
streamingContent,
84+
isAgentEditing,
8285
onDirtyChange,
8386
onSaveStatusChange,
8487
saveRef,

apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/text-editor.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ interface TextEditorProps {
331331
onSaveStatusChange?: (status: 'idle' | 'saving' | 'saved' | 'error') => void
332332
saveRef?: React.MutableRefObject<(() => Promise<void>) | null>
333333
streamingContent?: string
334+
isAgentEditing?: boolean
334335
disableStreamingAutoScroll: boolean
335336
previewContextKey?: string
336337
}
@@ -345,6 +346,7 @@ export const TextEditor = memo(function TextEditor({
345346
onSaveStatusChange,
346347
saveRef,
347348
streamingContent,
349+
isAgentEditing,
348350
disableStreamingAutoScroll,
349351
previewContextKey,
350352
}: TextEditorProps) {
@@ -379,6 +381,7 @@ export const TextEditor = memo(function TextEditor({
379381
workspaceId,
380382
canEdit,
381383
streamingContent,
384+
isAgentEditing,
382385
onDirtyChange,
383386
onSaveStatusChange,
384387
saveRef,

apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/use-editable-file-content.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ interface UseEditableFileContentOptions {
3131
workspaceId: string
3232
canEdit: boolean
3333
streamingContent?: string
34+
isAgentEditing?: boolean
3435
onDirtyChange?: (isDirty: boolean) => void
3536
onSaveStatusChange?: (status: SaveStatus) => void
3637
saveRef?: React.MutableRefObject<(() => Promise<void>) | null>
@@ -102,6 +103,7 @@ export function useEditableFileContent({
102103
workspaceId,
103104
canEdit,
104105
streamingContent,
106+
isAgentEditing,
105107
onDirtyChange,
106108
onSaveStatusChange,
107109
saveRef,
@@ -130,7 +132,7 @@ export function useEditableFileContent({
130132
content,
131133
savedContent,
132134
isInitialized,
133-
isStreamInteractionLocked,
135+
isStreamInteractionLocked: isStreamPhaseLocked,
134136
setDraftContent,
135137
markSavedContent,
136138
} = useFileContentState({
@@ -139,6 +141,8 @@ export function useEditableFileContent({
139141
streamingContent,
140142
})
141143

144+
const isStreamInteractionLocked = isStreamPhaseLocked || Boolean(isAgentEditing)
145+
142146
const contentRef = useRef(content)
143147
contentRef.current = content
144148

apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ interface ResourceContentProps {
7676
resource: MothershipResource
7777
previewMode?: PreviewMode
7878
previewSession?: FilePreviewSession | null
79+
isAgentResponding?: boolean
7980
genericResourceData?: GenericResourceData
8081
previewContextKey?: string
8182
onNotFound?: (resourceId: string) => void
@@ -93,6 +94,7 @@ export const ResourceContent = memo(function ResourceContent({
9394
resource,
9495
previewMode,
9596
previewSession,
97+
isAgentResponding,
9698
genericResourceData,
9799
previewContextKey,
98100
onNotFound,
@@ -134,6 +136,8 @@ export const ResourceContent = memo(function ResourceContent({
134136
? previewSession.previewText
135137
: undefined
136138

139+
const isAgentEditing = Boolean(isAgentResponding && previewSession)
140+
137141
if (resource.id === 'streaming-file') {
138142
return (
139143
<div className='flex h-full flex-col overflow-hidden'>
@@ -143,6 +147,7 @@ export const ResourceContent = memo(function ResourceContent({
143147
canEdit={false}
144148
previewMode={previewMode ?? 'preview'}
145149
streamingContent={textStreamingContent}
150+
isAgentEditing={isAgentEditing}
146151
disableStreamingAutoScroll={disableStreamingAutoScroll}
147152
previewContextKey={previewContextKey}
148153
/>
@@ -165,6 +170,7 @@ export const ResourceContent = memo(function ResourceContent({
165170
streamingContent={
166171
previewSession?.fileId === resource.id ? textStreamingContent : undefined
167172
}
173+
isAgentEditing={isAgentEditing}
168174
disableStreamingAutoScroll={disableStreamingAutoScroll}
169175
previewContextKey={previewContextKey}
170176
/>
@@ -550,6 +556,7 @@ interface EmbeddedFileProps {
550556
filePath?: string
551557
previewMode?: PreviewMode
552558
streamingContent?: string
559+
isAgentEditing?: boolean
553560
disableStreamingAutoScroll?: boolean
554561
previewContextKey?: string
555562
}
@@ -560,6 +567,7 @@ function EmbeddedFile({
560567
filePath,
561568
previewMode,
562569
streamingContent,
570+
isAgentEditing,
563571
disableStreamingAutoScroll = false,
564572
previewContextKey,
565573
}: EmbeddedFileProps) {
@@ -601,6 +609,7 @@ function EmbeddedFile({
601609
canEdit={canEdit}
602610
previewMode={previewMode}
603611
streamingContent={streamingContent}
612+
isAgentEditing={isAgentEditing}
604613
disableStreamingAutoScroll={disableStreamingAutoScroll}
605614
previewContextKey={previewContextKey}
606615
/>

apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/mothership-view.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ interface MothershipViewProps {
5252
isCollapsed: boolean
5353
className?: string
5454
previewSession?: FilePreviewSession | null
55+
isAgentResponding?: boolean
5556
genericResourceData?: GenericResourceData
5657
}
5758

@@ -65,6 +66,7 @@ export const MothershipView = memo(
6566
isCollapsed,
6667
className,
6768
previewSession,
69+
isAgentResponding,
6870
genericResourceData,
6971
}: MothershipViewProps,
7072
ref
@@ -136,6 +138,7 @@ export const MothershipView = memo(
136138
resource={active}
137139
previewMode={isActivePreviewable ? previewMode : undefined}
138140
previewSession={previewForActive}
141+
isAgentResponding={isAgentResponding}
139142
genericResourceData={active.type === 'generic' ? genericResourceData : undefined}
140143
previewContextKey={chatId}
141144
onNotFound={(resourceId) => removeResource('log', resourceId)}

apps/sim/app/workspace/[workspaceId]/home/home.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ export function Home({ chatId, userName, userId, initialResourceId = null }: Hom
461461
activeResourceId={activeResourceId}
462462
isCollapsed={isResourceCollapsed}
463463
previewSession={previewSession}
464+
isAgentResponding={isSending}
464465
genericResourceData={genericResourceData ?? undefined}
465466
className={skipResourceTransition ? '!transition-none' : undefined}
466467
/>

0 commit comments

Comments
 (0)