From 28e7de6ceb25a0545d3370b29779a78cb7eb48d9 Mon Sep 17 00:00:00 2001 From: tisonhuang Date: Wed, 4 Mar 2026 19:55:15 +0800 Subject: [PATCH] fix(chat): portalize standalone jump calendar to avoid translucent compositing --- src/components/JumpToDatePopover.tsx | 7 +- src/pages/ChatPage.tsx | 102 +++++++++++++++++++++++---- 2 files changed, 95 insertions(+), 14 deletions(-) diff --git a/src/components/JumpToDatePopover.tsx b/src/components/JumpToDatePopover.tsx index 36e9c39..0a21929 100644 --- a/src/components/JumpToDatePopover.tsx +++ b/src/components/JumpToDatePopover.tsx @@ -6,6 +6,8 @@ interface JumpToDatePopoverProps { isOpen: boolean onClose: () => void onSelect: (date: Date) => void + className?: string + style?: React.CSSProperties currentDate?: Date messageDates?: Set hasLoadedMessageDates?: boolean @@ -18,6 +20,8 @@ const JumpToDatePopover: React.FC = ({ isOpen, onClose, onSelect, + className, + style, currentDate = new Date(), messageDates, hasLoadedMessageDates = false, @@ -107,9 +111,10 @@ const JumpToDatePopover: React.FC = ({ const weekdays = ['日', '一', '二', '三', '四', '五', '六'] const days = generateCalendar() + const mergedClassName = ['jump-date-popover', className || ''].join(' ').trim() return ( -
+
- setShowJumpPopover(false)} - onSelect={handleJumpDateSelect} - messageDates={messageDates} - hasLoadedMessageDates={hasLoadedMessageDates} - messageDateCounts={messageDateCounts} - loadingDates={loadingDates} - loadingDateCounts={loadingDateCounts} - /> + {!standaloneSessionWindow && ( + setShowJumpPopover(false)} + onSelect={handleJumpDateSelect} + messageDates={messageDates} + hasLoadedMessageDates={hasLoadedMessageDates} + messageDateCounts={messageDateCounts} + loadingDates={loadingDates} + loadingDateCounts={loadingDateCounts} + /> + )}
+ {standaloneSessionWindow && showJumpPopover && createPortal( +
+ setShowJumpPopover(false)} + onSelect={handleJumpDateSelect} + messageDates={messageDates} + hasLoadedMessageDates={hasLoadedMessageDates} + messageDateCounts={messageDateCounts} + loadingDates={loadingDates} + loadingDateCounts={loadingDateCounts} + style={{ position: 'static', top: 'auto', right: 'auto' }} + /> +
, + document.body + )}