2021-04-13 08:07:25 -05:00
|
|
|
import React from 'react';
|
|
|
|
import { ConfirmModal } from '@grafana/ui';
|
|
|
|
|
|
|
|
import { PanelModel } from '../../../dashboard/state';
|
|
|
|
import { isPanelModelLibraryPanel } from '../../guard';
|
|
|
|
|
|
|
|
export interface ChangeLibraryPanelModalProps {
|
|
|
|
panel: PanelModel;
|
|
|
|
onConfirm: () => void;
|
|
|
|
onDismiss: () => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const ChangeLibraryPanelModal = ({ onConfirm, onDismiss, panel }: ChangeLibraryPanelModalProps): JSX.Element => {
|
|
|
|
const isLibraryPanel = isPanelModelLibraryPanel(panel);
|
2021-04-27 09:14:31 -05:00
|
|
|
const title = `${isLibraryPanel ? 'Changing' : 'Replace with'} library panel`;
|
|
|
|
const body = `${
|
|
|
|
isLibraryPanel ? 'Changing' : 'Replacing with a'
|
|
|
|
} library panel will remove any changes since last save.`;
|
2021-04-13 08:07:25 -05:00
|
|
|
return (
|
|
|
|
<ConfirmModal
|
|
|
|
onConfirm={onConfirm}
|
|
|
|
onDismiss={onDismiss}
|
2021-04-27 09:14:31 -05:00
|
|
|
confirmText={isLibraryPanel ? 'Change' : 'Replace'}
|
2021-04-13 08:07:25 -05:00
|
|
|
title={title}
|
|
|
|
body={body}
|
|
|
|
dismissText="Cancel"
|
|
|
|
isOpen={true}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
};
|