mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* update eslint, tsconfig + esbuild to handle new jsx transform * remove thing that breaks the new jsx transform * remove react imports * adjust grafana-icons build * is this the correct syntax? * try this * well this was much easier than expected... * change grafana-plugin-configs webpack config * fixes * fix lockfile * fix 2 more violations * use path.resolve instead of require.resolve * remove react import * fix react imports * more fixes * remove React import * remove import React from docs * remove another react import
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { ConfirmModal, Text } from '@grafana/ui';
|
|
|
|
import { Trans, t } from '../../../core/internationalization';
|
|
|
|
export interface Props {
|
|
isOpen: boolean;
|
|
onConfirm: () => Promise<void>;
|
|
onDismiss: () => void;
|
|
selectedDashboards: string[];
|
|
isLoading: boolean;
|
|
}
|
|
|
|
export const RestoreModal = ({ onConfirm, onDismiss, selectedDashboards, isLoading, ...props }: Props) => {
|
|
const numberOfDashboards = selectedDashboards.length;
|
|
|
|
const onRestore = async () => {
|
|
await onConfirm();
|
|
onDismiss();
|
|
};
|
|
|
|
return (
|
|
<ConfirmModal
|
|
body={
|
|
<Text element="p">
|
|
<Trans i18nKey="recently-deleted.restore-modal.text" count={numberOfDashboards}>
|
|
This action will restore {{ numberOfDashboards }} dashboards.
|
|
</Trans>
|
|
</Text>
|
|
// TODO: replace by list of dashboards (list up to 5 dashboards) or number (from 6 dashboards)?
|
|
}
|
|
confirmText={
|
|
isLoading
|
|
? t('recently-deleted.restore-modal.restore-loading', 'Restoring...')
|
|
: t('recently-deleted.restore-modal.restore-button', 'Restore')
|
|
}
|
|
confirmButtonVariant="primary"
|
|
onDismiss={onDismiss}
|
|
onConfirm={onRestore}
|
|
title={t('recently-deleted.restore-modal.title', 'Restore Dashboards')}
|
|
{...props}
|
|
/>
|
|
);
|
|
};
|