1
1
import { VirtualItem , Virtualizer , useVirtualizer } from "@tanstack/react-virtual" ;
2
2
import { motion } from "framer-motion" ;
3
3
import { MutableRefObject , RefObject , useCallback , useEffect , useReducer , useRef } from "react" ;
4
- import { UnmountClosed } from "react-collapse" ;
5
4
import { cn } from "~/utils/cn" ;
6
5
import { NodeState , NodesState , reducer } from "./reducer" ;
7
6
import { applyFilterToState , concreteStateFromInput , selectedIdFromState } from "./utils" ;
@@ -104,23 +103,22 @@ export function TreeView<TData>({
104
103
if ( ! node ) return null ;
105
104
const state = nodes [ node . id ] ;
106
105
if ( ! state ) return null ;
106
+ if ( ! state . visible ) return null ;
107
107
return (
108
108
< div
109
109
key = { node . id }
110
110
data-index = { virtualItem . index }
111
111
ref = { virtualizer . measureElement }
112
- className = "overflow-clip [&_.ReactCollapse--collapse]:transition-all "
112
+ className = "overflow-clip"
113
113
{ ...getNodeProps ( node . id ) }
114
114
>
115
- < UnmountClosed key = { node . id } isOpened = { state . visible } >
116
- { renderNode ( {
117
- node,
118
- state,
119
- index : virtualItem . index ,
120
- virtualizer : virtualizer ,
121
- virtualItem,
122
- } ) }
123
- </ UnmountClosed >
115
+ { renderNode ( {
116
+ node,
117
+ state,
118
+ index : virtualItem . index ,
119
+ virtualizer : virtualizer ,
120
+ virtualItem,
121
+ } ) }
124
122
</ div >
125
123
) ;
126
124
} ) }
@@ -135,7 +133,6 @@ type TreeStateHookProps<TData> = {
135
133
selectedId ?: string ;
136
134
collapsedIds ?: string [ ] ;
137
135
onSelectedIdChanged ?: ( selectedId : string | undefined ) => void ;
138
- onCollapsedIdsChanged ?: ( collapsedIds : string [ ] ) => void ;
139
136
estimatedRowHeight : ( params : {
140
137
node : FlatTreeItem < TData > ;
141
138
state : NodeState ;
@@ -183,7 +180,6 @@ export function useTree<TData>({
183
180
selectedId,
184
181
collapsedIds,
185
182
onSelectedIdChanged,
186
- onCollapsedIdsChanged,
187
183
parentRef,
188
184
estimatedRowHeight,
189
185
filter,
@@ -204,12 +200,6 @@ export function useTree<TData>({
204
200
}
205
201
} , [ state . changes . selectedId ] ) ;
206
202
207
- useEffect ( ( ) => {
208
- if ( state . changes . collapsedIds ) {
209
- onCollapsedIdsChanged ?.( state . changes . collapsedIds ) ;
210
- }
211
- } , [ state . changes . collapsedIds ] ) ;
212
-
213
203
useEffect ( ( ) => {
214
204
if ( tree . length !== previousNodeCount . current ) {
215
205
previousNodeCount . current = tree . length ;
0 commit comments