import { useTranslation } from "react-i18next"; import { cn } from "#/utils/utils"; import { Typography } from "#/ui/typography"; import { I18nKey } from "#/i18n/declaration"; import { SettingsNavRenderedItem } from "#/hooks/use-settings-nav-items"; import { SidebarNavLink } from "#/components/features/sidebar/sidebar-nav-link"; import { AgentCanvasUpdateCard } from "#/components/features/settings/agent-canvas-update-card"; import { BackendSyncedSettingsBadge } from "#/components/features/settings/backend-synced-settings-badge"; import { CloudSettingsLink } from "#/components/features/settings/cloud-settings-link"; import { IntegrationsSettingsLink } from "#/components/features/settings/integrations-settings-link"; interface SettingsDesktopSidebarProps { navigationItems: SettingsNavRenderedItem[]; } /** * Desktop sidebar — sibling of the scrolling main column (same pattern as * {@link ExtensionsNavigation}). Mobile drawer stays `position: fixed` outside * this row in the layout. */ export function SettingsDesktopSidebar({ navigationItems, }: SettingsDesktopSidebarProps) { const { t } = useTranslation("openhands"); const desktopNavItems = navigationItems.filter( (item): item is Extract => item.type === "item", ); return ( ); }