diff --git a/src/renderer/src/components/Popups/SelectModelPopup/popup.tsx b/src/renderer/src/components/Popups/SelectModelPopup/popup.tsx index 45560bcd6c..0e4ca65036 100644 --- a/src/renderer/src/components/Popups/SelectModelPopup/popup.tsx +++ b/src/renderer/src/components/Popups/SelectModelPopup/popup.tsx @@ -180,7 +180,7 @@ const PopupContainer: React.FC = ({ model, filter: baseFilter, showTagFil key: `provider-${p.id}`, type: 'group', name: getFancyProviderName(p), - actions: ( + actions: p.id !== 'cherryai' && ( ` flex-direction: row; align-items: center; gap: 5px; - padding-left: ${({ $isFullscreen }) => (!$isFullscreen && isMac ? 'env(titlebar-area-x)' : '15px')}; + padding-left: ${({ $isFullscreen }) => (!$isFullscreen && isMac ? 'calc(env(titlebar-area-x) + 4px)' : '15px')}; padding-right: ${({ $isFullscreen }) => ($isFullscreen ? '12px' : '0')}; height: var(--navbar-height); min-height: ${({ $isFullscreen }) => (!$isFullscreen && isMac ? 'env(titlebar-area-height)' : '')}; diff --git a/src/renderer/src/components/app/Navbar.tsx b/src/renderer/src/components/app/Navbar.tsx index 41bad7260e..1578e73a7e 100644 --- a/src/renderer/src/components/app/Navbar.tsx +++ b/src/renderer/src/components/app/Navbar.tsx @@ -88,6 +88,7 @@ const NavbarCenterContainer = styled.div` display: flex; align-items: center; padding: 0 ${isMac ? '20px' : 0}; + padding-left: 10px; font-weight: bold; color: var(--color-text-1); position: relative; @@ -108,7 +109,8 @@ const NavbarMainContainer = styled.div<{ $isFullscreen: boolean }>` flex-direction: row; align-items: center; justify-content: space-between; - padding: 0 ${isMac ? '20px' : 0}; + padding-right: ${isMac ? '20px' : 0}; + padding-left: 10px; font-weight: bold; color: var(--color-text-1); padding-right: ${({ $isFullscreen }) => ($isFullscreen ? '12px' : isWin ? '140px' : isLinux ? '120px' : '12px')}; diff --git a/src/renderer/src/components/dnd/ItemRenderer.tsx b/src/renderer/src/components/dnd/ItemRenderer.tsx index a33301df62..d13e298963 100644 --- a/src/renderer/src/components/dnd/ItemRenderer.tsx +++ b/src/renderer/src/components/dnd/ItemRenderer.tsx @@ -17,6 +17,7 @@ interface ItemRendererProps { transform?: Transform | null transition?: string | null listeners?: DraggableSyntheticListeners + itemStyle?: React.CSSProperties } export function ItemRenderer({ @@ -30,6 +31,7 @@ export function ItemRenderer({ transform, transition, listeners, + itemStyle, ...props }: ItemRendererProps) { useEffect(() => { @@ -44,7 +46,7 @@ export function ItemRenderer({ } }, [dragOverlay]) - const wrapperStyle = { + const style = { transition, transform: CSS.Transform.toString(transform ?? null) } as React.CSSProperties @@ -54,7 +56,7 @@ export function ItemRenderer({ ref={ref} data-index={index} className={classNames({ dragOverlay: dragOverlay })} - style={{ ...wrapperStyle }}> + style={{ ...style, ...itemStyle }}> { className?: string /** Item list style */ listStyle?: React.CSSProperties + /** Item style */ + itemStyle?: React.CSSProperties /** Item gap */ gap?: number | string /** Restrictions, shortcuts for some modifiers */ @@ -87,6 +89,7 @@ function Sortable({ showGhost = false, className, listStyle, + itemStyle, gap, restrictions, modifiers: customModifiers @@ -195,19 +198,19 @@ function Sortable({ renderItem={renderItem} useDragOverlay={useDragOverlay} showGhost={showGhost} + itemStyle={itemStyle} /> ))} - {useDragOverlay - ? createPortal( - - {activeItem ? : null} - , - document.body - ) - : null} + {useDragOverlay && + createPortal( + + {activeItem && } + , + document.body + )} ) } diff --git a/src/renderer/src/components/dnd/SortableItem.tsx b/src/renderer/src/components/dnd/SortableItem.tsx index 60901223a0..ec91f54da8 100644 --- a/src/renderer/src/components/dnd/SortableItem.tsx +++ b/src/renderer/src/components/dnd/SortableItem.tsx @@ -10,6 +10,7 @@ interface SortableItemProps { renderItem: RenderItemType useDragOverlay?: boolean showGhost?: boolean + itemStyle?: React.CSSProperties } export function SortableItem({ @@ -18,7 +19,8 @@ export function SortableItem({ index, renderItem, useDragOverlay = true, - showGhost = true + showGhost = true, + itemStyle }: SortableItemProps) { const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id @@ -36,6 +38,7 @@ export function SortableItem({ transform={transform} transition={transition} listeners={listeners} + itemStyle={itemStyle} {...attributes} /> ) diff --git a/src/renderer/src/pages/home/Navbar.tsx b/src/renderer/src/pages/home/Navbar.tsx index 51bf834149..3649537d68 100644 --- a/src/renderer/src/pages/home/Navbar.tsx +++ b/src/renderer/src/pages/home/Navbar.tsx @@ -86,7 +86,14 @@ const HeaderNavbar: FC = ({ activeAssistant, setActiveAssistant, activeTo )} {!showAssistants && ( - + toggleShowAssistants()}> @@ -114,7 +121,7 @@ const HeaderNavbar: FC = ({ activeAssistant, setActiveAssistant, activeTo justifyContent: 'flex-end', flex: 1, position: 'relative', - paddingRight: isWin || isLinux ? '144px' : '6px' + paddingRight: isWin || isLinux ? '144px' : '15px' }} className="home-navbar-right"> diff --git a/src/renderer/src/pages/home/Tabs/SettingsTab.tsx b/src/renderer/src/pages/home/Tabs/SettingsTab.tsx index d6450803a0..9b5ec39196 100644 --- a/src/renderer/src/pages/home/Tabs/SettingsTab.tsx +++ b/src/renderer/src/pages/home/Tabs/SettingsTab.tsx @@ -410,7 +410,7 @@ const SettingsTab: FC = (props) => { - + {t('settings.math.engine.label')} @@ -439,7 +439,7 @@ const SettingsTab: FC = (props) => { - + {t('message.message.code_style')} @@ -583,7 +583,7 @@ const SettingsTab: FC = (props) => { - + {t('settings.messages.input.show_estimated_tokens')} diff --git a/src/renderer/src/pages/notes/NotesSidebar.tsx b/src/renderer/src/pages/notes/NotesSidebar.tsx index c9803208c3..09a76b6153 100644 --- a/src/renderer/src/pages/notes/NotesSidebar.tsx +++ b/src/renderer/src/pages/notes/NotesSidebar.tsx @@ -111,7 +111,7 @@ const NotesSidebar: FC = ({ const targetScrollTop = elementOffsetTop - (containerHeight - elementHeight) / 2 scrollContainer.scrollTo({ top: Math.max(0, targetScrollTop), - behavior: 'smooth' + behavior: 'instant' }) } } diff --git a/src/renderer/src/pages/settings/MCPSettings/McpServerCard.tsx b/src/renderer/src/pages/settings/MCPSettings/McpServerCard.tsx index 3d38255bf5..683fe1437b 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpServerCard.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpServerCard.tsx @@ -183,7 +183,7 @@ const CardContainer = styled.div<{ $isActive: boolean }>` margin-bottom: 5px; height: 125px; opacity: ${(props) => (props.$isActive ? 1 : 0.6)}; - width: calc(100vw - var(--settings-width) - 40px); + width: 100%; &:hover { opacity: 1; diff --git a/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx b/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx index 7e18af264d..c1a963e841 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpServersList.tsx @@ -251,7 +251,8 @@ const McpServersList: FC = () => { onSortEnd={onSortEnd} layout="list" horizontal={false} - listStyle={{ display: 'flex', flexDirection: 'column' }} + listStyle={{ display: 'flex', flexDirection: 'column', width: '100%' }} + itemStyle={{ width: '100%' }} gap="12px" restrictions={{ scrollableAncestor: true }} useDragOverlay diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index e883955eb1..da0056b39d 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -335,6 +335,12 @@ const TranslatePage: FC = () => { setTargetLanguage(source) }, [couldExchangeAuto, detectedLanguage, sourceLanguage, t, targetLanguage]) + // Clear translation content when component mounts + useEffect(() => { + setText('') + setTranslatedContent('') + }, []) + useEffect(() => { isEmpty(text) && setTranslatedContent('') }, [setTranslatedContent, text])