mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Progress * Progress * Things are working * More tweaks * Fixing unit test * Tweaks and fixing e2e tests * Remove ... in Save as * Fixing unit test * Fixing e2e test * Fixes Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
import React from 'react';
|
|
|
|
import { selectors } from '@grafana/e2e-selectors';
|
|
import { Button, ButtonVariant, ComponentSize, ModalsController } from '@grafana/ui';
|
|
import { DashboardModel } from 'app/features/dashboard/state';
|
|
|
|
import { SaveDashboardDrawer } from './SaveDashboardDrawer';
|
|
|
|
interface SaveDashboardButtonProps {
|
|
dashboard: DashboardModel;
|
|
onSaveSuccess?: () => void;
|
|
size?: ComponentSize;
|
|
}
|
|
|
|
export const SaveDashboardButton: React.FC<SaveDashboardButtonProps> = ({ dashboard, onSaveSuccess, size }) => {
|
|
return (
|
|
<ModalsController>
|
|
{({ showModal, hideModal }) => {
|
|
return (
|
|
<Button
|
|
size={size}
|
|
onClick={() => {
|
|
showModal(SaveDashboardDrawer, {
|
|
dashboard,
|
|
onSaveSuccess,
|
|
onDismiss: hideModal,
|
|
});
|
|
}}
|
|
aria-label={selectors.pages.Dashboard.Settings.General.saveDashBoard}
|
|
>
|
|
Save dashboard
|
|
</Button>
|
|
);
|
|
}}
|
|
</ModalsController>
|
|
);
|
|
};
|
|
|
|
export const SaveDashboardAsButton: React.FC<SaveDashboardButtonProps & { variant?: ButtonVariant }> = ({
|
|
dashboard,
|
|
onSaveSuccess,
|
|
variant,
|
|
size,
|
|
}) => {
|
|
return (
|
|
<ModalsController>
|
|
{({ showModal, hideModal }) => {
|
|
return (
|
|
<Button
|
|
size={size}
|
|
onClick={() => {
|
|
showModal(SaveDashboardDrawer, {
|
|
dashboard,
|
|
onSaveSuccess,
|
|
onDismiss: hideModal,
|
|
isCopy: true,
|
|
});
|
|
}}
|
|
variant={variant}
|
|
aria-label={selectors.pages.Dashboard.Settings.General.saveAsDashBoard}
|
|
>
|
|
Save as
|
|
</Button>
|
|
);
|
|
}}
|
|
</ModalsController>
|
|
);
|
|
};
|