From 26d823e0a565d6dcbe26a05fbe8ca68066ec4b1a Mon Sep 17 00:00:00 2001 From: Teo Date: Wed, 11 Jun 2025 16:15:43 +0800 Subject: [PATCH] refactor(HomePage): update HomePage component to accept style prop and simplify layout structure --- src/renderer/src/Routes.tsx | 6 +- src/renderer/src/pages/home/Chat.tsx | 57 ++++++++----------- src/renderer/src/pages/home/HomePage.tsx | 4 +- .../src/pages/home/Messages/MessageGroup.tsx | 8 +-- 4 files changed, 31 insertions(+), 44 deletions(-) diff --git a/src/renderer/src/Routes.tsx b/src/renderer/src/Routes.tsx index 06e5c2e64b..410ce8d036 100644 --- a/src/renderer/src/Routes.tsx +++ b/src/renderer/src/Routes.tsx @@ -15,10 +15,8 @@ const RouteContainer = () => { const isHomePage = location.pathname === '/' return ( -
-
- -
+
+
} /> diff --git a/src/renderer/src/pages/home/Chat.tsx b/src/renderer/src/pages/home/Chat.tsx index 1e2851d92c..15dbda4596 100644 --- a/src/renderer/src/pages/home/Chat.tsx +++ b/src/renderer/src/pages/home/Chat.tsx @@ -7,7 +7,7 @@ import { useSettings } from '@renderer/hooks/useSettings' import { useShortcut } from '@renderer/hooks/useShortcuts' import { Flex } from 'antd' import { debounce } from 'lodash' -import React, { FC, useMemo, useState } from 'react' +import React, { FC, useState } from 'react' import { useHotkeys } from 'react-hotkeys-hook' import styled from 'styled-components' @@ -16,18 +16,13 @@ import Messages from './Messages/Messages' const Chat: FC = () => { const { activeAssistant, activeTopic, setActiveTopic } = useChat() - const { messageStyle, showAssistants } = useSettings() + const { messageStyle } = useSettings() const { isMultiSelectMode } = useChatContext(activeTopic) const mainRef = React.useRef(null) const contentSearchRef = React.useRef(null) const [filterIncludeUser, setFilterIncludeUser] = useState(false) - const maxWidth = useMemo(() => { - const minusAssistantsWidth = showAssistants ? '- var(--assistants-width)' : '' - return `calc(100vw - ${minusAssistantsWidth})` - }, [showAssistants]) - useHotkeys('esc', () => { contentSearchRef.current?.disable() }) @@ -93,36 +88,30 @@ const Chat: FC = () => { } return ( - -
- } - filter={contentSearchFilter} - includeUser={filterIncludeUser} - onIncludeUserChange={userOutlinedItemClickHandler} - /> - - - - {isMultiSelectMode && } - -
-
+
+ } + filter={contentSearchFilter} + includeUser={filterIncludeUser} + onIncludeUserChange={userOutlinedItemClickHandler} + /> + + + + {isMultiSelectMode && } + +
) } -const Container = styled.div` - height: 100%; -` - const Main = styled(Flex)` height: calc(100vh - var(--navbar-height)); transform: translateZ(0); diff --git a/src/renderer/src/pages/home/HomePage.tsx b/src/renderer/src/pages/home/HomePage.tsx index 45b2ac2367..487ca20596 100644 --- a/src/renderer/src/pages/home/HomePage.tsx +++ b/src/renderer/src/pages/home/HomePage.tsx @@ -5,7 +5,7 @@ import styled from 'styled-components' import Chat from './Chat' import ChatNavbar from './ChatNavbar' -const HomePage: FC = () => { +const HomePage: FC<{ style?: React.CSSProperties }> = ({ style }) => { const { showAssistants, showTopics, topicPosition } = useSettings() useEffect(() => { @@ -17,7 +17,7 @@ const HomePage: FC = () => { }, [showAssistants, showTopics, topicPosition]) return ( - + diff --git a/src/renderer/src/pages/home/Messages/MessageGroup.tsx b/src/renderer/src/pages/home/Messages/MessageGroup.tsx index bef797afbc..e0244ea4f5 100644 --- a/src/renderer/src/pages/home/Messages/MessageGroup.tsx +++ b/src/renderer/src/pages/home/Messages/MessageGroup.tsx @@ -298,7 +298,7 @@ const GridContainer = styled.div<{ $count: number; $layout: MultiModelMessageSty $layout === 'grid' && css` margin-top: 15px; - grid-template-columns: repeat(${$count > 1 ? $gridColumns || 2 : 1}, minmax(0, 1fr)); + grid-template-columns: repeat(${$count > 1 ? $gridColumns || 2 : 1}, minmax(0, 1fr)) !important; grid-template-rows: auto; gap: 16px; `} @@ -339,7 +339,7 @@ const MessageWrapper = styled(Scrollbar)` return css` border: 0.5px solid var(--color-border); padding: 10px 10px 0 10px; - border-radius: 6px; + border-radius: 8px; max-height: 600px; ` } @@ -356,12 +356,12 @@ const MessageWrapper = styled(Scrollbar)` overflow-y: ${$isInPopover ? 'auto' : 'hidden'}; border: 0.5px solid ${$isInPopover ? 'transparent' : 'var(--color-border)'}; padding: 10px; - border-radius: 6px; + border-radius: 8px; background-color: var(--color-background); ` : css` overflow-y: ${$layout === 'horizontal' ? 'auto' : 'visible'}; - border-radius: 6px; + border-radius: 8px; ` }} `