diff --git a/frontend/src/components/CalendarParticipantsModal.tsx b/frontend/src/components/CalendarParticipantsModal.tsx index 478c6433..7ce63824 100644 --- a/frontend/src/components/CalendarParticipantsModal.tsx +++ b/frontend/src/components/CalendarParticipantsModal.tsx @@ -183,7 +183,7 @@ export default function CalendarParticipantsModal({ if (!isOpen) return null; return ( - +
diff --git a/frontend/src/components/CalendarSubscriptionsModal.tsx b/frontend/src/components/CalendarSubscriptionsModal.tsx index c7fb40aa..2b7762c1 100644 --- a/frontend/src/components/CalendarSubscriptionsModal.tsx +++ b/frontend/src/components/CalendarSubscriptionsModal.tsx @@ -139,7 +139,7 @@ export function CalendarSubscriptionsModal({ isOpen, onClose, onUpdate }: Props) if (!isOpen) return null; return ( - +
{/* Header */}
diff --git a/frontend/src/components/ui/Modal.tsx b/frontend/src/components/ui/Modal.tsx index 1ac3eb67..5ca8c533 100644 --- a/frontend/src/components/ui/Modal.tsx +++ b/frontend/src/components/ui/Modal.tsx @@ -15,7 +15,7 @@ export interface ModalProps { closeOnEsc?: boolean; footer?: ReactNode; className?: string; - /** Render children directly without padding wrappers (for custom layouts like flex-col) */ + /** Remove default content padding while keeping the standard modal frame */ noPadding?: boolean; /** Hide the built-in header (caller manages its own header inside children) */ noHeader?: boolean; @@ -137,50 +137,48 @@ export function Modal({ isAnimating ? "scale-100 opacity-100" : "scale-95 opacity-0" } ${className}`} > - {noPadding ? ( - children - ) : ( - <> - {/* Header */} - {showHeader && ( -
- {title && ( - - )} -
- {showCloseButton && ( - - )} -
-
+ {/* Header */} + {showHeader && ( +
+ {title && ( + )} - - {/* Content */} -
- {children} +
+ {showCloseButton && ( + + )}
- - {/* Footer */} - {footer && ( -
{footer}
- )} - - {/* Bottom padding */} -
- +
)} + + {/* Content */} +
+ {children} +
+ + {/* Footer */} + {footer && ( +
{footer}
+ )} + + {/* Bottom padding */} + {!noPadding &&
}
);