mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Add mechanism for imperatively showing modals * Migration work in progress * Reorganise save modal components * use app events emmiter instead of root scope one * Add center alignment to layoout component * Make save buttons wotk * Prettier * Remove save dashboard logic from dashboard srv * Remove unused code * Dont show error notifications * Save modal when dashboard is overwritten * For tweaks * Folder picker tweaks * Save dashboard tweaks * Copy provisioned dashboard to clipboard * Enable saving dashboard json to file * Use SaveDashboardAsButton * Review * Align buttons in dashboard settings * Migrate SaveDashboardAs tests * TS fixes * SaveDashboardForm tests migrated * Fixe some failing tests * Fix folder picker tests * Fix HistoryListCtrl tests * Remove old import * Enable fixed positioning for folder picker select menu * Modal: show react modals with appEvents * Open react modals using event * Move save dashboard modals to dashboard feature * Make e2e pass * Update public/app/features/dashboard/components/SaveDashboard/SaveDashboardButton.tsx * Hacking old vs new buttons to make all the things look like it's old good Grafana ;) Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { Modal } from '@grafana/ui';
|
|
import { css } from 'emotion';
|
|
import { SaveDashboardForm } from './forms/SaveDashboardForm';
|
|
import { SaveDashboardErrorProxy } from './SaveDashboardErrorProxy';
|
|
import { useDashboardSave } from './useDashboardSave';
|
|
import { SaveDashboardModalProps } from './types';
|
|
|
|
export const SaveDashboardModal: React.FC<SaveDashboardModalProps> = ({ dashboard, onDismiss, onSaveSuccess }) => {
|
|
const { state, onDashboardSave } = useDashboardSave(dashboard);
|
|
return (
|
|
<>
|
|
{state.error && <SaveDashboardErrorProxy error={state.error} dashboard={dashboard} onDismiss={onDismiss} />}
|
|
{!state.error && (
|
|
<Modal
|
|
isOpen={true}
|
|
title="Save dashboard"
|
|
icon="copy"
|
|
onDismiss={onDismiss}
|
|
className={css`
|
|
width: 500px;
|
|
`}
|
|
>
|
|
<SaveDashboardForm
|
|
dashboard={dashboard}
|
|
onCancel={onDismiss}
|
|
onSuccess={() => {
|
|
onDismiss();
|
|
if (onSaveSuccess) {
|
|
onSaveSuccess();
|
|
}
|
|
}}
|
|
onSubmit={onDashboardSave}
|
|
/>
|
|
</Modal>
|
|
)}
|
|
</>
|
|
);
|
|
};
|