@@ -4,14 +4,15 @@ import { Fragment, memo, useEffect, useMemo } from "react";
4
4
import { createStore , ref } from "reactivity-store" ;
5
5
import { useSyncExternalStore } from "use-sync-external-store/shim" ;
6
6
7
+ import { useDiffViewContext , type SplitSide } from ".." ;
8
+
7
9
import { DiffUnifiedExtendLine } from "./DiffUnifiedExtendLine" ;
8
10
import { DiffUnifiedHunkLine } from "./DiffUnifiedHunkLine" ;
9
11
import { DiffUnifiedLine } from "./DiffUnifiedLine" ;
10
12
import { DiffUnifiedWidgetLine } from "./DiffUnifiedWidgetLine" ;
11
13
import { DiffWidgetContext } from "./DiffWidgetContext" ;
12
14
import { removeAllSelection } from "./tools" ;
13
15
14
- import type { SplitSide } from ".." ;
15
16
import type { DiffFile } from "@git-diff-view/core" ;
16
17
import type { MouseEventHandler } from "react" ;
17
18
@@ -26,6 +27,8 @@ const onMouseDown: MouseEventHandler<HTMLTableSectionElement> = (e) => {
26
27
} ;
27
28
28
29
export const DiffUnifiedView = memo ( ( { diffFile } : { diffFile : DiffFile } ) => {
30
+ const { useDiffContext } = useDiffViewContext ( ) ;
31
+
29
32
// performance optimization
30
33
const useWidget = useMemo (
31
34
( ) =>
@@ -35,13 +38,18 @@ export const DiffUnifiedView = memo(({ diffFile }: { diffFile: DiffFile }) => {
35
38
const widgetLineNumber = ref < number > ( undefined ) ;
36
39
37
40
const setWidget = ( { side, lineNumber } : { side ?: SplitSide ; lineNumber ?: number } ) => {
41
+ const { renderWidgetLine } = useDiffContext . getReadonlyState ( ) ;
42
+
43
+ if ( typeof renderWidgetLine !== "function" ) return ;
44
+
38
45
widgetSide . value = side ;
46
+
39
47
widgetLineNumber . value = lineNumber ;
40
48
} ;
41
49
42
50
return { widgetSide, widgetLineNumber, setWidget } ;
43
51
} ) ,
44
- [ ]
52
+ [ useDiffContext ]
45
53
) ;
46
54
47
55
const contextValue = useMemo ( ( ) => ( { useWidget } ) , [ useWidget ] ) ;
0 commit comments