mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-18 07:23:51 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
974 B
TypeScript
32 lines
974 B
TypeScript
import { DragOverlay } from "@dnd-kit/core";
|
|
import { useAtomValue } from "jotai";
|
|
import { draggingIdsFamily } from "./atoms";
|
|
import type { SelectableTreeNode } from "./common";
|
|
import type { TreeProps } from "./Tree";
|
|
import { TreeItemList } from "./TreeItemList";
|
|
|
|
export function TreeDragOverlay<T extends { id: string }>({
|
|
treeId,
|
|
selectableItems,
|
|
getItemKey,
|
|
ItemInner,
|
|
ItemLeftSlotInner,
|
|
}: {
|
|
treeId: string;
|
|
selectableItems: SelectableTreeNode<T>[];
|
|
} & Pick<TreeProps<T>, "getItemKey" | "ItemInner" | "ItemLeftSlotInner">) {
|
|
const draggingItems = useAtomValue(draggingIdsFamily(treeId));
|
|
return (
|
|
<DragOverlay dropAnimation={null}>
|
|
<TreeItemList
|
|
treeId={`${treeId}.dragging`}
|
|
nodes={selectableItems.filter((i) => draggingItems.includes(i.node.item.id))}
|
|
getItemKey={getItemKey}
|
|
ItemInner={ItemInner}
|
|
ItemLeftSlotInner={ItemLeftSlotInner}
|
|
forceDepth={0}
|
|
/>
|
|
</DragOverlay>
|
|
);
|
|
}
|