You've already forked Nano-Banana-AI-Image-Editor
添加了IFLOW描述文件;
优化 调整了历史记录悬浮窗的显示位置;
This commit is contained in:
36
src/App.tsx
36
src/App.tsx
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
||||
import { cn } from './utils/cn';
|
||||
import { Header } from './components/Header';
|
||||
@@ -23,6 +23,7 @@ function AppContent() {
|
||||
useKeyboardShortcuts();
|
||||
|
||||
const { showPromptPanel, setShowPromptPanel, setShowHistory } = useAppStore();
|
||||
const [hoveredImage, setHoveredImage] = useState<{url: string, title: string, width?: number, height?: number} | null>(null);
|
||||
|
||||
// 在挂载时初始化IndexedDB并清理base64数据
|
||||
useEffect(() => {
|
||||
@@ -78,7 +79,7 @@ function AppContent() {
|
||||
<Header />
|
||||
</div>
|
||||
|
||||
<div className="flex-1 flex overflow-hidden p-4 gap-4">
|
||||
<div className="flex-1 flex overflow-hidden p-4 gap-4 relative">
|
||||
<div className={cn("flex-shrink-0 transition-all duration-300 ease-in-out", !showPromptPanel && "w-8")}>
|
||||
<div className="h-full card card-lg">
|
||||
<PromptComposer />
|
||||
@@ -91,10 +92,39 @@ function AppContent() {
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<div className="h-full card card-lg">
|
||||
<HistoryPanel />
|
||||
<HistoryPanel setHoveredImage={setHoveredImage} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 悬浮预览 */}
|
||||
{hoveredImage && (
|
||||
<div
|
||||
className="fixed inset-0 z-[99999] flex items-center justify-center pointer-events-none"
|
||||
>
|
||||
<div className="bg-white rounded-xl shadow-2xl border border-gray-300 overflow-hidden max-w-2xl max-h-[80vh] flex flex-col">
|
||||
<div className="bg-gray-900 text-white text-sm p-3 truncate font-medium">
|
||||
{hoveredImage.title}
|
||||
</div>
|
||||
<div className="flex-1 flex items-center justify-center p-4">
|
||||
<img
|
||||
src={hoveredImage.url}
|
||||
alt="预览"
|
||||
className="max-w-full max-h-[60vh] object-contain"
|
||||
/>
|
||||
</div>
|
||||
{/* 图像信息 */}
|
||||
<div className="p-3 bg-gray-50 border-t border-gray-200 text-sm">
|
||||
{hoveredImage.width && hoveredImage.height && (
|
||||
<div className="flex justify-between text-gray-600">
|
||||
<span>尺寸:</span>
|
||||
<span className="text-gray-800 font-medium">{hoveredImage.width} × {hoveredImage.height}</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user