feat(ui): improve drag and drop ux

This commit is contained in:
psychedelicious
2023-06-01 19:24:26 +10:00
parent b1e1e3efc7
commit fa4d88e163
10 changed files with 72 additions and 117 deletions

View File

@ -3,6 +3,11 @@ import {
DragEndEvent,
DragOverlay,
DragStartEvent,
KeyboardSensor,
MouseSensor,
TouchSensor,
useSensor,
useSensors,
} from '@dnd-kit/core';
import { PropsWithChildren, memo, useCallback, useState } from 'react';
import OverlayDragImage from './OverlayDragImage';
@ -32,8 +37,23 @@ const ImageDndContext = (props: ImageDndContextProps) => {
[draggedImage]
);
const mouseSensor = useSensor(MouseSensor, {
activationConstraint: { distance: 15 },
});
const touchSensor = useSensor(TouchSensor, {
activationConstraint: { distance: 15 },
});
const keyboardSensor = useSensor(KeyboardSensor);
const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor);
return (
<DndContext onDragStart={handleDragStart} onDragEnd={handleDragEnd}>
<DndContext
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
sensors={sensors}
>
{props.children}
<DragOverlay dropAnimation={null}>
{draggedImage && <OverlayDragImage image={draggedImage} />}

View File

@ -10,8 +10,8 @@ const OverlayDragImage = (props: OverlayDragImageProps) => {
return (
<Image
sx={{
maxW: 32,
maxH: 32,
maxW: 36,
maxH: 36,
borderRadius: 'base',
shadow: 'dark-lg',
}}