From e839a5f61f0faa21ca8b4bd5767f7575d5e576ee Mon Sep 17 00:00:00 2001 From: polwex Date: Wed, 21 May 2025 14:00:28 +0700 Subject: the card flip animation is legit --- src/pages/index.tsx | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 3 deletions(-) (limited to 'src/pages/index.tsx') diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 82ffd99..48fa46e 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,13 +1,62 @@ import { Link } from "waku"; -import { Counter } from "../components/counter"; +import { Progress } from "@/components/ui/progress"; import { getContextData } from "waku/middleware/context"; -import Main from "../components/Main"; + +type LanguageChoice = "th" | "en" | "zh" | "ja" | "es" | "fr"; +type LangMeta = { flag: string; name: string }; +const langs: Record = { + th: { flag: "🇹🇭", name: "Thai" }, + en: { flag: "🇬🇧", name: "English" }, + zh: { flag: "🇨🇳", name: "Chinese" }, + ja: { flag: "🇯🇵", name: "Japanese" }, + es: { flag: "🇪🇸", name: "Spanish" }, + fr: { flag: "🇫🇷", name: "French" }, +}; export default async function HomePage() { const { user } = getContextData(); - return
; + return ( +
+
+
+
+
+

Prosody

+
+ + {/* Desktop Navigation */} + +
+
+ + {/* Mobile Navigation */} +
+
+

Your Languages

+ + + + +
+
+ ); } const getData = async () => { @@ -25,3 +74,54 @@ export const getConfig = async () => { render: "dynamic", } as const; }; + +async function LanguageItem({ lang }: { lang: LanguageChoice }) { + return ( + +
+
+
+
{langs[lang].flag}
+
{langs[lang].name}
+
+ +
+
+ + ); +} +{ + /* Language Cards */ +} +//
+// {languages.slice(0, 3).map((lang) => ( +//
+//
+//
+//
+// {lang.flag} +//

{lang.name}

+//
+// +// Beginner +// +//
+//
+//
+//
+//
+//
40% Complete
+//
+// +//
+//
+// ))} +//
; -- cgit v1.2.3