mirror of
https://github.com/drawdb-io/drawdb.git
synced 2025-09-20 22:44:52 +00:00
hi
This commit is contained in:
@@ -102,7 +102,12 @@ export default function Canvas(props) {
|
|||||||
prevY: note.y,
|
prevY: note.y,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setSelectedElement({ element: type, id: id, openDialogue: false, openCollapse: false });
|
setSelectedElement({
|
||||||
|
element: type,
|
||||||
|
id: id,
|
||||||
|
openDialogue: false,
|
||||||
|
openCollapse: false,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMouseMove = (e) => {
|
const handleMouseMove = (e) => {
|
||||||
@@ -113,8 +118,8 @@ export default function Canvas(props) {
|
|||||||
|
|
||||||
setLine({
|
setLine({
|
||||||
...line,
|
...line,
|
||||||
endX: (e.clientX - offsetX) / settings.zoom - settings.pan.x,
|
endX: (e.clientX - offsetX - settings.pan.x) / settings.zoom,
|
||||||
endY: (e.clientY - offsetY) / settings.zoom - settings.pan.y,
|
endY: (e.clientY - offsetY - settings.pan.y) / settings.zoom,
|
||||||
});
|
});
|
||||||
} else if (
|
} else if (
|
||||||
panning.state &&
|
panning.state &&
|
||||||
|
@@ -12,7 +12,6 @@ import {
|
|||||||
Table,
|
Table,
|
||||||
} from "@douyinfe/semi-ui";
|
} from "@douyinfe/semi-ui";
|
||||||
import {
|
import {
|
||||||
IconRowsStroked,
|
|
||||||
IconDeleteStroked,
|
IconDeleteStroked,
|
||||||
IconLoopTextStroked,
|
IconLoopTextStroked,
|
||||||
IconMore,
|
IconMore,
|
||||||
@@ -309,27 +308,14 @@ export default function ReferenceOverview(props) {
|
|||||||
}}
|
}}
|
||||||
></Checkbox>
|
></Checkbox>
|
||||||
</div>
|
</div>
|
||||||
<Row gutter={6} className="mt-3">
|
<Button
|
||||||
<Col span={12}>
|
icon={<IconDeleteStroked />}
|
||||||
<Button
|
block
|
||||||
icon={<IconRowsStroked />}
|
type="danger"
|
||||||
disabled={r.cardinality === Cardinality.ONE_TO_ONE}
|
onClick={() => deleteRelationship(r.id, true)}
|
||||||
block
|
>
|
||||||
>
|
Delete
|
||||||
Extract to table
|
</Button>
|
||||||
</Button>
|
|
||||||
</Col>
|
|
||||||
<Col span={12}>
|
|
||||||
<Button
|
|
||||||
icon={<IconDeleteStroked />}
|
|
||||||
block
|
|
||||||
type="danger"
|
|
||||||
onClick={() => deleteRelationship(r.id, true)}
|
|
||||||
>
|
|
||||||
Delete
|
|
||||||
</Button>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
</Collapse.Panel>
|
</Collapse.Panel>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
@@ -44,10 +44,10 @@ import {
|
|||||||
export default function Table(props) {
|
export default function Table(props) {
|
||||||
const [isHovered, setIsHovered] = useState(false);
|
const [isHovered, setIsHovered] = useState(false);
|
||||||
const [hoveredField, setHoveredField] = useState(-1);
|
const [hoveredField, setHoveredField] = useState(-1);
|
||||||
// const [visible, setVisible] = useState(false);
|
|
||||||
const [editField, setEditField] = useState({});
|
const [editField, setEditField] = useState({});
|
||||||
const { layout } = useContext(LayoutContext);
|
const { layout } = useContext(LayoutContext);
|
||||||
const { deleteTable, updateTable, updateField } = useContext(TableContext);
|
const { deleteTable, updateTable, updateField, setRelationships } =
|
||||||
|
useContext(TableContext);
|
||||||
const { tab, setTab } = useContext(TabContext);
|
const { tab, setTab } = useContext(TabContext);
|
||||||
const { settings } = useContext(SettingsContext);
|
const { settings } = useContext(SettingsContext);
|
||||||
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
||||||
@@ -88,7 +88,15 @@ export default function Table(props) {
|
|||||||
style={{ backgroundColor: props.tableData.color }}
|
style={{ backgroundColor: props.tableData.color }}
|
||||||
/>
|
/>
|
||||||
<div className="font-bold text-slate-800 h-[40px] flex justify-between items-center border-b border-gray-400 bg-gray-200">
|
<div className="font-bold text-slate-800 h-[40px] flex justify-between items-center border-b border-gray-400 bg-gray-200">
|
||||||
<div className="px-3">{props.tableData.name}</div>
|
<div className="px-3">
|
||||||
|
{isHovered
|
||||||
|
? props.tableData.name.length < 10
|
||||||
|
? props.tableData.name
|
||||||
|
: `${props.tableData.name.substring(0, 10)}...`
|
||||||
|
: props.tableData.name.length < 14
|
||||||
|
? props.tableData.name
|
||||||
|
: `${props.tableData.name.substring(0, 14)}...`}
|
||||||
|
</div>
|
||||||
{isHovered && (
|
{isHovered && (
|
||||||
<div className="flex justify-end items-center mx-2">
|
<div className="flex justify-end items-center mx-2">
|
||||||
<Button
|
<Button
|
||||||
@@ -662,6 +670,19 @@ export default function Table(props) {
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
|
setRelationships((prev) =>
|
||||||
|
prev
|
||||||
|
.filter(
|
||||||
|
(e) =>
|
||||||
|
!(
|
||||||
|
(e.startTableId === props.tableData.id &&
|
||||||
|
e.startFieldId === j) ||
|
||||||
|
(e.endTableId === props.tableData.id &&
|
||||||
|
e.endFieldId === j)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
|
);
|
||||||
updateTable(props.tableData.id, {
|
updateTable(props.tableData.id, {
|
||||||
fields: props.tableData.fields
|
fields: props.tableData.fields
|
||||||
.filter((field) => field.id !== j)
|
.filter((field) => field.id !== j)
|
||||||
@@ -1102,6 +1123,19 @@ export default function Table(props) {
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
|
setRelationships((prev) =>
|
||||||
|
prev
|
||||||
|
.filter(
|
||||||
|
(e) =>
|
||||||
|
!(
|
||||||
|
(e.startTableId === props.tableData.id &&
|
||||||
|
e.startFieldId === index) ||
|
||||||
|
(e.endTableId === props.tableData.id &&
|
||||||
|
e.endFieldId === index)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
|
);
|
||||||
updateTable(props.tableData.id, {
|
updateTable(props.tableData.id, {
|
||||||
fields: props.tableData.fields
|
fields: props.tableData.fields
|
||||||
.filter((e) => e.id !== fieldData.id)
|
.filter((e) => e.id !== fieldData.id)
|
||||||
|
@@ -39,8 +39,14 @@ import { SelectContext, TableContext, UndoRedoContext } from "../pages/editor";
|
|||||||
export default function TableOverview(props) {
|
export default function TableOverview(props) {
|
||||||
const [indexActiveKey, setIndexActiveKey] = useState("");
|
const [indexActiveKey, setIndexActiveKey] = useState("");
|
||||||
const [value, setValue] = useState("");
|
const [value, setValue] = useState("");
|
||||||
const { tables, addTable, deleteTable, updateField, updateTable } =
|
const {
|
||||||
useContext(TableContext);
|
tables,
|
||||||
|
addTable,
|
||||||
|
deleteTable,
|
||||||
|
updateField,
|
||||||
|
updateTable,
|
||||||
|
setRelationships,
|
||||||
|
} = useContext(TableContext);
|
||||||
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
||||||
const { selectedElement, setSelectedElement } = useContext(SelectContext);
|
const { selectedElement, setSelectedElement } = useContext(SelectContext);
|
||||||
const [editField, setEditField] = useState({});
|
const [editField, setEditField] = useState({});
|
||||||
@@ -502,6 +508,21 @@ export default function TableOverview(props) {
|
|||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
|
setRelationships((prev) =>
|
||||||
|
prev
|
||||||
|
.filter(
|
||||||
|
(e) =>
|
||||||
|
!(
|
||||||
|
(e.startTableId ===
|
||||||
|
props.tableData.id &&
|
||||||
|
e.startFieldId === j) ||
|
||||||
|
(e.endTableId ===
|
||||||
|
props.tableData.id &&
|
||||||
|
e.endFieldId === j)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
|
);
|
||||||
updateTable(i, {
|
updateTable(i, {
|
||||||
fields: t.fields
|
fields: t.fields
|
||||||
.filter((field) => field.id !== j)
|
.filter((field) => field.id !== j)
|
||||||
|
@@ -230,6 +230,11 @@ export default function Editor(props) {
|
|||||||
setTables((prev) =>
|
setTables((prev) =>
|
||||||
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
|
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
|
||||||
);
|
);
|
||||||
|
setRelationships((prev) =>
|
||||||
|
prev
|
||||||
|
.filter((e) => e.startTableId !== id && e.endTableId !== id)
|
||||||
|
.map((e, i) => ({ ...e, id: i }))
|
||||||
|
);
|
||||||
if (id === selectedElement.id) {
|
if (id === selectedElement.id) {
|
||||||
setSelectedElement({
|
setSelectedElement({
|
||||||
element: ObjectType.NONE,
|
element: ObjectType.NONE,
|
||||||
|
Reference in New Issue
Block a user