From 3f0733a54014b91a9daa7139884a1115b09a6629 Mon Sep 17 00:00:00 2001 From: xiongxiao Date: Thu, 19 Mar 2026 02:17:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84workspaces?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2UI=EF=BC=8C=E4=BD=BF=E7=94=A8=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=8C=96=E8=AE=BE=E8=AE=A1=E5=92=8CTailwind=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workspaces/components/CreateDialog.tsx | 105 ++++ .../workspaces/components/EditDialog.tsx | 117 ++++ src/pages/workspaces/components/TagInput.tsx | 53 ++ src/pages/workspaces/components/index.ts | 3 + src/pages/workspaces/page.tsx | 579 +++--------------- src/pages/workspaces/store/index.ts | 12 +- 6 files changed, 355 insertions(+), 514 deletions(-) create mode 100644 src/pages/workspaces/components/CreateDialog.tsx create mode 100644 src/pages/workspaces/components/EditDialog.tsx create mode 100644 src/pages/workspaces/components/TagInput.tsx create mode 100644 src/pages/workspaces/components/index.ts diff --git a/src/pages/workspaces/components/CreateDialog.tsx b/src/pages/workspaces/components/CreateDialog.tsx new file mode 100644 index 0000000..1c3ecd7 --- /dev/null +++ b/src/pages/workspaces/components/CreateDialog.tsx @@ -0,0 +1,105 @@ +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Textarea } from "@/components/ui/textarea"; +import { TagInput } from "./TagInput"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; + +export function CreateDialog({ open, onClose, onSubmit }: { + open: boolean; + onClose: () => void; + onSubmit: (data: { title: string, tags?: string[], link?: string, summary?: string, description?: string }) => Promise; +}) { + const [title, setTitle] = useState(''); + const [tags, setTags] = useState([]); + const [link, setLink] = useState(''); + const [summary, setSummary] = useState(''); + const [description, setDescription] = useState(''); + const [submitting, setSubmitting] = useState(false); + + const handleSubmit = async () => { + if (!title.trim()) { + alert('请输入标题'); + return; + } + setSubmitting(true); + try { + await onSubmit({ + title: title.trim(), + tags, + link: link.trim(), + summary: summary.trim(), + description: description.trim(), + }); + } finally { + setSubmitting(false); + } + }; + + return ( + !open && onClose()}> + + + 创建Workspace + 填写以下信息创建一个新的Workspace + +
+
+ + setTitle(e.target.value)} + placeholder="请输入标题" + /> +
+
+ + +
+
+ + setLink(e.target.value)} + placeholder="https://..." + /> +
+
+ + setSummary(e.target.value)} + placeholder="简要描述" + /> +
+
+ +