All files / src/components/ui/lists FlatListOuterDropTarget.tsx

0% Statements 0/14
0% Branches 0/1
0% Functions 0/4
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42                                                                                   
import React from "react";
import { useDrop } from "react-dnd";
import { useFlatListOuterDropContext } from "ui/lists/FlatListOuterDropContext";
import {
  StyledListDropzone,
  StyledListWithDropzoneWrapper,
} from "ui/lists/style";
 
export const FlatListOuterDropTarget = React.forwardRef<
  HTMLDivElement,
  React.HTMLAttributes<HTMLDivElement>
>((props, ref) => {
  const { acceptTypes, onItemDrop } = useFlatListOuterDropContext<unknown>();
 
  const [{ isOver }, drop] = useDrop<unknown, void, { isOver: boolean }>({
    accept: acceptTypes,
    drop: (item, monitor) => {
      Iif (monitor.didDrop()) {
        return;
      }
      onItemDrop(item);
    },
    collect: (monitor) => ({
      isOver: monitor.isOver({ shallow: true }),
    }),
  });
 
  return (
    <StyledListWithDropzoneWrapper {...props} ref={ref}>
      {props.children}
      <StyledListDropzone
        ref={(node) => {
          drop(node);
        }}
        $isOver={isOver}
      />
    </StyledListWithDropzoneWrapper>
  );
});
 
FlatListOuterDropTarget.displayName = "FlatListOuterDropTarget";