mirror of
https://github.com/drawdb-io/drawdb.git
synced 2026-06-01 02:00:44 +08:00
Configure i18n and add simplified chinese (#99)
This commit is contained in:
@@ -3,10 +3,13 @@ import { Action, ObjectType, defaultBlue } from "../data/constants";
|
||||
import useUndoRedo from "../hooks/useUndoRedo";
|
||||
import useTransform from "../hooks/useTransform";
|
||||
import useSelect from "../hooks/useSelect";
|
||||
import { Toast } from "@douyinfe/semi-ui";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export const AreasContext = createContext(null);
|
||||
|
||||
export default function AreasContextProvider({ children }) {
|
||||
const { t } = useTranslation();
|
||||
const [areas, setAreas] = useState([]);
|
||||
const { transform } = useTransform();
|
||||
const { selectedElement, setSelectedElement } = useSelect();
|
||||
@@ -39,7 +42,7 @@ export default function AreasContextProvider({ children }) {
|
||||
{
|
||||
action: Action.ADD,
|
||||
element: ObjectType.AREA,
|
||||
message: `Add new subject area`,
|
||||
message: t("add_area"),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -48,19 +51,20 @@ export default function AreasContextProvider({ children }) {
|
||||
|
||||
const deleteArea = (id, addToHistory = true) => {
|
||||
if (addToHistory) {
|
||||
Toast.success(t("area_deleted"));
|
||||
setUndoStack((prev) => [
|
||||
...prev,
|
||||
{
|
||||
action: Action.DELETE,
|
||||
element: ObjectType.AREA,
|
||||
data: areas[id],
|
||||
message: `Delete subject area`,
|
||||
message: t("delete_area", areas[id].name),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
}
|
||||
setAreas((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 })),
|
||||
);
|
||||
if (id === selectedElement.id) {
|
||||
setSelectedElement((prev) => ({
|
||||
@@ -82,7 +86,7 @@ export default function AreasContextProvider({ children }) {
|
||||
};
|
||||
}
|
||||
return t;
|
||||
})
|
||||
}),
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -3,10 +3,13 @@ import useTransform from "../hooks/useTransform";
|
||||
import { Action, ObjectType, defaultNoteTheme } from "../data/constants";
|
||||
import useUndoRedo from "../hooks/useUndoRedo";
|
||||
import useSelect from "../hooks/useSelect";
|
||||
import { Toast } from "@douyinfe/semi-ui";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export const NotesContext = createContext(null);
|
||||
|
||||
export default function NotesContextProvider({ children }) {
|
||||
const { t } = useTranslation();
|
||||
const [notes, setNotes] = useState([]);
|
||||
const { transform } = useTransform();
|
||||
const { setUndoStack, setRedoStack } = useUndoRedo();
|
||||
@@ -39,7 +42,7 @@ export default function NotesContextProvider({ children }) {
|
||||
{
|
||||
action: Action.ADD,
|
||||
element: ObjectType.NOTE,
|
||||
message: `Add new note`,
|
||||
message: t("add_note"),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -48,19 +51,20 @@ export default function NotesContextProvider({ children }) {
|
||||
|
||||
const deleteNote = (id, addToHistory = true) => {
|
||||
if (addToHistory) {
|
||||
Toast.success(t("note_deleted"));
|
||||
setUndoStack((prev) => [
|
||||
...prev,
|
||||
{
|
||||
action: Action.DELETE,
|
||||
element: ObjectType.NOTE,
|
||||
data: notes[id],
|
||||
message: `Delete note`,
|
||||
message: t("delete_note", { noteTitle: notes[id].title }),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
}
|
||||
setNotes((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 })),
|
||||
);
|
||||
if (id === selectedElement.id) {
|
||||
setSelectedElement((prev) => ({
|
||||
@@ -82,7 +86,7 @@ export default function NotesContextProvider({ children }) {
|
||||
};
|
||||
}
|
||||
return t;
|
||||
})
|
||||
}),
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -3,10 +3,13 @@ import { Action, ObjectType, defaultBlue } from "../data/constants";
|
||||
import useTransform from "../hooks/useTransform";
|
||||
import useUndoRedo from "../hooks/useUndoRedo";
|
||||
import useSelect from "../hooks/useSelect";
|
||||
import { Toast } from "@douyinfe/semi-ui";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export const TablesContext = createContext(null);
|
||||
|
||||
export default function TablesContextProvider({ children }) {
|
||||
const { t } = useTranslation();
|
||||
const [tables, setTables] = useState([]);
|
||||
const [relationships, setRelationships] = useState([]);
|
||||
const { transform } = useTransform();
|
||||
@@ -55,7 +58,7 @@ export default function TablesContextProvider({ children }) {
|
||||
{
|
||||
action: Action.ADD,
|
||||
element: ObjectType.TABLE,
|
||||
message: `Add new table`,
|
||||
message: t("add_table"),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -64,13 +67,14 @@ export default function TablesContextProvider({ children }) {
|
||||
|
||||
const deleteTable = (id, addToHistory = true) => {
|
||||
if (addToHistory) {
|
||||
Toast.success(t("table_deleted"));
|
||||
setUndoStack((prev) => [
|
||||
...prev,
|
||||
{
|
||||
action: Action.DELETE,
|
||||
element: ObjectType.TABLE,
|
||||
data: tables[id],
|
||||
message: `Delete table`,
|
||||
message: t("delete_table", { tableName: tables[id] }),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -106,7 +110,7 @@ export default function TablesContextProvider({ children }) {
|
||||
|
||||
const updateTable = (id, updatedValues) => {
|
||||
setTables((prev) =>
|
||||
prev.map((t) => (t.id === id ? { ...t, ...updatedValues } : t))
|
||||
prev.map((t) => (t.id === id ? { ...t, ...updatedValues } : t)),
|
||||
);
|
||||
};
|
||||
|
||||
@@ -117,12 +121,12 @@ export default function TablesContextProvider({ children }) {
|
||||
return {
|
||||
...table,
|
||||
fields: table.fields.map((field, j) =>
|
||||
fid === j ? { ...field, ...updatedValues } : field
|
||||
fid === j ? { ...field, ...updatedValues } : field,
|
||||
),
|
||||
};
|
||||
}
|
||||
return table;
|
||||
})
|
||||
}),
|
||||
);
|
||||
};
|
||||
|
||||
@@ -135,7 +139,10 @@ export default function TablesContextProvider({ children }) {
|
||||
component: "field_delete",
|
||||
tid: tid,
|
||||
data: field,
|
||||
message: `Delete field`,
|
||||
message: t("edit_table", {
|
||||
tableName: tables[tid].name,
|
||||
extra: "[delete field]",
|
||||
}),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -146,9 +153,9 @@ export default function TablesContextProvider({ children }) {
|
||||
!(
|
||||
(e.startTableId === tid && e.startFieldId === field.id) ||
|
||||
(e.endTableId === tid && e.endFieldId === field.id)
|
||||
)
|
||||
),
|
||||
)
|
||||
.map((e, i) => ({ ...e, id: i }))
|
||||
.map((e, i) => ({ ...e, id: i })),
|
||||
);
|
||||
setRelationships((prev) => {
|
||||
return prev.map((e) => {
|
||||
@@ -185,7 +192,7 @@ export default function TablesContextProvider({ children }) {
|
||||
action: Action.ADD,
|
||||
element: ObjectType.RELATIONSHIP,
|
||||
data: data,
|
||||
message: `Add new relationship`,
|
||||
message: t("add_relationship"),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -208,13 +215,15 @@ export default function TablesContextProvider({ children }) {
|
||||
action: Action.DELETE,
|
||||
element: ObjectType.RELATIONSHIP,
|
||||
data: relationships[id],
|
||||
message: `Delete relationship`,
|
||||
message: t("delete_relationship", {
|
||||
refName: relationships[id].name,
|
||||
}),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
}
|
||||
setRelationships((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 })),
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { createContext, useState } from "react";
|
||||
import { Action, ObjectType } from "../data/constants";
|
||||
import useUndoRedo from "../hooks/useUndoRedo";
|
||||
import { Toast } from "@douyinfe/semi-ui";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export const TypesContext = createContext(null);
|
||||
|
||||
export default function TypesContextProvider({ children }) {
|
||||
const { t } = useTranslation();
|
||||
const [types, setTypes] = useState([]);
|
||||
const { setUndoStack, setRedoStack } = useUndoRedo();
|
||||
|
||||
@@ -31,7 +34,7 @@ export default function TypesContextProvider({ children }) {
|
||||
{
|
||||
action: Action.ADD,
|
||||
element: ObjectType.TYPE,
|
||||
message: `Add new type`,
|
||||
message: t("add_type"),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -40,6 +43,7 @@ export default function TypesContextProvider({ children }) {
|
||||
|
||||
const deleteType = (id, addToHistory = true) => {
|
||||
if (addToHistory) {
|
||||
Toast.success(t("type_deleted"));
|
||||
setUndoStack((prev) => [
|
||||
...prev,
|
||||
{
|
||||
@@ -47,7 +51,9 @@ export default function TypesContextProvider({ children }) {
|
||||
element: ObjectType.TYPE,
|
||||
id: id,
|
||||
data: types[id],
|
||||
message: `Delete type`,
|
||||
message: t("delete_type", {
|
||||
typeName: types[id].name,
|
||||
}),
|
||||
},
|
||||
]);
|
||||
setRedoStack([]);
|
||||
@@ -57,7 +63,7 @@ export default function TypesContextProvider({ children }) {
|
||||
|
||||
const updateType = (id, values) => {
|
||||
setTypes((prev) =>
|
||||
prev.map((e, i) => (i === id ? { ...e, ...values } : e))
|
||||
prev.map((e, i) => (i === id ? { ...e, ...values } : e)),
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user