From 71e43783255d7dae420520b22f782aa5ad844585 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 31 May 2026 21:01:29 +0200 Subject: [PATCH] add feature component and make routes thin --- src/components/Feature.tsx | 17 ++++++++++++ src/pages/chessboard.tsx | 9 ++++++ src/pages/contact.tsx | 3 ++ src/pages/index.tsx | 57 ++++++++++++++++++++++++++++++++++++++ src/routes/chessboard.tsx | 11 ++++---- src/routes/contact.tsx | 11 ++++---- src/routes/index.tsx | 22 ++------------- 7 files changed, 100 insertions(+), 30 deletions(-) create mode 100644 src/components/Feature.tsx create mode 100644 src/pages/chessboard.tsx create mode 100644 src/pages/contact.tsx create mode 100644 src/pages/index.tsx diff --git a/src/components/Feature.tsx b/src/components/Feature.tsx new file mode 100644 index 0000000..2998083 --- /dev/null +++ b/src/components/Feature.tsx @@ -0,0 +1,17 @@ +import type { ReactNode } from "react"; + +interface IProps { + title: string; + children?: ReactNode; +} + +const Feature = ({ title, children }: IProps) => ( +
+
{title}
+

+ {children} +

+
+); + +export default Feature; diff --git a/src/pages/chessboard.tsx b/src/pages/chessboard.tsx new file mode 100644 index 0000000..3ba6b3d --- /dev/null +++ b/src/pages/chessboard.tsx @@ -0,0 +1,9 @@ +import Section from "#/components/Section.tsx"; + +const Chessboard = () => ( +
+

section content

+
+); + +export default Chessboard; diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx new file mode 100644 index 0000000..179f73e --- /dev/null +++ b/src/pages/contact.tsx @@ -0,0 +1,3 @@ +const Contact = () =>
Hello "/contact"!
; + +export default Contact; diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..35478a7 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,57 @@ +import { Link } from "@tanstack/react-router"; +import Feature from "#/components/Feature.tsx"; +import Section from "#/components/Section.tsx"; + +const Home = () => ( +
+
+
+

Convert your Chess PGN

+

+ into a Publishable PDF. +

+

+ Upload and convert your games into a book format, along with variation + and annotations. +

+ + Get Started + +
+
+

example pdfs

+
+
+
+ + Quick PDF generation using a custom TeX Live server. + + + + Upload a PGN of your game, and choose the diagrams you want in your PDF. + Annotations are added automatically. + + + + Dedicated servers ensure that downtime is kept to a minimum. + +
+ +
+

section content

+
+
+); + +export default Home; diff --git a/src/routes/chessboard.tsx b/src/routes/chessboard.tsx index 23627f4..97b3945 100644 --- a/src/routes/chessboard.tsx +++ b/src/routes/chessboard.tsx @@ -1,9 +1,10 @@ -import { createFileRoute } from '@tanstack/react-router' +import { createFileRoute } from "@tanstack/react-router"; +import Chessboard from "#/pages/chessboard.tsx"; -export const Route = createFileRoute('/chessboard')({ - component: RouteComponent, -}) +export const Route = createFileRoute("/chessboard")({ + component: RouteComponent, +}); function RouteComponent() { - return
Hello "/chessboard"!
+ return ; } diff --git a/src/routes/contact.tsx b/src/routes/contact.tsx index dae9092..133dfac 100644 --- a/src/routes/contact.tsx +++ b/src/routes/contact.tsx @@ -1,9 +1,10 @@ -import { createFileRoute } from '@tanstack/react-router' +import { createFileRoute } from "@tanstack/react-router"; +import Contact from "#/pages/contact.tsx"; -export const Route = createFileRoute('/contact')({ - component: RouteComponent, -}) +export const Route = createFileRoute("/contact")({ + component: RouteComponent, +}); function RouteComponent() { - return
Hello "/contact"!
+ return ; } diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 3b9359c..8b8bcda 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -1,26 +1,8 @@ import { createFileRoute } from "@tanstack/react-router"; -import Section from "#/components/Section.tsx"; +import Home from "#/pages"; export const Route = createFileRoute("/")({ component: App }); function App() { - return ( -
-
-

section content

-
- -
-

section content

-
-
- ); + return ; }