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 = (
+
+ );
+
return (
-
- {label && (
+ {label && labelPosition === 'left' && (
+
+ {label}
+
+ )}
+ {toggleSwitch}
+ {label && labelPosition === 'right' && (
{label}