From d837dd38bfb2d22dd6b19c602ae9f038752ffed7 Mon Sep 17 00:00:00 2001 From: rosemariejebbjtxbfp Date: Wed, 24 Jun 2026 05:00:31 +0000 Subject: [PATCH] =?UTF-8?q?feat(public-frontend):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E6=88=91=E4=BB=AC=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- public-frontend/src/App.tsx | 14 ++- public-frontend/src/components/Contact.tsx | 113 +++++++++++++++++++++ 2 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 public-frontend/src/components/Contact.tsx diff --git a/public-frontend/src/App.tsx b/public-frontend/src/App.tsx index 18d09ea..6cd4794 100644 --- a/public-frontend/src/App.tsx +++ b/public-frontend/src/App.tsx @@ -1,10 +1,11 @@ import { useEffect, useState } from "react"; -import { Boxes, Search, PlusCircle, Code2, KeyRound } from "lucide-react"; +import { Boxes, Search, PlusCircle, Code2, KeyRound, Headset } from "lucide-react"; import Home from "./components/Home"; import ProductView from "./components/ProductView"; import Contribute from "./components/Contribute"; import ApiDocs from "./components/ApiDocs"; import Account from "./components/Account"; +import Contact from "./components/Contact"; import { api } from "./api"; type View = @@ -12,13 +13,15 @@ type View = | { name: "product"; id: string } | { name: "contribute" } | { name: "api" } - | { name: "account" }; + | { name: "account" } + | { name: "contact" }; const NAV: { key: View["name"]; label: string; icon: typeof Search }[] = [ { key: "home", label: "检索", icon: Search }, { key: "contribute", label: "贡献档案", icon: PlusCircle }, { key: "api", label: "API", icon: Code2 }, { key: "account", label: "API 密钥", icon: KeyRound }, + { key: "contact", label: "联系我们", icon: Headset }, ]; export default function App() { @@ -88,6 +91,7 @@ export default function App() { )} {view.name === "api" && setView({ name: "account" })} />} {view.name === "account" && } + {view.name === "contact" && }