diff --git a/apps/docs/app/(diffs)/_docs/DocsPage.tsx b/apps/docs/app/(diffs)/_docs/DocsPage.tsx index d2a722628..2f4be5c3a 100644 --- a/apps/docs/app/(diffs)/_docs/DocsPage.tsx +++ b/apps/docs/app/(diffs)/_docs/DocsPage.tsx @@ -31,15 +31,21 @@ import { CUSTOM_HUNK_SEPARATORS_SWITCHER, } from '../docs/CustomHunkSeparators/constants'; import { - EDIT_DEMO_FILE_EXAMPLE, + EDIT_FOCUS_POSITION_EXAMPLE, EDIT_LAZY_FILE_EXAMPLE, EDIT_MARKER_EXAMPLE, EDIT_MARKER_TYPE, + EDIT_ON_ATTACH_REACT_EXAMPLE, + EDIT_ON_ATTACH_VANILLA_EXAMPLE, EDIT_ON_CHANGE_EXAMPLE, + EDIT_PERSIST_STATE_EXAMPLE, + EDIT_PERSIST_STATE_REACT_EXAMPLE, EDIT_REACT_CODE_VIEW_EXAMPLE, + EDIT_REACT_CREATE_EDITOR_EXAMPLE, EDIT_REACT_EXAMPLE, EDIT_REACT_FILE_DIFF_EXAMPLE, EDIT_REACT_MULTI_FILE_DIFF_EXAMPLE, + EDIT_REACT_SHARED_EDITOR_EXAMPLE, EDIT_SELECTION_ACTION_CONTEXT_TYPE, EDIT_SELECTION_ACTION_EXAMPLE, EDIT_UNDO_REDO_EXAMPLE, @@ -424,7 +430,6 @@ async function CodeViewSection() { async function EditSection() { const [ - editDemoFile, keymapFile, editVanillaFileExample, editVanillaFileDiffExample, @@ -432,11 +437,18 @@ async function EditSection() { editLazyFileExample, editorOptionsType, editOnChangeExample, + editOnAttachReactExample, + editOnAttachVanillaExample, + editFocusPositionExample, editorPublicApi, editSelectionActionContextType, editSelectionActionExample, + editPersistStateExample, + editPersistStateReactExample, editMarkerType, editMarkerExample, + editReactCreateEditorExample, + editReactSharedEditorExample, editReactCodeViewExample, editReactExample, editReactFileDiffExample, @@ -445,7 +457,6 @@ async function EditSection() { editWorkerPoolReactExample, editWorkerPoolVanillaExample, ] = await Promise.all([ - preloadFile(EDIT_DEMO_FILE_EXAMPLE), preloadFile(DEFAULT_KEYMAP_FILE_EXAMPLE), preloadFile(EDIT_VANILLA_FILE_EXAMPLE), preloadFile(EDIT_VANILLA_FILE_DIFF_EXAMPLE), @@ -453,11 +464,18 @@ async function EditSection() { preloadFile(EDIT_LAZY_FILE_EXAMPLE), preloadFile(EDITOR_OPTIONS_TYPE), preloadFile(EDIT_ON_CHANGE_EXAMPLE), + preloadFile(EDIT_ON_ATTACH_REACT_EXAMPLE), + preloadFile(EDIT_ON_ATTACH_VANILLA_EXAMPLE), + preloadFile(EDIT_FOCUS_POSITION_EXAMPLE), preloadFile(EDITOR_PUBLIC_API), preloadFile(EDIT_SELECTION_ACTION_CONTEXT_TYPE), preloadFile(EDIT_SELECTION_ACTION_EXAMPLE), + preloadFile(EDIT_PERSIST_STATE_EXAMPLE), + preloadFile(EDIT_PERSIST_STATE_REACT_EXAMPLE), preloadFile(EDIT_MARKER_TYPE), preloadFile(EDIT_MARKER_EXAMPLE), + preloadFile(EDIT_REACT_CREATE_EDITOR_EXAMPLE), + preloadFile(EDIT_REACT_SHARED_EDITOR_EXAMPLE), preloadFile(EDIT_REACT_CODE_VIEW_EXAMPLE), preloadFile(EDIT_REACT_EXAMPLE), preloadFile(EDIT_REACT_FILE_DIFF_EXAMPLE), @@ -469,7 +487,6 @@ async function EditSection() { const content = await renderMDX({ filePath: '(diffs)/docs/Edit/content.mdx', scope: { - editDemoFile, keymapFile, editVanillaFileExample, editVanillaFileDiffExample, @@ -477,11 +494,18 @@ async function EditSection() { editLazyFileExample, editorOptionsType, editOnChangeExample, + editOnAttachReactExample, + editOnAttachVanillaExample, + editFocusPositionExample, editorPublicApi, editSelectionActionContextType, editSelectionActionExample, + editPersistStateExample, + editPersistStateReactExample, editMarkerType, editMarkerExample, + editReactCreateEditorExample, + editReactSharedEditorExample, editReactCodeViewExample, editReactExample, editReactFileDiffExample, diff --git a/apps/docs/app/(diffs)/_home/AgentUi.tsx b/apps/docs/app/(diffs)/_home/AgentUi.tsx index a0e2c0d59..757ca1581 100644 --- a/apps/docs/app/(diffs)/_home/AgentUi.tsx +++ b/apps/docs/app/(diffs)/_home/AgentUi.tsx @@ -2,7 +2,7 @@ import { DEFAULT_THEMES, type FileDiffMetadata } from '@pierre/diffs'; import type { EditorOptions } from '@pierre/diffs/edit'; -import { File, FileDiff } from '@pierre/diffs/react'; +import { File, FileDiff, Virtualizer } from '@pierre/diffs/react'; import { IconArrow, IconChevronSm, @@ -21,7 +21,6 @@ import { type CSSProperties, useCallback, useEffect, - useLayoutEffect, useMemo, useRef, useState, @@ -41,12 +40,6 @@ import { getSessionGitStatus, getSessionPaths, } from './mockData'; -// Runs as a layout effect in the browser (so DOM reads/writes land before the -// next paint) but falls back to useEffect during SSR, where useLayoutEffect -// would warn. The demo is server-rendered, so the fallback matters. -const useIsomorphicLayoutEffect = - typeof window === 'undefined' ? useEffect : useLayoutEffect; - // Added/removed line totals for a single file's diff. interface DiffStats { additions: number; @@ -66,33 +59,6 @@ function countDiffStats(diff: FileDiffMetadata): DiffStats { return { additions, deletions }; } -// The editor's stylesheet flattens every line number to one neutral colour -// (`--diffs-editor-line-number-fg`) and is injected as an unlayered