fix: narrow raw mode sync override

This commit is contained in:
lucaronin
2026-04-21 18:54:02 +02:00
parent c5fe291a9a
commit c4da7f1f2f

View File

@@ -246,17 +246,21 @@ function useSyncRawModeContentOverride({
rawSourceContentRef: React.MutableRefObject<string | null>
setRawModeContentOverride: React.Dispatch<React.SetStateAction<PendingRawExitContent | null>>
}) {
const syncRawModeContentOverride = (current: PendingRawExitContent | null) => {
const syncRawModeContentOverride = (
current: PendingRawExitContent | null,
nextContent: string,
) => {
if (!current) return current
if (current.path !== activeTabPath || current.content === activeTabContent) return current
return { path: activeTabPath, content: activeTabContent }
if (current.path !== activeTabPath || current.content === nextContent) return current
return { path: activeTabPath, content: nextContent }
}
useLayoutEffect(() => {
if (!activeTabPath || activeTabContent === null) return
if (rawSourceContentRef.current === null || activeTabContent === rawSourceContentRef.current) return
const nextContent = activeTabContent
setRawModeContentOverride(syncRawModeContentOverride)
setRawModeContentOverride((current) => syncRawModeContentOverride(current, nextContent))
}, [activeTabContent, activeTabPath, rawSourceContentRef, setRawModeContentOverride])
}