drawDB/src/pages/LandingPage.jsx

68 lines
2.7 KiB
React
Raw Normal View History

2023-12-16 11:39:13 +08:00
import { useState, useEffect } from "react";
2023-09-19 20:47:04 +08:00
import { Link } from "react-router-dom";
2023-09-19 20:51:40 +08:00
import { IconCrossStroked } from "@douyinfe/semi-icons";
2024-01-18 10:24:38 +08:00
import SimpleCanvas from "../components/SimpleCanvas"
2023-10-24 18:04:33 +08:00
import Navbar from "../components/Navbar";
2024-01-18 10:24:38 +08:00
import { diagram } from "../data/heroDiagram"
2024-01-18 15:21:30 +08:00
import Reveal from "../animations/Reveal";
2023-09-19 20:47:04 +08:00
export default function LandingPage() {
2023-09-19 20:51:40 +08:00
const [showSurvey, setShowSurvey] = useState(true);
2023-10-24 18:04:33 +08:00
useEffect(() => {
document.body.setAttribute("theme-mode", "light");
document.title =
"drawDB | Online database diagram editor and SQL generator";
});
2023-09-30 15:12:09 +08:00
2023-09-19 20:47:04 +08:00
return (
<div>
2024-01-18 10:24:38 +08:00
<div className="flex flex-col h-screen">
{showSurvey && (
<div className="text-white font-semibold py-1.5 px-4 text-sm text-center bg-gradient-to-r from-slate-700 from-10% via-slate-500 to-slate-700">
<Link to="/survey" className="hover:underline">
Help us improve! Share your feedback.
</Link>
<div className="float-right">
<button onClick={() => setShowSurvey(false)}>
<IconCrossStroked size="small" />
</button>
</div>
</div>
)}
<Navbar />
<div className="flex-1 flex-col relative">
<div className="h-full">
<SimpleCanvas diagram={diagram} zoom={0.85} />
</div>
<div className="absolute left-0 top-[50%] translate-y-[-50%] p-8 text-zinc-800 text-center">
2024-01-18 15:21:30 +08:00
<Reveal>
<div className="text-4xl font-bold tracking-wide">
<h1 className="py-1 bg-gradient-to-r from-slate-700 from-10% via-slate-500 to-slate-700 inline-block text-transparent bg-clip-text">
Draw, Copy, and Paste
</h1>
</div>
<div className="text-lg font-semibold mt-3">
Free, simple, and intuitive database design tool and SQL generator.
</div>
</Reveal>
2024-01-18 10:24:38 +08:00
<div className="mt-4 flex gap-4 justify-center font-semibold">
2024-01-18 15:21:30 +08:00
<button className="bg-white shadow-lg px-9 py-2 rounded border border-zinc-200 hover:bg-zinc-100 transition-all duration-200" onClick={() => document
.getElementById("learn-more")
.scrollIntoView({ behavior: "smooth" })}>
2024-01-18 10:24:38 +08:00
Learn more
</button>
2024-01-18 15:21:30 +08:00
<Link to="/editor" className="bg-slate-700 text-white px-4 py-2 rounded shadow-lg hover:bg-slate-600 transition-all duration-200">
2024-01-18 10:24:38 +08:00
Try it for yourself
</Link>
</div>
2023-09-19 20:51:40 +08:00
</div>
</div>
2024-01-18 10:24:38 +08:00
</div>
2024-01-18 15:21:30 +08:00
<div id="learn-more">
more stuff
</div>
2023-09-19 20:47:04 +08:00
</div>
);
}