Files
klz-cables.com/.pnpm-store/v10/files/70/cd02b2e80bf1c04bf08b8fc2ab70b950df1a677ed74adb5a912437a0df8bbe7c4319c06685e88f49c80af68f988db3b8b6f83f842641a7c77ab69a749c4aff
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

164 lines
5.1 KiB
Plaintext

'use client';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useModal } from '@faceless-ui/modal';
import { getTranslation } from '@payloadcms/translations';
import { useRouter } from 'next/navigation.js';
import { formatAdminURL } from 'payload/shared';
import React, { Fragment, useCallback, useState } from 'react';
import { toast } from 'sonner';
import { CheckboxInput } from '../../fields/Checkbox/Input.js';
import { useForm } from '../../forms/Form/context.js';
import { useConfig } from '../../providers/Config/index.js';
import { useDocumentTitle } from '../../providers/DocumentTitle/index.js';
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
import { useTranslation } from '../../providers/Translation/index.js';
import { requests } from '../../utilities/api.js';
import { ConfirmationModal } from '../ConfirmationModal/index.js';
import { PopupList } from '../Popup/index.js';
import { Translation } from '../Translation/index.js';
import './index.scss';
const baseClass = 'delete-document';
export const DeleteDocument = props => {
const {
id,
buttonId,
collectionSlug,
onDelete,
redirectAfterDelete = true,
singularLabel,
title: titleFromProps
} = props;
const {
config: {
routes: {
admin: adminRoute,
api
}
},
getEntityConfig
} = useConfig();
const collectionConfig = getEntityConfig({
collectionSlug
});
const {
setModified
} = useForm();
const router = useRouter();
const {
i18n,
t
} = useTranslation();
const {
title
} = useDocumentTitle();
const {
startRouteTransition
} = useRouteTransition();
const {
openModal
} = useModal();
const modalSlug = `delete-${id}`;
const [deletePermanently, setDeletePermanently] = useState(false);
const addDefaultError = useCallback(() => {
toast.error(t('error:deletingTitle', {
title
}));
}, [t, title]);
const handleDelete = useCallback(async () => {
setModified(false);
try {
const url = formatAdminURL({
apiRoute: api,
path: `/${collectionSlug}/${id}`
});
const res = deletePermanently || !collectionConfig.trash ? await requests.delete(url, {
headers: {
'Accept-Language': i18n.language,
'Content-Type': 'application/json'
}
}) : await requests.patch(url, {
body: JSON.stringify({
deletedAt: new Date().toISOString()
}),
headers: {
'Accept-Language': i18n.language,
'Content-Type': 'application/json'
}
});
const json = await res.json();
if (res.status < 400) {
toast.success(t(deletePermanently || !collectionConfig.trash ? 'general:titleDeleted' : 'general:titleTrashed', {
label: getTranslation(singularLabel, i18n),
title
}) || json.message);
if (redirectAfterDelete) {
return startRouteTransition(() => router.push(formatAdminURL({
adminRoute,
path: `/collections/${collectionSlug}`
})));
}
if (typeof onDelete === 'function') {
await onDelete({
id,
collectionConfig
});
}
return;
}
if (json.errors) {
json.errors.forEach(error => toast.error(error.message));
} else {
addDefaultError();
}
return;
} catch (_err) {
return addDefaultError();
}
}, [deletePermanently, setModified, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition]);
if (id) {
return /*#__PURE__*/_jsxs(Fragment, {
children: [/*#__PURE__*/_jsx(PopupList.Button, {
id: buttonId,
onClick: () => {
openModal(modalSlug);
},
children: t('general:delete')
}), /*#__PURE__*/_jsx(ConfirmationModal, {
body: /*#__PURE__*/_jsxs(Fragment, {
children: [/*#__PURE__*/_jsx(Translation, {
elements: {
'1': ({
children
}) => /*#__PURE__*/_jsx("strong", {
children: children
})
},
i18nKey: collectionConfig.trash ? 'general:aboutToTrash' : 'general:aboutToDelete',
t: t,
variables: {
label: getTranslation(singularLabel, i18n),
title: titleFromProps || title || id
}
}), collectionConfig.trash && /*#__PURE__*/_jsx("div", {
className: `${baseClass}__checkbox`,
children: /*#__PURE__*/_jsx(CheckboxInput, {
checked: deletePermanently,
id: "delete-forever",
label: t('general:deletePermanently'),
name: "delete-forever",
onToggle: e => setDeletePermanently(e.target.checked)
})
})]
}),
className: baseClass,
confirmingLabel: t('general:deleting'),
heading: t('general:confirmDeletion'),
modalSlug: modalSlug,
onConfirm: handleDelete
})]
});
}
return null;
};
//# sourceMappingURL=index.js.map