PublicDashboards: Add recipient uid to recipient list (#64076)

uid added for recipients
This commit is contained in:
juanicabanas 2023-03-02 19:15:56 -03:00 committed by GitHub
parent 976db3f53f
commit 528dc28657
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 12 deletions

View File

@ -113,9 +113,9 @@ export const publicDashboardApi = createApi({
}, },
invalidatesTags: (result, error, { dashboardUid }) => [{ type: 'PublicDashboard', id: dashboardUid }], invalidatesTags: (result, error, { dashboardUid }) => [{ type: 'PublicDashboard', id: dashboardUid }],
}), }),
deleteEmailSharing: builder.mutation<void, { recipient: string; dashboardUid: string; uid: string }>({ deleteEmailSharing: builder.mutation<void, { recipientUid: string; dashboardUid: string; uid: string }>({
query: ({ uid, recipient }) => ({ query: ({ uid, recipientUid }) => ({
url: `/public-dashboards/${uid}/share/recipients/${recipient}`, url: `/public-dashboards/${uid}/share/recipients/${recipientUid}`,
method: 'DELETE', method: 'DELETE',
}), }),
async onQueryStarted(_, { dispatch, queryFulfilled }) { async onQueryStarted(_, { dispatch, queryFulfilled }) {

View File

@ -22,7 +22,7 @@ import {
} from 'app/features/dashboard/api/publicDashboardApi'; } from 'app/features/dashboard/api/publicDashboardApi';
import { useSelector } from 'app/types'; import { useSelector } from 'app/types';
import { PublicDashboardShareType, validEmailRegex } from '../SharePublicDashboardUtils'; import { PublicDashboard, PublicDashboardShareType, validEmailRegex } from '../SharePublicDashboardUtils';
interface EmailSharingConfigurationForm { interface EmailSharingConfigurationForm {
shareType: PublicDashboardShareType; shareType: PublicDashboardShareType;
@ -41,23 +41,23 @@ const EmailList = ({
dashboardUid, dashboardUid,
publicDashboardUid, publicDashboardUid,
}: { }: {
recipients: string[]; recipients: PublicDashboard['recipients'];
dashboardUid: string; dashboardUid: string;
publicDashboardUid: string; publicDashboardUid: string;
}) => { }) => {
const styles = useStyles2(getStyles); const styles = useStyles2(getStyles);
const [deleteEmail, { isLoading: isDeleteLoading }] = useDeleteEmailSharingMutation(); const [deleteEmail, { isLoading: isDeleteLoading }] = useDeleteEmailSharingMutation();
const onDeleteEmail = (email: string) => { const onDeleteEmail = (recipientUid: string) => {
deleteEmail({ recipient: email, dashboardUid: dashboardUid, uid: publicDashboardUid }); deleteEmail({ recipientUid, dashboardUid: dashboardUid, uid: publicDashboardUid });
}; };
return ( return (
<table className={styles.table} data-testid={selectors.EmailSharingList}> <table className={styles.table} data-testid={selectors.EmailSharingList}>
<tbody> <tbody>
{recipients.map((recipient) => ( {recipients!.map((recipient) => (
<tr key={recipient}> <tr key={recipient.uid}>
<td>{recipient}</td> <td>{recipient.recipient}</td>
<td> <td>
<ButtonGroup className={styles.tableButtonsContainer}> <ButtonGroup className={styles.tableButtonsContainer}>
<Button <Button
@ -68,7 +68,7 @@ const EmailList = ({
title="Revoke" title="Revoke"
size="sm" size="sm"
disabled={isDeleteLoading} disabled={isDeleteLoading}
onClick={() => onDeleteEmail(recipient)} onClick={() => onDeleteEmail(recipient.uid)}
> >
Revoke Revoke
</Button> </Button>

View File

@ -22,7 +22,7 @@ export interface PublicDashboard extends PublicDashboardSettings {
dashboardUid: string; dashboardUid: string;
timeSettings?: object; timeSettings?: object;
share: PublicDashboardShareType; share: PublicDashboardShareType;
recipients?: string[]; recipients?: Array<{ uid: string; recipient: string }>;
} }
// Instance methods // Instance methods