Merge branch 'drawdb-io:main' into rtl-fix

This commit is contained in:
Tasnim Tantawi
2024-08-05 10:15:37 +03:00
committed by GitHub
9 changed files with 94 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ import {
} from "../../hooks";
import { useTranslation } from "react-i18next";
import { useEventListener } from "usehooks-ts";
import { areFieldsCompatible } from "../../utils/utils";
export default function Canvas() {
const { t } = useTranslation();
@@ -34,7 +35,8 @@ export default function Canvas() {
pointer,
} = canvasContextValue;
const { tables, updateTable, relationships, addRelationship } = useDiagram();
const { tables, updateTable, relationships, addRelationship, database } =
useDiagram();
const { areas, updateArea } = useAreas();
const { notes, updateNote } = useNotes();
const { layout } = useLayout();
@@ -399,8 +401,11 @@ export default function Canvas() {
if (hoveredTable.tableId < 0) return;
if (hoveredTable.field < 0) return;
if (
tables[linkingLine.startTableId].fields[linkingLine.startFieldId].type !==
tables[hoveredTable.tableId].fields[hoveredTable.field].type
!areFieldsCompatible(
database,
tables[linkingLine.startTableId].fields[linkingLine.startFieldId],
tables[hoveredTable.tableId].fields[hoveredTable.field],
)
) {
Toast.info(t("cannot_connect"));
return;

View File

@@ -299,6 +299,44 @@ export default function FieldDetails({ data, tid, index }) {
/>
</div>
)}
{databases[database].hasUnsignedTypes &&
dbToTypes[database][data.type].signed && (
<div className="flex justify-between items-center my-3">
<div className="font-medium">{t("Unsigned")}</div>
<Checkbox
value="unsigned"
checked={data.unsigned}
onChange={(checkedValues) => {
setUndoStack((prev) => [
...prev,
{
action: Action.EDIT,
element: ObjectType.TABLE,
component: "field",
tid: tid,
fid: index,
undo: {
[checkedValues.target.value]:
!checkedValues.target.checked,
},
redo: {
[checkedValues.target.value]:
checkedValues.target.checked,
},
message: t("edit_table", {
tableName: tables[tid].name,
extra: "[field]",
}),
},
]);
setRedoStack([]);
updateField(tid, index, {
unsigned: checkedValues.target.checked,
});
}}
/>
</div>
)}
<div className="font-semibold">{t("comment")}</div>
<TextArea
className="my-2"