From 447332e5588f29199e4956a484f748393590973f Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner Date: Sat, 29 Nov 2025 16:12:20 +0100 Subject: [PATCH] fix: align toggle switches in repository settings - Remove fixed label width from Toggle component - Move delete button to left of toggle switches - Add matching border/padding to 'Enable after adding' section to align with repository items - Ensure all toggles have consistent right-side alignment --- src/app/_components/GeneralSettingsModal.tsx | 80 ++++++++++---------- src/app/_components/ui/toggle.tsx | 48 +++++++----- 2 files changed, 70 insertions(+), 58 deletions(-) diff --git a/src/app/_components/GeneralSettingsModal.tsx b/src/app/_components/GeneralSettingsModal.tsx index 023325b..fbeb1a7 100644 --- a/src/app/_components/GeneralSettingsModal.tsx +++ b/src/app/_components/GeneralSettingsModal.tsx @@ -1630,7 +1630,7 @@ export function GeneralSettingsModal({ https://github.com/owner/repo)

-
+

Enable after adding @@ -1644,6 +1644,7 @@ export function GeneralSettingsModal({ onCheckedChange={setNewRepoEnabled} disabled={isAddingRepo} label="Enable repository" + labelPosition="left" />

-
- { - setMessage(null); - try { - const result = - await updateRepoMutation.mutateAsync({ - id: repo.id, - enabled, - }); - if (result.success) { - setMessage({ - type: "success", - text: `Repository ${enabled ? "enabled" : "disabled"} successfully!`, - }); - await refetchRepositories(); - } else { - setMessage({ - type: "error", - text: - result.error ?? - "Failed to update repository", - }); - } - } catch (error) { - setMessage({ - type: "error", - text: - error instanceof Error - ? error.message - : "Failed to update repository", - }); - } - }} - disabled={updateRepoMutation.isPending} - label={repo.enabled ? "Disable" : "Enable"} - /> +
+ { + setMessage(null); + try { + const result = + await updateRepoMutation.mutateAsync({ + id: repo.id, + enabled, + }); + if (result.success) { + setMessage({ + type: "success", + text: `Repository ${enabled ? "enabled" : "disabled"} successfully!`, + }); + await refetchRepositories(); + } else { + setMessage({ + type: "error", + text: + result.error ?? + "Failed to update repository", + }); + } + } catch (error) { + setMessage({ + type: "error", + text: + error instanceof Error + ? error.message + : "Failed to update repository", + }); + } + }} + disabled={updateRepoMutation.isPending} + label={repo.enabled ? "Disable" : "Enable"} + labelPosition="left" + />
), diff --git a/src/app/_components/ui/toggle.tsx b/src/app/_components/ui/toggle.tsx index 3e46797..0d30fcd 100644 --- a/src/app/_components/ui/toggle.tsx +++ b/src/app/_components/ui/toggle.tsx @@ -6,30 +6,40 @@ export interface ToggleProps checked?: boolean; onCheckedChange?: (checked: boolean) => void; label?: string; + labelPosition?: 'left' | 'right'; } const Toggle = React.forwardRef( - ({ className, checked, onCheckedChange, label, ...props }, ref) => { + ({ className, checked, onCheckedChange, label, labelPosition = 'right', ...props }, ref) => { + const toggleSwitch = ( +