import React from 'react';
import { openToast, ToastBody } from '@mongodb-js/compass-components';
type BulkDeleteSuccessToastProps = {
affectedDocuments?: number;
onRefresh: () => void;
};
export function openBulkDeleteSuccessToast({
affectedDocuments,
onRefresh,
}: BulkDeleteSuccessToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The delete operation finished successfully.';
break;
case 1:
text = `${affectedDocuments} document has been deleted.`;
break;
default:
text = `${affectedDocuments} documents have been deleted.`;
}
openToast('bulk-delete-toast', {
title: '',
variant: 'success',
dismissible: true,
description: (
),
});
}
type BulkDeleteInProgressToastProps = {
affectedDocuments?: number;
};
export function openBulkDeleteProgressToast({
affectedDocuments,
}: BulkDeleteInProgressToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The delete operation is in progress.';
break;
case 1:
text = `${affectedDocuments} document is being deleted.`;
break;
default:
text = `${affectedDocuments} documents are being deleted.`;
}
openToast('bulk-delete-toast', {
title: '',
variant: 'progress',
dismissible: true,
description: ,
});
}
type BulkDeleteFailureToastProps = {
affectedDocuments?: number;
};
export function openBulkDeleteFailureToast({
affectedDocuments,
}: BulkDeleteFailureToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The delete operation failed.';
break;
case 1:
text = `${affectedDocuments} document could not been deleted.`;
break;
default:
text = `${affectedDocuments} documents could not been deleted.`;
}
openToast('bulk-delete-toast', {
title: '',
variant: 'warning',
dismissible: true,
timeout: 6_000,
description: ,
});
}
type BulkUpdateSuccessToastProps = {
affectedDocuments?: number;
onRefresh: () => void;
};
export function openBulkUpdateSuccessToast({
affectedDocuments,
onRefresh,
}: BulkUpdateSuccessToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The update operation finished successfully.';
break;
case 1:
text = `${affectedDocuments} document has been updated.`;
break;
default:
text = `${affectedDocuments} documents have been updated.`;
}
openToast('bulk-update-toast', {
title: '',
variant: 'success',
dismissible: true,
description: (
),
});
}
type BulkUpdateInProgressToastProps = {
affectedDocuments?: number;
};
export function openBulkUpdateProgressToast({
affectedDocuments,
}: BulkUpdateInProgressToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The update operation is in progress.';
break;
case 1:
text = `${affectedDocuments} document is being updated.`;
break;
default:
text = `${affectedDocuments} documents are being updated.`;
}
openToast('bulk-update-toast', {
title: '',
variant: 'progress',
dismissible: true,
description: ,
});
}
type BulkUpdateFailureToastProps = {
affectedDocuments?: number;
};
export function openBulkUpdateFailureToast({
affectedDocuments,
}: BulkUpdateFailureToastProps): void {
let text;
switch (affectedDocuments) {
case undefined:
text = 'The update operation failed.';
break;
case 1:
text = `${affectedDocuments} document could not been updated.`;
break;
default:
text = `${affectedDocuments} documents could not been updated.`;
}
openToast('bulk-update-toast', {
title: '',
variant: 'warning',
dismissible: true,
timeout: 6_000,
description: ,
});
}