diff --git a/src/components/activity/ActivityLog.tsx b/src/components/activity/ActivityLog.tsx index 001d05a..c3e5431 100644 --- a/src/components/activity/ActivityLog.tsx +++ b/src/components/activity/ActivityLog.tsx @@ -346,10 +346,10 @@ export function ActivityLog() { /* ------------------------------ UI ------------------------------ */ return ( -
-
+
+
{/* search input */} -
+
- {/* status select */} - + {/* Filter controls row */} +
+ {/* status select */} + - {/* repo/org name combobox */} - setFilter((p) => ({ ...p, name }))} - /> + {/* type select - hidden on mobile */} + +
- {/* type select */} - + {/* repo/org name combobox - hidden on mobile */} +
+ setFilter((p) => ({ ...p, name }))} + /> +
- {/* export dropdown */} - - - - - - - Export as CSV - - - Export as JSON - - - + {/* Action buttons row */} +
+ {/* export dropdown - text hidden on mobile */} + + + + + + + Export as CSV + + + Export as JSON + + + - {/* refresh */} - + {/* refresh */} + - {/* cleanup all activities */} - + {/* cleanup all activities */} + +
{/* activity list */} diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index e34b482..3eea9c1 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -7,7 +7,13 @@ import { toast } from "sonner"; import { Skeleton } from "@/components/ui/skeleton"; import { useLiveRefresh } from "@/hooks/useLiveRefresh"; import { useConfigStatus } from "@/hooks/useConfigStatus"; -import { Menu } from "lucide-react"; +import { Menu, LogOut } from "lucide-react"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; interface HeaderProps { currentPage?: "dashboard" | "repositories" | "organizations" | "configuration" | "activity-log"; @@ -60,9 +66,9 @@ export function Header({ currentPage, onNavigate, onMenuClick }: HeaderProps) {
{/* Hamburger Menu Button - Mobile Only */} )} @@ -120,15 +126,40 @@ export function Header({ currentPage, onNavigate, onMenuClick }: HeaderProps) { ) : user ? ( <> - - - - {user.username.charAt(0).toUpperCase()} - - - + {/* Desktop: Show avatar and logout button */} +
+ + + + {user.username.charAt(0).toUpperCase()} + + + +
+ + {/* Mobile: Avatar with dropdown */} +
+ + + + + + + + Logout + + + +
) : ( ); @@ -102,19 +102,19 @@ export function Sidebar({ className, onNavigate, isOpen, onClose }: SidebarProps
-
+

Need Help?

-

+

Check out the documentation for help with setup and configuration.

Documentation - +
diff --git a/src/components/organizations/AddOrganizationDialog.tsx b/src/components/organizations/AddOrganizationDialog.tsx index f2e50c3..8d85ab1 100644 --- a/src/components/organizations/AddOrganizationDialog.tsx +++ b/src/components/organizations/AddOrganizationDialog.tsx @@ -63,12 +63,12 @@ export default function AddOrganizationDialog({ return ( - - + Add Organization diff --git a/src/components/organizations/Organization.tsx b/src/components/organizations/Organization.tsx index 4c3c123..78b28fb 100644 --- a/src/components/organizations/Organization.tsx +++ b/src/components/organizations/Organization.tsx @@ -293,10 +293,10 @@ export function Organization() { return ( -
- {/* Combine search and actions into a single flex row */} -
-
+
+ {/* Search and filters */} +
+
- {/* Membership Role Filter */} - + {/* Filter controls */} +
+ {/* Membership Role Filter */} + - {/* Status Filter */} - + {/* Status Filter */} + +
- + {/* Action buttons */} +
+ - + +
- - + Add Repository