diff --git a/src/components/ControlPanel.jsx b/src/components/ControlPanel.jsx
index 12e324e..5f8670b 100644
--- a/src/components/ControlPanel.jsx
+++ b/src/components/ControlPanel.jsx
@@ -10,7 +10,6 @@ import {
IconRedo,
IconRowsStroked,
IconEdit,
- IconPlus,
} from "@douyinfe/semi-icons";
import { Link } from "react-router-dom";
import icon from "../assets/icon_dark_64.png";
@@ -71,6 +70,7 @@ import { db } from "../data/db";
import { useLiveQuery } from "dexie-react-hooks";
import { Parser } from "node-sql-parser";
import Todo from "./Todo";
+import { Thumbnail } from "./Thumbnail";
export default function ControlPanel({
diagramId,
@@ -81,6 +81,7 @@ export default function ControlPanel({
setState,
lastSaved,
}) {
+ const defaultTemplates = useLiveQuery(() => db.templates.toArray());
const MODAL = {
NONE: 0,
IMG: 1,
@@ -1012,7 +1013,7 @@ export default function ControlPanel({
},
},
{
- "MSSQL": () => {
+ MSSQL: () => {
setVisible(MODAL.CODE);
const src = jsonToSQLServer({
tables: tables,
@@ -1256,7 +1257,7 @@ export default function ControlPanel({
case MODAL.SAVEAS:
return "Save as";
case MODAL.NEW:
- return "New diagram";
+ return "Create new diagram";
default:
return "";
}
@@ -1820,32 +1821,28 @@ export default function ControlPanel({
const newModalBody = () => (
-
+
setSelectedTemplateId(0)}>
setSelectedTemplateId(0)}
+ className={`rounded-md h-[180px] border-2 hover:border-dashed ${
+ selectedTemplateId === 0 ? "border-blue-400" : "border-zinc-100"
+ }`}
>
-
+
Blank
- {[1, 2, 3, 4, 5, 6, 7, 8].map((i) => (
-
+ {defaultTemplates.map((temp, i) => (
+
setSelectedTemplateId(temp.id)}>
setSelectedTemplateId(i)}
+ className={`rounded-md h-[180px] border-2 hover:border-dashed ${
+ selectedTemplateId === temp.id
+ ? "border-blue-400"
+ : "border-zinc-100"
+ }`}
>
- +
+
-
Template {i}
+
{temp.title}
))}
@@ -2021,7 +2018,7 @@ export default function ControlPanel({
(visible === MODAL.IMPORT_SRC && data.src === ""),
}}
cancelText="Cancel"
- width={600}
+ width={visible === MODAL.NEW ? 740 : 600}
>
{getModalBody()}
diff --git a/src/components/Thumbnail.jsx b/src/components/Thumbnail.jsx
new file mode 100644
index 0000000..60a8f0c
--- /dev/null
+++ b/src/components/Thumbnail.jsx
@@ -0,0 +1,178 @@
+import { calcPath } from "../utils";
+
+export function Thumbnail({ diagram, i, zoom }) {
+ const translateX = 32 * zoom;
+ const translateY = 32 * zoom;
+ const theme = localStorage.getItem("theme");
+ return (
+
+ );
+}