Replace "react-beautiful-dnd" with "dnd-kit"

"react-beautiful-dnd" has been deprecated for quite some time
This commit is contained in:
schroda
2025-04-18 14:28:06 +02:00
parent 55c4a92b26
commit 213f561fe4
10 changed files with 252 additions and 216 deletions

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import Box from '@mui/material/Box';
import { useSortable } from '@dnd-kit/sortable';
import { ReactNode } from 'react';
import { UniqueIdentifier } from '@dnd-kit/core';
import { CSS } from '@dnd-kit/utilities';
import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts';
export const DndSortableItem = ({
id,
isDragging = false,
children,
}: {
id: UniqueIdentifier;
isDragging?: boolean;
children: ReactNode;
}) => {
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id });
return (
<Box
ref={setNodeRef}
sx={{
transform: CSS.Translate.toString(transform),
transition,
...applyStyles(isDragging, {
opacity: 0.25,
}),
}}
{...attributes}
{...listeners}
>
{children}
</Box>
);
};