diff --git a/src/components/HomeContent.tsx b/src/components/HomeContent.tsx index 6cc2be8..8e9240f 100644 --- a/src/components/HomeContent.tsx +++ b/src/components/HomeContent.tsx @@ -15,10 +15,13 @@ const Brand = () => ( ); const AppActions = () => ( - <> - - - +
+ + +
); export function HomeContent() { diff --git a/src/components/SettingsModal.tsx b/src/components/SettingsModal.tsx index 67b49ec..8b3c0e4 100644 --- a/src/components/SettingsModal.tsx +++ b/src/components/SettingsModal.tsx @@ -130,7 +130,13 @@ const SIDEBAR_SECTIONS: SidebarSection[] = [ type AdminSubTab = 'providers' | 'features'; -export function SettingsModal({ className = '' }: { className?: string }) { +export function SettingsModal({ + className = '', + triggerLabel, +}: { + className?: string; + triggerLabel?: string; +}) { const runtimeConfig = useRuntimeConfig(); const enableDestructiveDelete = runtimeConfig.enableDestructiveDeleteActions; const showAllProviderModels = runtimeConfig.showAllProviderModels; @@ -506,6 +512,7 @@ export function SettingsModal({ className = '' }: { className?: string }) { tabIndex={0} > + {triggerLabel && {triggerLabel}} diff --git a/src/components/auth/UserMenu.tsx b/src/components/auth/UserMenu.tsx index d350f79..529dac3 100644 --- a/src/components/auth/UserMenu.tsx +++ b/src/components/auth/UserMenu.tsx @@ -7,8 +7,17 @@ import { useFeatureFlag } from '@/contexts/RuntimeConfigContext'; import { useAuthSession } from '@/hooks/useAuthSession'; import { getAuthClient } from '@/lib/client/auth-client'; import { useRouter } from 'next/navigation'; +import { UserIcon } from '@/components/icons/Icons'; -export function UserMenu({ className = '' }: { className?: string }) { +type UserMenuVariant = 'toolbar' | 'sidebar'; + +export function UserMenu({ + className = '', + variant = 'toolbar', +}: { + className?: string; + variant?: UserMenuVariant; +}) { const { authEnabled, baseUrl } = useAuthConfig(); const enableUserSignups = useFeatureFlag('enableUserSignups'); const { data: session, isPending } = useAuthSession(); @@ -22,7 +31,27 @@ export function UserMenu({ className = '' }: { className?: string }) { router.push('/signin'); }; + const rowClass = + 'w-full inline-flex items-center gap-2 px-2 py-1 rounded-md text-[12px] border border-transparent transition-all duration-200 ease-out text-left hover:scale-[1.01] hover:border-accent hover:bg-offbase hover:text-accent'; + if (!session || session.user.isAnonymous) { + if (variant === 'sidebar') { + return ( +
+ + + Connect + + {enableUserSignups && ( + + + Create account + + )} +
+ ); + } + return (
@@ -41,6 +70,24 @@ export function UserMenu({ className = '' }: { className?: string }) { ); } + if (variant === 'sidebar') { + return ( + + ); + } + return (
diff --git a/src/components/doclist/DocumentList.tsx b/src/components/doclist/DocumentList.tsx index 2233e90..6e484e6 100644 --- a/src/components/doclist/DocumentList.tsx +++ b/src/components/doclist/DocumentList.tsx @@ -502,7 +502,6 @@ function DocumentListInner({ brand, appActions }: DocumentListInnerProps) { isSidebarOpen={effectiveSidebarOpen} isNarrow={isNarrow} leftSlot={brand} - rightSlot={appActions} /> } sidebar={ @@ -521,6 +520,7 @@ function DocumentListInner({ brand, appActions }: DocumentListInnerProps) { width={sidebarWidth} onWidthChange={setSidebarWidth} topSlot={} + bottomSlot={appActions} /> } statusBar={ diff --git a/src/components/doclist/window/FinderSidebar.tsx b/src/components/doclist/window/FinderSidebar.tsx index 358eded..d754336 100644 --- a/src/components/doclist/window/FinderSidebar.tsx +++ b/src/components/doclist/window/FinderSidebar.tsx @@ -22,6 +22,7 @@ interface FinderSidebarProps { width: number; onWidthChange: (px: number) => void; topSlot?: ReactNode; + bottomSlot?: ReactNode; } const MIN_WIDTH = 168; @@ -180,6 +181,7 @@ export function FinderSidebar({ width, onWidthChange, topSlot, + bottomSlot, }: FinderSidebarProps) { const startRef = useRef<{ x: number; w: number } | null>(null); @@ -201,124 +203,131 @@ export function FinderSidebar({ return (