Skip to content

Commit 880b2a7

Browse files
committed
Memoize attributionContextValue to preserve resolver cache across renders
1 parent 3d2e941 commit 880b2a7

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

hub-client/src/components/Editor.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState, useCallback, useRef, useEffect } from 'react';
1+
import { useState, useCallback, useRef, useEffect, useMemo } from 'react';
22
import MonacoEditor from '@monaco-editor/react';
33
import type * as Monaco from 'monaco-editor';
44
import type { ProjectEntry, FileEntry } from '../types/project';
@@ -369,11 +369,14 @@ export default function Editor({ project, files, fileContents, onDisconnect, onC
369369
const [attributionPref, setAttributionPref] = usePreference('attributionEnabled');
370370
const attributionEnabled = currentFormat === 'q2-debug' && attributionPref;
371371
const attribution = useAttribution(attributionEnabled ? (currentFile?.path ?? null) : null, displayContent);
372-
const attributionContextValue = attribution ? {
373-
source: attribution.source,
374-
identities: identities ?? {},
375-
sourceText: displayContent,
376-
} : null;
372+
const attributionContextValue = useMemo(
373+
() => attribution ? {
374+
source: attribution.source,
375+
identities: identities ?? {},
376+
sourceText: displayContent,
377+
} : null,
378+
[attribution, identities, displayContent],
379+
);
377380

378381
// When replay content changes, update Monaco and VFS for display.
379382
// Writing to VFS ensures the preview renderer sees historical content.

0 commit comments

Comments
 (0)