"use client"; import { Loader2, Trash2, ChevronDown } from "lucide-react"; import { Dropdown, Image } from "antd"; import { EyeOutlined } from "@ant-design/icons"; import { useImageStoryServiceHook } from "@/app/service/Interaction/ImageStoryService"; /** * 图片故事模式组件 * 显示图片预览、分析状态和故事类型选择器 * 使用ImageStoryService hook管理状态和业务逻辑 */ export function PhotoStoryMode() { // 使用图片故事服务hook const { activeImageUrl, selectedCategory, isAnalyzing, isUploading, storyTypeOptions, updateStoryType, resetImageStory, } = useImageStoryServiceHook(); return (
{/* 左侧:图片预览区域和分析状态指示器 */}
{/* 图片预览区域 - 使用Ant Design Image组件 */}
{activeImageUrl && ( Story inspiration ), maskClassName: "flex items-center justify-center bg-black/50 hover:bg-black/70 transition-colors", }} /> )}
{/* 删除图片按钮 - 简洁样式 */} {activeImageUrl && ( )} {/* 分析状态指示器 */} {isAnalyzing && (
{isUploading ? "Uploading image..." : "Analyzing image..."}
)}
{/* 右侧:故事类型选择器 */} {activeImageUrl && ( ({ key: type.key, label: (
{type.label}
), })), onClick: ({ key }) => updateStoryType(key), }} trigger={["click"]} placement="bottomRight" >
)}
); }