diff --git a/apps/studio/src/components/ObjectDataTable.tsx b/apps/studio/src/components/ObjectDataTable.tsx index b064decf9..f327079bc 100644 --- a/apps/studio/src/components/ObjectDataTable.tsx +++ b/apps/studio/src/components/ObjectDataTable.tsx @@ -3,6 +3,7 @@ import { useState, useEffect } from 'react'; import { useParams } from '@tanstack/react-router'; import { useScopedClient } from '@/hooks/useObjectStackClient'; +import { useIsMobile } from '@/hooks/use-mobile'; import { Card, CardContent, CardHeader, CardTitle, CardDescription, CardFooter } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; diff --git a/apps/studio/src/components/top-bar.tsx b/apps/studio/src/components/top-bar.tsx index 974ef9d6c..c8ef8326a 100644 --- a/apps/studio/src/components/top-bar.tsx +++ b/apps/studio/src/components/top-bar.tsx @@ -29,6 +29,7 @@ import { config } from '@/lib/config'; import { ProjectSwitcher } from '@/components/project-switcher'; import { OrganizationSwitcher } from '@/components/organization-switcher'; import { UserMenu } from '@/components/user-menu'; +import { SidebarTrigger } from '@/components/ui/sidebar'; const META_TYPE_LABELS: Record = { action: 'Actions', @@ -162,36 +163,53 @@ export function TopBar() { }, [viewType, params]); return ( -
+
{/* Left segment: Brand + Org + Project switchers */} -
+
+ {/* Mobile: Hamburger menu */} +
+ +
- - - - - - - {breadcrumbs.map((item, index) => ( -
- {index > 0 && } - - {item.href ? ( - {item.label} - ) : ( - {item.label} - )} - -
- ))} -
-
+
+ + + +
+ {/* Mobile: Show only current page breadcrumb */} +
+ {breadcrumbs.length > 0 && ( + + {breadcrumbs[breadcrumbs.length - 1].label} + + )} +
+ {/* Desktop: Show full navigation */} +
+ + + + {breadcrumbs.map((item, index) => ( +
+ {index > 0 && } + + {item.href ? ( + {item.label} + ) : ( + {item.label} + )} + +
+ ))} +
+
+
{/* Right segment: Search + Mode + Theme + User */} -
- {/* Global search placeholder */} +
+ {/* Global search placeholder - desktop only */}
- {/* API Badge */} + {/* API Badge - hide on small screens */} {apiBadge && ( {apiBadge} )} - {/* Mode Badge */} - + {/* Mode Badge - hide on mobile */} + {config.mode.toUpperCase()} - +
+ +