PublicDashboards: Reshare public dashboard to recipient API call (#64178)

This commit is contained in:
juanicabanas
2023-03-06 16:09:19 -03:00
committed by GitHub
parent e217854c24
commit 10476043ea
2 changed files with 39 additions and 26 deletions

View File

@@ -15,9 +15,10 @@ import {
useStyles2,
} from '@grafana/ui/src';
import {
useAddEmailSharingMutation,
useDeleteEmailSharingMutation,
useAddRecipientMutation,
useDeleteRecipientMutation,
useGetPublicDashboardQuery,
useReshareAccessToRecipientMutation,
useUpdatePublicDashboardMutation,
} from 'app/features/dashboard/api/publicDashboardApi';
import { useSelector } from 'app/types';
@@ -46,12 +47,19 @@ const EmailList = ({
publicDashboardUid: string;
}) => {
const styles = useStyles2(getStyles);
const [deleteEmail, { isLoading: isDeleteLoading }] = useDeleteEmailSharingMutation();
const [deleteEmail, { isLoading: isDeleteLoading }] = useDeleteRecipientMutation();
const [reshareAccess, { isLoading: isReshareLoading }] = useReshareAccessToRecipientMutation();
const isLoading = isDeleteLoading || isReshareLoading;
const onDeleteEmail = (recipientUid: string) => {
deleteEmail({ recipientUid, dashboardUid: dashboardUid, uid: publicDashboardUid });
};
const onReshare = (recipientUid: string) => {
reshareAccess({ recipientUid, uid: publicDashboardUid });
};
return (
<table className={styles.table} data-testid={selectors.EmailSharingList}>
<tbody>
@@ -67,11 +75,23 @@ const EmailList = ({
aria-label="Revoke"
title="Revoke"
size="sm"
disabled={isDeleteLoading}
disabled={isLoading}
onClick={() => onDeleteEmail(recipient.uid)}
>
Revoke
</Button>
<Button
type="button"
variant="primary"
fill="text"
aria-label="Resend"
title="Resend"
size="sm"
disabled={isLoading}
onClick={() => onReshare(recipient.uid)}
>
Resend
</Button>
</ButtonGroup>
</td>
</tr>
@@ -88,7 +108,7 @@ export const EmailSharingConfiguration = () => {
const { data: publicDashboard } = useGetPublicDashboardQuery(dashboard.uid);
const [updateShareType] = useUpdatePublicDashboardMutation();
const [addEmail, { isLoading: isAddEmailLoading }] = useAddEmailSharingMutation();
const [addEmail, { isLoading: isAddEmailLoading }] = useAddRecipientMutation();
const {
register,