diff --git a/components/home/lovart-home.tsx b/components/home/lovart-home.tsx index a335a77df..1b292c9ec 100644 --- a/components/home/lovart-home.tsx +++ b/components/home/lovart-home.tsx @@ -17,7 +17,6 @@ import { Clapperboard, Edit, Folder, - Heart, Home, ImageIcon, Info, @@ -33,7 +32,6 @@ import { Sparkles, Star, Sun, - Trash2, Upload, User, Users, @@ -54,25 +52,25 @@ import { DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { HoverCard, HoverCardContent, HoverCardTrigger } from "@/components/ui/hover-card"; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; -import { ImageParamsBar, type ImageGenerationParams } from "@/components/image-params-bar"; +import type { ImageGenerationParams } from "@/components/image-params-bar"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger } from "@/components/ui/select"; -import { Textarea } from "@/components/ui/textarea"; import { cn, fetcher } from "@/lib/utils"; import { type CanvasLaunchAttachment, getCanvasLaunchStorageKey, } from "@/lib/canvas-launch"; import type { MembershipConfig } from "@/lib/membership/config"; -import { HomeAnimationEmbed } from "@/components/home/home-animation-embed"; -import { FloatingSidebarRail } from "@/components/home/floating-sidebar-shell"; import { fetchUploadWithRetry } from "@/lib/client/upload-with-retry"; import { normalizeLovartHomeSidebarConfig, type LovartHomeSidebarItemKey, } from "@/lib/home/lovart-sidebar-config"; import { BrandTopBar } from "@/components/layout/brand-top-bar"; +import { LovartFeaturedGallery } from "@/components/home/lovart/lovart-featured-gallery"; +import { LovartHeroComposer } from "@/components/home/lovart/lovart-hero-composer"; +import { LovartProjectsSection } from "@/components/home/lovart/lovart-projects-section"; +import { LovartSidebar } from "@/components/home/lovart/lovart-sidebar"; type ImageAnnotatorComponent = typeof import("@/components/image-annotator").ImageAnnotator; @@ -318,7 +316,6 @@ const LOVART_HOME_SIDEBAR_FALLBACK_ICONS: Record< type LovartPromptTagKey = (typeof PROMPT_TAGS)[number]["key"]; type LovartPromptTagVisibility = Record; -const MASONRY_HEIGHTS = [420, 290, 340, 470, 300, 360, 430, 320]; const FEATURED_PAGE_SIZE = 24; const COMPOSER_PREFIX_DEFAULT = "让Buyi-ai"; @@ -373,19 +370,6 @@ function getUserInitials(user: HomeUser | null) { return source.slice(0, 2).toLowerCase(); } -function formatRelativeTime(value?: string) { - if (!value) return "更新于今天"; - const date = new Date(value); - if (Number.isNaN(date.getTime())) return "更新于今天"; - const diffMs = Date.now() - date.getTime(); - const minute = 60 * 1000; - const hour = 60 * minute; - const day = 24 * hour; - if (diffMs < hour) return `更新于 ${Math.max(1, Math.round(diffMs / minute))} 分钟前`; - if (diffMs < day) return `更新于 ${Math.round(diffMs / hour)} 小时前`; - return `更新于 ${Math.round(diffMs / day)} 天前`; -} - function formatPrice(currency: string, value: number) { if (value <= 0) return "免费"; return `${currency}${value}`; @@ -1745,678 +1729,93 @@ export function LovartHome({ )} - + router.push("/gallery")} + onHome={() => { + setIsProjectsOnlyView(false); + window.scrollTo({ top: 0, behavior: "smooth" }); + }} + onImageEditor={handleOpenImageEditor} + onNavLink={openNavLink} + onNewCanvas={openNewCanvas} + onProfile={() => toast.info("个人主页模块后续开放")} + onRoute={(url) => router.push(url)} + onTutorial={handleOpenTutorial} + productPlanningEnabled={siteSettingsData?.productPlanningEnabled !== false} + renderIcon={renderLovartSidebarIcon} + settingsHref={ + user?.type === "admin" + ? "/settings" + : user?.type === "agent_admin" + ? "/settings/agent-workflow" + : null + } + toolbox1Enabled={siteSettingsData?.toolbox1Enabled !== false} + toolbox1Links={toolbox1Links} + toolbox2Enabled={siteSettingsData?.toolbox2Enabled === true} + toolbox2Links={toolbox2Links} + tutorialEnabled={Boolean(siteSettingsData?.tutorialEnabled)} + tutorialVideos={tutorialVideos} + videoCanvasEnabled={siteSettingsData?.videoCanvasEnabled !== false} + />
{!isProjectsOnlyView && ( -
- {isMembershipEnabled ? ( - - ) : ( -
- NEW - {heroPromoText || "现在升级,立享 Kling 3.0 与 Nano Banana Pro,最高 5 折优惠"} -
- )} - -
- {displayLogo ? ( - {siteName} - ) : ( -
- -
- )} -

- {heroTitleText || `${siteName || "Lovart"} 让设计更简单`} -

-
-

- {heroSubtitleText || "懂你的设计代理,帮你搞定一切"} -

- -
-