From 60c55faa302f2476d80112c1cd2fd8e372c883bc Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Fri, 30 May 2025 10:27:07 +0800 Subject: [PATCH] refactor(Scrollbar, Messages): clean up scrollbar component and styles - Removed unused 'right' prop from Scrollbar component. - Increased scrolling timeout duration for better user experience. - Updated scrollbar styles to simplify color handling. - Adjusted Messages component to remove unnecessary props and added margin for better layout. - Added responsive styles to CitationBlock for improved mobile display. --- src/renderer/src/assets/styles/markdown.scss | 1 + src/renderer/src/assets/styles/scrollbar.scss | 4 ---- src/renderer/src/components/Scrollbar/index.tsx | 14 +++++--------- .../pages/home/Messages/Blocks/CitationBlock.tsx | 10 ++++++++++ src/renderer/src/pages/home/Messages/Messages.tsx | 4 ++-- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/renderer/src/assets/styles/markdown.scss b/src/renderer/src/assets/styles/markdown.scss index 40c0255468..86318ada33 100644 --- a/src/renderer/src/assets/styles/markdown.scss +++ b/src/renderer/src/assets/styles/markdown.scss @@ -299,6 +299,7 @@ emoji-picker { overflow-x: auto; overflow-y: hidden; } + mjx-container { overflow-x: auto; } diff --git a/src/renderer/src/assets/styles/scrollbar.scss b/src/renderer/src/assets/styles/scrollbar.scss index 8e73054c38..818c082b7e 100644 --- a/src/renderer/src/assets/styles/scrollbar.scss +++ b/src/renderer/src/assets/styles/scrollbar.scss @@ -1,15 +1,11 @@ :root { --color-scrollbar-thumb: rgba(255, 255, 255, 0.15); --color-scrollbar-thumb-hover: rgba(255, 255, 255, 0.2); - --color-scrollbar-thumb-right: rgba(255, 255, 255, 0.18); - --color-scrollbar-thumb-right-hover: rgba(255, 255, 255, 0.25); } body[theme-mode='light'] { --color-scrollbar-thumb: rgba(0, 0, 0, 0.15); --color-scrollbar-thumb-hover: rgba(0, 0, 0, 0.2); - --color-scrollbar-thumb-right: rgba(0, 0, 0, 0.18); - --color-scrollbar-thumb-right-hover: rgba(0, 0, 0, 0.25); } /* 全局初始化滚动条样式 */ diff --git a/src/renderer/src/components/Scrollbar/index.tsx b/src/renderer/src/components/Scrollbar/index.tsx index 7452efd0fc..12cb3ef6d6 100644 --- a/src/renderer/src/components/Scrollbar/index.tsx +++ b/src/renderer/src/components/Scrollbar/index.tsx @@ -4,11 +4,10 @@ import styled from 'styled-components' interface Props extends Omit, 'onScroll'> { ref?: React.RefObject - right?: boolean onScroll?: () => void // Custom onScroll prop for useScrollPosition's handleScroll } -const Scrollbar: FC = ({ ref: passedRef, right, children, onScroll: externalOnScroll, ...htmlProps }) => { +const Scrollbar: FC = ({ ref: passedRef, children, onScroll: externalOnScroll, ...htmlProps }) => { const [isScrolling, setIsScrolling] = useState(false) const timeoutRef = useRef(null) @@ -25,7 +24,7 @@ const Scrollbar: FC = ({ ref: passedRef, right, children, onScroll: exter timeoutRef.current = setTimeout(() => { setIsScrolling(false) timeoutRef.current = null - }, 1000) + }, 1500) }, [clearScrollingTimeout]) // eslint-disable-next-line react-hooks/exhaustive-deps @@ -52,7 +51,6 @@ const Scrollbar: FC = ({ ref: passedRef, right, children, onScroll: exter {children} @@ -60,15 +58,13 @@ const Scrollbar: FC = ({ ref: passedRef, right, children, onScroll: exter ) } -const Container = styled.div<{ $isScrolling: boolean; $right?: boolean }>` +const Container = styled.div<{ $isScrolling: boolean }>` overflow-y: auto; &::-webkit-scrollbar-thumb { transition: background 2s ease; - background: ${(props) => - props.$isScrolling ? `var(--color-scrollbar-thumb${props.$right ? '-right' : ''})` : 'transparent'}; + background: ${(props) => (props.$isScrolling ? 'var(--color-scrollbar-thumb)' : 'transparent')}; &:hover { - background: ${(props) => - props.$isScrolling ? `var(--color-scrollbar-thumb${props.$right ? '-right' : ''}-hover)` : 'transparent'}; + background: var(--color-scrollbar-thumb-hover); } } ` diff --git a/src/renderer/src/pages/home/Messages/Blocks/CitationBlock.tsx b/src/renderer/src/pages/home/Messages/Blocks/CitationBlock.tsx index 9e613b288b..09a16c3496 100644 --- a/src/renderer/src/pages/home/Messages/Blocks/CitationBlock.tsx +++ b/src/renderer/src/pages/home/Messages/Blocks/CitationBlock.tsx @@ -53,6 +53,16 @@ function CitationBlock({ block }: { block: CitationMessageBlock }) { const SearchEntryPoint = styled.div` margin: 10px 2px; + @media (max-width: 768px) { + display: none; + } + .carousel { + white-space: normal; + .chip { + margin: 0; + margin-left: 5px; + } + } ` export default React.memo(CitationBlock) diff --git a/src/renderer/src/pages/home/Messages/Messages.tsx b/src/renderer/src/pages/home/Messages/Messages.tsx index 3b754d7cbe..d622b78343 100644 --- a/src/renderer/src/pages/home/Messages/Messages.tsx +++ b/src/renderer/src/pages/home/Messages/Messages.tsx @@ -273,8 +273,7 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o ref={scrollContainerRef} style={{ position: 'relative', paddingTop: showPrompt ? 10 : 0 }} key={assistant.id} - onScroll={handleScrollPosition} - $right={topicPosition === 'left'}> + onScroll={handleScrollPosition}> ` overflow-x: hidden; background-color: var(--color-background); z-index: 1; + margin-right: 2px; ` export default Messages