11import { createElement , useEffect , useMemo , useRef , type ReactNode } from 'react' ;
22import { useComputed , useDeepSignal } from '@dnd-kit/react/hooks' ;
3- import { Draggable , Feedback } from '@dnd-kit/dom' ;
3+ import { DragDropManager , Draggable , Feedback } from '@dnd-kit/dom' ;
44import { Data } from '@dnd-kit/abstract' ;
55
66import { useDragDropManager } from '../hooks/useDragDropManager.ts' ;
@@ -11,7 +11,7 @@ export interface Props<T extends Data, U extends Draggable<T>> {
1111 children : ReactNode | ( ( source : U ) => ReactNode ) ;
1212 style ?: React . CSSProperties ;
1313 tag ?: string ;
14- disabled ?: boolean | ( ( source : U ) => boolean ) ;
14+ disabled ?: boolean | ( ( source : U | null ) => boolean ) ;
1515}
1616
1717export function DragOverlay < T extends Data , U extends Draggable < T > > ( {
@@ -22,11 +22,9 @@ export function DragOverlay<T extends Data, U extends Draggable<T>>({
2222 disabled,
2323} : Props < T , U > ) {
2424 const ref = useRef < HTMLDivElement | null > ( null ) ;
25- const manager = useDragDropManager ( ) ;
26- const source = useComputed (
27- ( ) => manager ?. dragOperation . source ,
28- [ manager ]
29- ) . value ;
25+ const manager = useDragDropManager < T , U > ( ) ;
26+ const source =
27+ useComputed ( ( ) => manager ?. dragOperation . source , [ manager ] ) . value ?? null ;
3028 const isDisabled =
3129 typeof disabled === 'function' ? disabled ( source ) : disabled ;
3230
@@ -72,7 +70,7 @@ export function DragOverlay<T extends Data, U extends Draggable<T>>({
7270 } , [ manager ] ) ;
7371
7472 return (
75- < DragDropContext . Provider value = { patchedManager } >
73+ < DragDropContext . Provider value = { patchedManager as DragDropManager | null } >
7674 { createElement (
7775 tag || 'div' ,
7876 { ref, className, style, 'data-dnd-overlay' : true } ,
0 commit comments