MCPcopy
hub / github.com/drawdb-io/drawdb / TypeInfo

Function TypeInfo

src/components/EditorSidePanel/TypesTab/TypeInfo.jsx:18–189  ·  view source on GitHub ↗
({ index, data })

Source from the content-addressed store, hash-verified

16import { nanoid } from "nanoid";
17
18export default function TypeInfo({ index, data }) {
19 const { layout } = useLayout();
20 const { deleteType, updateType } = useTypes();
21 const { tables, updateField } = useDiagram();
22 const { setUndoStack, setRedoStack } = useUndoRedo();
23 const [editField, setEditField] = useState({});
24 const { t } = useTranslation();
25
26 // TODO: remove indexes, not a valid case after adding id to types
27 const typeId = data.id ?? index;
28
29 return (
30 <div id={`scroll_type_${typeId}`}>
31 <Collapse.Panel
32 header={
33 <div className="overflow-hidden text-ellipsis whitespace-nowrap">
34 {data.name}
35 </div>
36 }
37 itemKey={`${index}`}
38 >
39 <div className="flex items-center mb-2.5">
40 <div className="text-md font-semibold break-keep">{t("name")}: </div>
41 <Input
42 value={data.name}
43 readonly={layout.readOnly}
44 validateStatus={data.name === "" ? "error" : "default"}
45 placeholder={t("name")}
46 className="ms-2"
47 onChange={(value) => {
48 updateType(typeId, { name: value });
49 tables.forEach((table) => {
50 table.fields.forEach((field) => {
51 if (field.type.toLowerCase() === data.name.toLowerCase()) {
52 updateField(table.id, field.id, {
53 type: value.toUpperCase(),
54 });
55 }
56 });
57 });
58 }}
59 onFocus={(e) => setEditField({ name: e.target.value })}
60 onBlur={(e) => {
61 if (e.target.value === editField.name) return;
62
63 const updatedFields = tables.reduce((acc, table) => {
64 table.fields.forEach((field, i) => {
65 if (field.type.toLowerCase() === data.name.toLowerCase()) {
66 acc.push({ tid: table.id, fid: i });
67 }
68 });
69 return acc;
70 }, []);
71
72 setUndoStack((prev) => [
73 ...prev,
74 {
75 action: Action.EDIT,

Callers

nothing calls this directly

Calls 7

useLayoutFunction · 0.90
useTypesFunction · 0.90
useDiagramFunction · 0.90
useUndoRedoFunction · 0.90
updateTypeFunction · 0.85
updateFieldFunction · 0.85
deleteTypeFunction · 0.85

Tested by

no test coverage detected