fix: split single & bulk delete

This commit is contained in:
Alexandre Bodin 2024-06-25 20:24:18 +02:00
parent de4ef3d4cc
commit 2d79c58816
2 changed files with 72 additions and 16 deletions

View File

@ -103,7 +103,32 @@ const ListPage = () => {
} }
}; };
const confirmDelete = async () => { const deleteWebhook = async (id: string) => {
try {
const res = await deleteManyWebhooks({
ids: [id],
});
if ('error' in res) {
toggleNotification({
type: 'danger',
message: formatAPIError(res.error),
});
return;
}
} catch {
toggleNotification({
type: 'danger',
message: formatMessage({
id: 'notification.error',
defaultMessage: 'An error occurred',
}),
});
}
};
const confirmBulkDelete = async () => {
try { try {
const res = await deleteManyWebhooks({ const res = await deleteManyWebhooks({
ids: webhooksToDelete, ids: webhooksToDelete,
@ -349,20 +374,11 @@ const ListPage = () => {
</IconButton> </IconButton>
)} )}
{canDelete && ( {canDelete && (
<IconButton <DeleteActionButton
onClick={(e) => { onDelete={() => {
e.stopPropagation(); deleteWebhook(webhook.id);
setWebhooksToDelete([webhook.id]);
setShowModal(true);
}} }}
label={formatMessage({ />
id: 'Settings.webhooks.events.delete',
defaultMessage: 'Delete webhook',
})}
borderWidth={0}
>
<Trash />
</IconButton>
)} )}
</Flex> </Flex>
</Td> </Td>
@ -392,12 +408,52 @@ const ListPage = () => {
</Layouts.Content> </Layouts.Content>
</Page.Main> </Page.Main>
<Dialog.Root open={showModal} onOpenChange={setShowModal}> <Dialog.Root open={showModal} onOpenChange={setShowModal}>
<ConfirmDialog onConfirm={confirmDelete} /> <ConfirmDialog onConfirm={confirmBulkDelete} />
</Dialog.Root> </Dialog.Root>
</Layouts.Root> </Layouts.Root>
); );
}; };
/* -------------------------------------------------------------------------------------------------
* DeleteActionButton
* -----------------------------------------------------------------------------------------------*/
type DeleteActionButtonProps = {
onDelete: () => void;
};
const DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {
const [showModal, setShowModal] = React.useState(false);
const { formatMessage } = useIntl();
return (
<>
<IconButton
onClick={(e) => {
e.stopPropagation();
setShowModal(true);
}}
label={formatMessage({
id: 'Settings.webhooks.events.delete',
defaultMessage: 'Delete webhook',
})}
borderWidth={0}
>
<Trash />
</IconButton>
<Dialog.Root open={showModal} onOpenChange={setShowModal}>
<ConfirmDialog
onConfirm={(e) => {
e?.stopPropagation();
onDelete();
}}
/>
</Dialog.Root>
</>
);
};
/* ------------------------------------------------------------------------------------------------- /* -------------------------------------------------------------------------------------------------
* ProtectedListView * ProtectedListView
* -----------------------------------------------------------------------------------------------*/ * -----------------------------------------------------------------------------------------------*/

View File

@ -131,7 +131,7 @@ const createBuildContext = async <TOptions extends BaseOptions>({
const features = strapiInstance.config.get('features', undefined); const features = strapiInstance.config.get('features', undefined);
const { bundler = 'webpack', ...restOptions } = options; const { bundler = 'vite', ...restOptions } = options;
const buildContext = { const buildContext = {
appDir, appDir,