feat: refine AI Assistant sidebar layout - reserve space for sidebar, default to dock mode from navbar, and ensure fixed positioning

This commit is contained in:
Haitao Pan 2026-01-31 22:28:03 +08:00
parent 6a2c183827
commit 835c628ea8
2 changed files with 14 additions and 5 deletions

View File

@ -5,16 +5,25 @@ import { ThemeProvider } from '../components/theme'
import { LanguageProvider } from '../i18n/LanguageProvider'
import { AskAIDialog } from '../components/AskAIDialog'
import { useMoltbotStore } from '../lib/moltbotStore'
import { cn } from '../lib/utils'
export function AppProviders({ children }: { children: ReactNode }) {
const { isOpen, setIsOpen, setMinimized, close } = useMoltbotStore()
const { isOpen, isMinimized, setIsOpen, setMinimized, close, mode } = useMoltbotStore()
// Reserve space only in sidebar modes, not in overlay/float mode
const reserveSpace = isOpen && !isMinimized && mode !== 'overlay'
return (
<ThemeProvider>
<LanguageProvider>
<div className="flex flex-col min-h-screen">
<div className="flex-1 flex flex-col relative w-full overflow-hidden">
{children}
<div className={cn(
"flex-1 flex flex-col relative w-full overflow-hidden transition-[padding] duration-300 ease-in-out",
reserveSpace ? "pr-[400px]" : ""
)}>
<div className="flex-1 flex flex-col w-full relative">
{children}
</div>
<AskAIDialog
open={isOpen}
onMinimize={() => {

View File

@ -220,7 +220,7 @@ export default function UnifiedNavigation() {
key={item.key}
onClick={() => {
setIsOpen(true);
setMode('overlay');
setMode('right-sidebar');
}}
className={`flex items-center gap-1.5 px-2 py-1.5 rounded-lg transition-colors whitespace-nowrap ${active
? "bg-primary/10 text-primary"
@ -405,7 +405,7 @@ export default function UnifiedNavigation() {
key={item.key}
onClick={() => {
setIsOpen(true);
setMode('overlay');
setMode('right-sidebar');
setMenuOpen(false);
}}
className={`flex w-full items-center px-4 py-3 rounded-xl text-sm font-medium transition-colors ${active