import { Button, message, Space, Typography } from "antd";
import { useState } from "react";
import { PlusOutlined, EditOutlined } from "@ant-design/icons";
import { TreeNodeData } from "./EditableTree";
const { Text } = Typography;
interface IWidget {
node: TreeNodeData;
onAdd?: Function;
onEdit?: Function;
onTitleClick?: Function;
}
const EditableTreeNodeWidget = ({
node,
onAdd,
onEdit,
onTitleClick,
}: IWidget) => {
const [showNodeMenu, setShowNodeMenu] = useState(false);
const [loading, setLoading] = useState(false);
const title = node.deletedAt ? (
{node.title_text ? node.title_text : node.title}
) : (
) => {
if (typeof onTitleClick !== "undefined") {
onTitleClick(e);
}
}}
>
{node.title_text ? node.title_text : node.title}
);
const menu = (
}
type="text"
onClick={async () => {
if (typeof onEdit !== "undefined") {
onEdit();
}
}}
/>
}
type="text"
onClick={async () => {
if (typeof onAdd !== "undefined") {
setLoading(true);
const ok = await onAdd();
setLoading(false);
if (!ok) {
message.error("error");
}
}
}}
/>
);
return (
setShowNodeMenu(true)}
onMouseLeave={() => setShowNodeMenu(false)}
>
{title}
{menu}
);
};
export default EditableTreeNodeWidget;