diff --git a/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.story.tsx b/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.story.tsx index 2255b431718c..4135e314a1fa 100644 --- a/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.story.tsx +++ b/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.story.tsx @@ -46,6 +46,7 @@ export const Basic: ComponentStory = ({ body, description, confirmText, + confirmButtonVariant, dismissText, icon, isOpen, @@ -58,6 +59,7 @@ export const Basic: ComponentStory = ({ body={body} description={description} confirmText={confirmText} + confirmButtonVariant={confirmButtonVariant} dismissText={dismissText} icon={icon} onConfirm={onConfirm} @@ -77,6 +79,7 @@ Basic.args = { body: 'Are you sure you want to delete this user?', description: 'Removing the user will not remove any dashboards the user has created', confirmText: 'Delete', + confirmButtonVariant: 'destructive', dismissText: 'Cancel', icon: 'exclamation-triangle', isOpen: true, @@ -112,7 +115,7 @@ export const AlternativeAction: ComponentStory = ({ AlternativeAction.parameters = { controls: { - exclude: [...defaultExcludes, 'confirmationText'], + exclude: [...defaultExcludes, 'confirmationText', 'confirmButtonVariant'], }, }; @@ -155,7 +158,7 @@ export const WithConfirmation: ComponentStory = ({ WithConfirmation.parameters = { controls: { - exclude: [...defaultExcludes, 'alternativeText'], + exclude: [...defaultExcludes, 'alternativeText', 'confirmButtonVariant'], }, }; diff --git a/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.tsx b/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.tsx index 0251fbcfd0c0..86058fa945f7 100644 --- a/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.tsx +++ b/packages/grafana-ui/src/components/ConfirmModal/ConfirmModal.tsx @@ -7,7 +7,7 @@ import { selectors } from '@grafana/e2e-selectors'; import { HorizontalGroup, Input } from '..'; import { useStyles2 } from '../../themes'; import { IconName } from '../../types/icon'; -import { Button } from '../Button'; +import { Button, ButtonVariant } from '../Button'; import { Modal } from '../Modal/Modal'; export interface ConfirmModalProps { @@ -31,6 +31,8 @@ export interface ConfirmModalProps { confirmationText?: string; /** Text for alternative button */ alternativeText?: string; + /** Confirm button variant */ + confirmButtonVariant?: ButtonVariant; /** Confirm action callback */ onConfirm(): void; /** Dismiss action callback */ @@ -53,6 +55,7 @@ export const ConfirmModal = ({ onConfirm, onDismiss, onAlternative, + confirmButtonVariant = 'destructive', }: ConfirmModalProps): JSX.Element => { const [disabled, setDisabled] = useState(Boolean(confirmationText)); const styles = useStyles2(getStyles); @@ -86,7 +89,7 @@ export const ConfirmModal = ({ {dismissText}