diff --git a/src/components/config/GitHubMirrorSettings.tsx b/src/components/config/GitHubMirrorSettings.tsx index 2859de4..10152a1 100644 --- a/src/components/config/GitHubMirrorSettings.tsx +++ b/src/components/config/GitHubMirrorSettings.tsx @@ -3,12 +3,18 @@ import { Checkbox } from "@/components/ui/checkbox"; import { Label } from "@/components/ui/label"; import { Separator } from "@/components/ui/separator"; import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; import { Info, GitBranch, @@ -22,7 +28,8 @@ import { MessageSquare, Target, BookOpen, - GitFork + GitFork, + ChevronDown } from "lucide-react"; import type { GitHubConfig, MirrorOptions, AdvancedOptions } from "@/types/config"; import { cn } from "@/lib/utils"; @@ -105,23 +112,63 @@ export function GitHubMirrorSettings({ -
- handleGitHubChange('mirrorStarred', !!checked)} - /> -
- -

- Include repositories you've starred on GitHub -

+
+
+ handleGitHubChange('mirrorStarred', !!checked)} + /> +
+ +

+ Include repositories you've starred on GitHub +

+
+
+ + {/* Lightweight starred repos option - inline to prevent layout shift */} +
+ handleAdvancedChange('skipStarredIssues', !!checked)} + disabled={!githubConfig.mirrorStarred} + /> +
+ +

+ Only code, skip issues and metadata +

+
@@ -172,7 +219,7 @@ export function GitHubMirrorSettings({
-
+
- {/* Metadata sub-options */} - {mirrorOptions.mirrorMetadata && ( -
-
-
- handleMetadataComponentChange('issues', !!checked)} - disabled={!isMetadataEnabled} - /> - -
+ {/* Metadata multi-select - inline to prevent layout shift */} +
+ + + + + +
+
+
Metadata to mirror
+ +
+ + + +
+
+ handleMetadataComponentChange('issues', !!checked)} + /> + +
-
- handleMetadataComponentChange('pullRequests', !!checked)} - disabled={!isMetadataEnabled} - /> - -
+
+ handleMetadataComponentChange('pullRequests', !!checked)} + /> + +
-
- handleMetadataComponentChange('labels', !!checked)} - disabled={!isMetadataEnabled} - /> - -
+
+ handleMetadataComponentChange('labels', !!checked)} + /> + +
-
- handleMetadataComponentChange('milestones', !!checked)} - disabled={!isMetadataEnabled} - /> - -
+
+ handleMetadataComponentChange('milestones', !!checked)} + /> + +
-
- handleMetadataComponentChange('wiki', !!checked)} - disabled={!isMetadataEnabled} - /> - +
+ handleMetadataComponentChange('wiki', !!checked)} + /> + +
+
-
-
- )} + + +
@@ -317,42 +414,6 @@ export function GitHubMirrorSettings({

- - {githubConfig.mirrorStarred && ( -
- handleAdvancedChange('skipStarredIssues', !!checked)} - /> -
- -

- Only mirror code from starred repos, skip issues and metadata -

-
-
- )}