"use client"; import { ArrowRight } from "lucide-react"; import { type ReactNode, useEffect, useState } from "react"; import { App, Button, Image, Tag } from "antd"; import { fetchPrompts, type Prompt } from "@/services/api/prompts"; import { navigationTools } from "@/lib/navigation-tools"; import { cn } from "@/lib/utils"; function Highlighter({ action, color, children, }: { action: "highlight" | "underline"; color: string; children: ReactNode; }) { return ( {action === "highlight" ? ( ) : ( )} {children} ); } export default function IndexPage() { const { message } = App.useApp(); const [primaryTool] = navigationTools; const [promptShowcase, setPromptShowcase] = useState([]); const [previewIndex, setPreviewIndex] = useState(0); const [previewOpen, setPreviewOpen] = useState(false); useEffect(() => { void fetchPrompts({ pageSize: 12 }).then((data) => setPromptShowcase(data.items)).catch((error) => message.error(error instanceof Error ? error.message : "获取提示词失败")); }, [message]); return ( 无限画布 在无限画布中生成、连接和重组图片、文字与图形,让创作从单次生成变成连续推演。 } iconPlacement="end"> 开始使用 打开画布 沉淀每一次好结果 收藏稳定出图的提示词、参考风格和结果图片,让下一次创作从已有经验开始。 } iconPlacement="end"> 查看提示词库 {promptShowcase.map((item, index) => ( { setPreviewIndex(index); setPreviewOpen(true); }} className={cn( "group relative cursor-pointer overflow-hidden border border-stone-200 bg-stone-100 text-left dark:border-stone-800 dark:bg-stone-900", index === 0 && "md:col-span-2 md:row-span-2", index === 3 && "md:col-span-2", )} > {item.tags.slice(0, 2).map((tag) => ( {tag} ))} {item.title} {item.prompt} ))} {promptShowcase.map((item) => )} ); }
在无限画布中生成、连接和重组图片、文字与图形,让创作从单次生成变成连续推演。
收藏稳定出图的提示词、参考风格和结果图片,让下一次创作从已有经验开始。
{item.prompt}