feat: 조직도 폼 작업

This commit is contained in:
2025-04-21 19:36:21 +09:00
parent e719834c80
commit c6c5eff11e
5 changed files with 284 additions and 13 deletions
+13 -3
View File
@@ -11,6 +11,7 @@ import {
type DropOptions,
} from "@minoru/react-dnd-treeview";
import { Button } from "@common/components/ui";
import { cn } from "@common/components/lib";
import { CustomNode } from "./custom-node";
interface TreeData extends Record<string, unknown> {
@@ -19,9 +20,12 @@ interface TreeData extends Record<string, unknown> {
type EditableNodeProps = { depth: number };
type TreeProps<T extends TreeData> = {
type DndTreeProps<T extends TreeData> = {
tree: NodeModel<T>[];
selectedNodeId: number;
classes?: {
wrapper: string;
};
renderEditableNode: (props: EditableNodeProps) => ReactElement;
handleSelectNode: (node: NodeModel<T>) => void;
handleDropNode: (newTree: NodeModel<T>[], options: DropOptions<T>) => void;
@@ -31,11 +35,12 @@ type TreeProps<T extends TreeData> = {
function DndTree<T extends TreeData>({
tree,
selectedNodeId,
classes,
renderEditableNode,
handleSelectNode,
handleDropNode,
updateNodeName,
}: TreeProps<T>) {
}: DndTreeProps<T>) {
const treeMethods = useRef<TreeMethods>(null);
const isAdditionalParent = (node: NodeModel<T>): boolean => {
@@ -46,7 +51,12 @@ function DndTree<T extends TreeData>({
return (
<>
<div className="max-h-[calc(100vh-33.5rem)] overflow-auto">
<div
className={cn(
"max-h-[calc(100vh-33.5rem)] overflow-auto",
classes?.wrapper,
)}
>
<DndProvider backend={MultiBackend} options={getBackendOptions()}>
<Tree
tree={tree}