From f5415a25adbbf1652fdc1c52b725159e10fe09df Mon Sep 17 00:00:00 2001 From: Peter Zimon Date: Tue, 6 Jun 2023 09:49:10 +0200 Subject: [PATCH] Added backDropClick param. to modals in AdminX refs. https://github.com/TryGhost/Team/issues/3351 --- .../src/admin-x-ds/global/Modal.tsx | 42 +++++++++++-------- .../general/modals/UserDetailModal.tsx | 1 + 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ghost/admin-x-settings/src/admin-x-ds/global/Modal.tsx b/ghost/admin-x-settings/src/admin-x-ds/global/Modal.tsx index f3c79d2fe7..4664cd863d 100644 --- a/ghost/admin-x-settings/src/admin-x-ds/global/Modal.tsx +++ b/ghost/admin-x-settings/src/admin-x-ds/global/Modal.tsx @@ -2,6 +2,7 @@ import Button, {IButton} from './Button'; import ButtonGroup from './ButtonGroup'; import Heading from './Heading'; import React from 'react'; +import clsx from 'clsx'; import {useModal} from '@ebay/nice-modal-react'; export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'bleed' | number; @@ -24,21 +25,23 @@ export interface ModalProps { onCancel?: () => void; children?: React.ReactNode; backDrop?: boolean; + backDropClick?: boolean; } const Modal: React.FC = ({ - size = 'md', - title, - okLabel = 'OK', - cancelLabel = 'Cancel', - customFooter, - leftButtonLabel, - noPadding = false, - onOk, - okColor = 'black', - onCancel, + size = 'md', + title, + okLabel = 'OK', + cancelLabel = 'Cancel', + customFooter, + leftButtonLabel, + noPadding = false, + onOk, + okColor = 'black', + onCancel, children, - backDrop = true + backDrop = true, + backDropClick = true }) => { const modal = useModal(); @@ -47,7 +50,7 @@ const Modal: React.FC = ({ if (!customFooter) { buttons.push({ key: 'cancel-modal', - label: cancelLabel, + label: cancelLabel, onClick: (onCancel ? onCancel : () => { modal.remove(); }) @@ -55,7 +58,7 @@ const Modal: React.FC = ({ buttons.push({ key: 'ok-modal', - label: okLabel, + label: okLabel, color: okColor, className: 'min-w-[80px]', onClick: onOk @@ -95,14 +98,14 @@ const Modal: React.FC = ({ modalClasses += ` h-full ${!noPadding && 'p-12'}`; break; - default: + default: modalClasses += ` ${!noPadding && 'p-8'}`; backdropClasses += ' p-[8vmin]'; break; } - const handleBackdropClick = (e: React.MouseEvent) => { - if (e.target === e.currentTarget && backDrop) { + const handleBackdropClick = (e: React.MouseEvent) => { + if (e.target === e.currentTarget && backDropClick) { modal.remove(); } }; @@ -113,13 +116,16 @@ const Modal: React.FC = ({ return (