From 6e89c88bd36123581e5c474fb8d773b5296a65c2 Mon Sep 17 00:00:00 2001
From: Your Name
Date: Wed, 4 Mar 2026 01:22:19 +0800
Subject: [PATCH] feat: move canvas banner above chat input
---
components/canvas/CanvasChatPanel.tsx | 51 +++++++++++++++------------
1 file changed, 28 insertions(+), 23 deletions(-)
diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx
index 43bca9e08..484fea4d3 100644
--- a/components/canvas/CanvasChatPanel.tsx
+++ b/components/canvas/CanvasChatPanel.tsx
@@ -2311,6 +2311,10 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
}, []);
const totalGeneratedImages = Number(userImageStats?.totalImages ?? NaN);
const aiDetailGenerationEnabled = siteSettings?.aiDetailGenerationEnabled === true;
+ const shouldShowCanvasBanner =
+ !isDetailGenerationMode &&
+ (siteSettings?.bannerEnabled ?? true) &&
+ Boolean(siteSettings?.bannerText || "升级会员, Nano Banana Pro 免费365天!");
const canvasSkillTagsEnabled = canvasSkillTagsData?.enabled !== false;
const canvasSkillTagsTitle =
String(canvasSkillTagsData?.title || "").trim() || DEFAULT_CANVAS_SKILL_TAGS_TITLE;
@@ -6366,29 +6370,6 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
- {/* Banner - 从系统设置中获取 */}
- {(siteSettings?.bannerEnabled ?? true) && (siteSettings?.bannerText || "升级会员, Nano Banana Pro 免费365天!") && (
- {
- if (siteSettings?.bannerLink) {
- window.open(siteSettings.bannerLink, '_blank');
- }
- }}
- >
-
-
-
-
-
{siteSettings?.bannerText || "升级会员, Nano Banana Pro 免费365天!"}
-
-
e.stopPropagation()} />
-
- )}
-
{canvasSkillTags.length > 0 && (
@@ -6957,6 +6938,30 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
,
document.body
)}
+
+ {renderableVisibleMessages.length === 0 && shouldShowCanvasBanner ? (
+
+
{
+ if (siteSettings?.bannerLink) {
+ window.open(siteSettings.bannerLink, "_blank");
+ }
+ }}
+ >
+
+
+
+
+
{siteSettings?.bannerText || "升级会员, Nano Banana Pro 免费365天!"}
+
+
e.stopPropagation()} />
+
+
+ ) : null}
{/* 底部输入区域 - 混合输入(图片标签+文字可自由混合) */}