confusing
unknown
tsx
3 years ago
2.8 kB
6
Indexable
const Cards: React.FC<CardsProp> = ({data, myKey, inventory}) => { const ref = React.useRef<HTMLDivElement>(null) const TouchTransition = createTransition('touchstart', (event: any) => { return event.touches != null }) const MouseTransition = createTransition('mousedown', (event) => { return true; }); let name = `${inventory}-${myKey}` const [[dragProps], {html5: [html5Props, html5Drag], touch: [touchProps, touchDrag]}] = useMultiDrag({ // "type" is required. It is used by the "accept" specification of drop targets. type: 'box', item: { name }, // The collect function utilizes a "monitor" instance (see the Overview for what this is) // to pull important pieces of state from the DnD system. end: (item, monitor) => { const dropResult = monitor.getDropResult<DropResult>() console.log(dropResult, TouchTransition, MouseTransition) if (item && dropResult) { } }, collect: (monitor) => ({ isDragging: monitor.isDragging(), }), }) const [[dropProps], {html5: [html5DropStyle, html5Drop], touch: [touchDropStyle, touchDrop]}] = useMultiDrop({ accept: 'box', drop: () => ({ name: name }), collect: (monitor) => ({ isOver: monitor.isOver(), canDrop: monitor.canDrop(), }), }) touchDrag(touchDrop(ref)); return ( <div data-testid={`box`} className={`inventory-card slot-${inventory}-${myKey}`} ref = {ref} > {name} {data && <> {data.image && <img style={{marginTop: '10px'}} src={`${data.image}?w=164&h=164&fit=crop&auto=format`} srcSet={`${data.image}?w=164&h=164&fit=crop&auto=format&dpr=2 2x`} alt={data.itemName} loading="lazy" draggable={false} />} <Typography sx={{position: 'absolute',top: '0',right: '5px', userSelect: 'none'}} variant="overline" display="block" gutterBottom> {data.itemAmount} </Typography> <Typography sx={{position: 'absolute',bottom: '0',left: '50%',transform: 'translate(-50%,0)', userSelect: 'none'}} variant="overline" display="block" gutterBottom> {data.itemName} </Typography> </>} {myKey < 6 && inventory === 'personal' && <Typography draggable={false} sx={{position: 'absolute',top: '0',left: '5px', userSelect: 'none'}} variant="overline" display="block" gutterBottom> {myKey} </Typography>} </div> ) }
Editor is loading...