sendou.ink/app/features/tier-list-maker/components/DraggableItem.tsx
Kalle 84b4c1d67f
Some checks are pending
E2E Tests / e2e (push) Waiting to run
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
Download tier list as img (#2638)
Co-authored-by: hfcRed <hfcred@gmx.net>
2025-11-17 18:40:22 +02:00

41 lines
979 B
TypeScript

import { useSortable } from "@dnd-kit/sortable";
import { CSS } from "@dnd-kit/utilities";
import type { TierListItem } from "../tier-list-maker-schemas";
import { tierListItemId } from "../tier-list-maker-utils";
import styles from "./DraggableItem.module.css";
import { TierListItemImage } from "./TierListItemImage";
interface DraggableItemProps {
item: TierListItem;
forcePng?: boolean;
}
export function DraggableItem({ item, forcePng }: DraggableItemProps) {
const uniqueId = tierListItemId(item);
const {
attributes,
listeners,
setNodeRef,
transform,
transition,
isDragging,
} = useSortable({
id: uniqueId,
});
const style = {
transform: CSS.Transform.toString(transform),
transition,
opacity: isDragging ? 0.3 : 1,
};
return (
<div ref={setNodeRef} className={styles.item} style={style}>
<div data-item-id={uniqueId} {...listeners} {...attributes}>
<TierListItemImage item={item} forcePng={forcePng} />
</div>
</div>
);
}