import { useEffect } from "react";
import logo_light from "../assets/logo_light_160.png";
import template_screenshot from "../assets/template_screenshot.png"
import { Link } from "react-router-dom";
import { Tabs, TabPane, Banner, Steps } from "@douyinfe/semi-ui";
import { IconDeleteStroked } from "@douyinfe/semi-icons";
import { db } from "../data/db";
import { useLiveQuery } from "dexie-react-hooks";
import { calcPath } from "../utils";
function Thumbnail({ diagram, i }) {
const zoom = 0.3;
return (
{diagram.subjectAreas?.map((a) => (
0 ? a.width * zoom : 0}
height={a.height > 0 ? a.height * zoom : 0}
>
{a.name}
))}
{diagram.tables?.map((table, i) => {
const height = table.fields.length * 36 + 50 + 7;
return (
{table.name}
{table.fields.map((f, j) => (
))}
);
})}
{diagram.relationships?.map((e, i) => (
))}
{diagram.notes?.map((n) => {
const x = n.x * zoom;
const y = n.y * zoom;
const w = 180 * zoom;
const r = 3 * zoom;
const fold = 24 * zoom;
const h = n.height * zoom;
return (
);
})}
);
}
export default function Templates() {
const defaultTemplates = useLiveQuery(() =>
db.templates.where({ custom: 0 }).toArray()
);
const customTemplates = useLiveQuery(() =>
db.templates.where({ custom: 1 }).toArray()
);
const deleteTemplate = async (id) => {
await db.templates.delete(id);
};
const editTemplate = (id) => {
const newWindow = window.open("/editor", "_blank");
newWindow.name = "t " + id;
};
const forkTemplate = (id) => {
const newWindow = window.open("/editor", "_blank");
newWindow.name = "lt " + id;
};
useEffect(() => {
document.title = "Templates | drawDB";
}, []);
return (
Templates
Database schema templates
A compilation of database entity relationship diagrams to give you
a quick start or inspire your application's architecture.
Default templates}
itemKey="1"
>
{defaultTemplates?.map((t, i) => (
{t.title}
forkTemplate(t.id)}
>
{t.description}
))}
Your templates}
itemKey="2"
>
{
customTemplates?.length > 0 ?
{customTemplates?.map((c, i) => (
{c.title}
forkTemplate(c.id)}
>
editTemplate(c.id)}
>
Edit
deleteTemplate(c.id)}
>
Delete
))}
:
You have no custom templates saved.
}
/>
}
© 2024 drawDB - All right reserved.
);
}