( parent: View | null, reusableView: View, renderDropIndicator?: (target: ItemDropTarget) => ReactNode, shouldObserveItemSize?: boolean )
| 175 | } |
| 176 | |
| 177 | function renderWrapper( |
| 178 | parent: View | null, |
| 179 | reusableView: View, |
| 180 | renderDropIndicator?: (target: ItemDropTarget) => ReactNode, |
| 181 | shouldObserveItemSize?: boolean |
| 182 | ): ReactNode { |
| 183 | let rendered = ( |
| 184 | <VirtualizerItem |
| 185 | key={reusableView.key} |
| 186 | layoutInfo={reusableView.layoutInfo!} |
| 187 | virtualizer={reusableView.virtualizer} |
| 188 | parent={parent?.layoutInfo} |
| 189 | shouldObserveItemSize={shouldObserveItemSize}> |
| 190 | {reusableView.rendered} |
| 191 | </VirtualizerItem> |
| 192 | ); |
| 193 | |
| 194 | let {collection, layout} = reusableView.virtualizer; |
| 195 | let node = reusableView.content; |
| 196 | if (node?.type === 'item' && renderDropIndicator && layout.getDropTargetLayoutInfo) { |
| 197 | rendered = ( |
| 198 | <React.Fragment key={reusableView.key}> |
| 199 | {renderDropIndicatorWrapper( |
| 200 | parent, |
| 201 | reusableView, |
| 202 | {type: 'item', key: reusableView.content!.key, dropPosition: 'before'}, |
| 203 | renderDropIndicator |
| 204 | )} |
| 205 | {rendered} |
| 206 | {renderAfterDropIndicators(collection, node, target => |
| 207 | renderDropIndicatorWrapper(parent, reusableView, target, renderDropIndicator) |
| 208 | )} |
| 209 | </React.Fragment> |
| 210 | ); |
| 211 | } |
| 212 | |
| 213 | return rendered; |
| 214 | } |
| 215 | |
| 216 | function renderDropIndicatorWrapper( |
| 217 | parent: View | null, |
no test coverage detected