payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
180 lines (179 loc) • 17.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _modal = require("@faceless-ui/modal");
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _reacti18next = require("react-i18next");
const _reactrouterdom = require("react-router-dom");
const _reacttoastify = require("react-toastify");
const _getTranslation = require("../../../../utilities/getTranslation");
const _api = require("../../../api");
const _useTitle = /*#__PURE__*/ _interop_require_default(require("../../../hooks/useTitle"));
const _context = require("../../forms/Form/context");
const _Minimal = /*#__PURE__*/ _interop_require_default(require("../../templates/Minimal"));
const _Config = require("../../utilities/Config");
const _Button = /*#__PURE__*/ _interop_require_default(require("../Button"));
const _PopupButtonList = /*#__PURE__*/ _interop_require_wildcard(require("../Popup/PopupButtonList"));
require("./index.scss");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const baseClass = 'delete-document';
const DeleteDocument = (props)=>{
const { id, buttonId, collection: { labels: { singular } = {}, slug } = {}, collection, title: titleFromProps } = props;
const { routes: { admin, api }, serverURL } = (0, _Config.useConfig)();
const { setModified } = (0, _context.useForm)();
const [deleting, setDeleting] = (0, _react.useState)(false);
const { toggleModal } = (0, _modal.useModal)();
const history = (0, _reactrouterdom.useHistory)();
const { i18n, t } = (0, _reacti18next.useTranslation)('general');
const title = (0, _useTitle.default)({
collection
});
const titleToRender = titleFromProps || title || id;
const modalSlug = `delete-${id}`;
const addDefaultError = (0, _react.useCallback)(()=>{
setDeleting(false);
_reacttoastify.toast.error(t('error:deletingTitle', {
title
}));
}, [
t,
title
]);
const handleDelete = (0, _react.useCallback)(async ()=>{
setDeleting(true);
setModified(false);
try {
await _api.requests.delete(`${serverURL}${api}/${slug}/${id}`, {
headers: {
'Accept-Language': i18n.language,
'Content-Type': 'application/json'
}
}).then(async (res)=>{
try {
const json = await res.json();
if (res.status < 400) {
setDeleting(false);
toggleModal(modalSlug);
_reacttoastify.toast.success(json.message || t('titleDeleted', {
label: (0, _getTranslation.getTranslation)(singular, i18n),
title
}));
return history.push(`${admin}/collections/${slug}`);
}
toggleModal(modalSlug);
if (json.errors) {
json.errors.forEach((error)=>_reacttoastify.toast.error(error.message));
} else {
addDefaultError();
}
return false;
} catch (e) {
return addDefaultError();
}
});
} catch (e) {
addDefaultError();
}
}, [
setModified,
serverURL,
api,
slug,
id,
toggleModal,
modalSlug,
t,
singular,
i18n,
title,
history,
admin,
addDefaultError
]);
if (id) {
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_PopupButtonList.Button, {
id: buttonId,
onClick: ()=>{
setDeleting(false);
toggleModal(modalSlug);
}
}, t('delete')), /*#__PURE__*/ _react.default.createElement(_modal.Modal, {
className: baseClass,
slug: modalSlug
}, /*#__PURE__*/ _react.default.createElement(_Minimal.default, {
className: `${baseClass}__template`
}, /*#__PURE__*/ _react.default.createElement("h1", null, t('confirmDeletion')), /*#__PURE__*/ _react.default.createElement("p", null, /*#__PURE__*/ _react.default.createElement(_reacti18next.Trans, {
i18nKey: "aboutToDelete",
t: t,
values: {
label: (0, _getTranslation.getTranslation)(singular, i18n),
title: titleToRender
}
}, "aboutToDelete", /*#__PURE__*/ _react.default.createElement("strong", null, titleToRender))), /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__actions`
}, /*#__PURE__*/ _react.default.createElement(_Button.default, {
buttonStyle: "secondary",
id: "confirm-cancel",
onClick: deleting ? undefined : ()=>toggleModal(modalSlug),
type: "button"
}, t('cancel')), /*#__PURE__*/ _react.default.createElement(_Button.default, {
id: "confirm-delete",
onClick: deleting ? undefined : handleDelete
}, deleting ? t('deleting') : t('confirm'))))));
}
return null;
};
const _default = DeleteDocument;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RlbGV0ZURvY3VtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RhbCwgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUcmFucywgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvZ2V0VHJhbnNsYXRpb24nXG5pbXBvcnQgeyByZXF1ZXN0cyB9IGZyb20gJy4uLy4uLy4uL2FwaSdcbmltcG9ydCB1c2VUaXRsZSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaXRsZSdcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgTWluaW1hbFRlbXBsYXRlIGZyb20gJy4uLy4uL3RlbXBsYXRlcy9NaW5pbWFsJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0NvbmZpZydcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICogYXMgUG9wdXBMaXN0IGZyb20gJy4uL1BvcHVwL1BvcHVwQnV0dG9uTGlzdCdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZGVsZXRlLWRvY3VtZW50J1xuXG5jb25zdCBEZWxldGVEb2N1bWVudDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBidXR0b25JZCxcbiAgICBjb2xsZWN0aW9uOiB7IGxhYmVsczogeyBzaW5ndWxhciB9ID0ge30sIHNsdWcgfSA9IHt9LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgdGl0bGU6IHRpdGxlRnJvbVByb3BzLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCB7XG4gICAgcm91dGVzOiB7IGFkbWluLCBhcGkgfSxcbiAgICBzZXJ2ZXJVUkwsXG4gIH0gPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgc2V0TW9kaWZpZWQgfSA9IHVzZUZvcm0oKVxuICBjb25zdCBbZGVsZXRpbmcsIHNldERlbGV0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7IHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG4gIGNvbnN0IHRpdGxlID0gdXNlVGl0bGUoeyBjb2xsZWN0aW9uIH0pXG4gIGNvbnN0IHRpdGxlVG9SZW5kZXIgPSB0aXRsZUZyb21Qcm9wcyB8fCB0aXRsZSB8fCBpZFxuXG4gIGNvbnN0IG1vZGFsU2x1ZyA9IGBkZWxldGUtJHtpZH1gXG5cbiAgY29uc3QgYWRkRGVmYXVsdEVycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldERlbGV0aW5nKGZhbHNlKVxuICAgIHRvYXN0LmVycm9yKHQoJ2Vycm9yOmRlbGV0aW5nVGl0bGUnLCB7IHRpdGxlIH0pKVxuICB9LCBbdCwgdGl0bGVdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXREZWxldGluZyh0cnVlKVxuICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXF1ZXN0c1xuICAgICAgICAuZGVsZXRlKGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS8ke2lkfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzLmpzb24oKVxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPCA0MDApIHtcbiAgICAgICAgICAgICAgc2V0RGVsZXRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcbiAgICAgICAgICAgICAgdG9hc3Quc3VjY2Vzcyhqc29uLm1lc3NhZ2UgfHwgdCgndGl0bGVEZWxldGVkJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24oc2luZ3VsYXIsIGkxOG4pLCB0aXRsZSB9KSlcbiAgICAgICAgICAgICAgcmV0dXJuIGhpc3RvcnkucHVzaChgJHthZG1pbn0vY29sbGVjdGlvbnMvJHtzbHVnfWApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcblxuICAgICAgICAgICAgaWYgKGpzb24uZXJyb3JzKSB7XG4gICAgICAgICAgICAgIGpzb24uZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlKSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFkZERlZmF1bHRFcnJvcigpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gYWRkRGVmYXVsdEVycm9yKClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYWRkRGVmYXVsdEVycm9yKClcbiAgICB9XG4gIH0sIFtcbiAgICBzZXRNb2RpZmllZCxcbiAgICBzZXJ2ZXJVUkwsXG4gICAgYXBpLFxuICAgIHNsdWcsXG4gICAgaWQsXG4gICAgdG9nZ2xlTW9kYWwsXG4gICAgbW9kYWxTbHVnLFxuICAgIHQsXG4gICAgc2luZ3VsYXIsXG4gICAgaTE4bixcbiAgICB0aXRsZSxcbiAgICBoaXN0b3J5LFxuICAgIGFkbWluLFxuICAgIGFkZERlZmF1bHRFcnJvcixcbiAgXSlcblxuICBpZiAoaWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICA8UG9wdXBMaXN0LkJ1dHRvblxuICAgICAgICAgIGlkPXtidXR0b25JZH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXREZWxldGluZyhmYWxzZSlcbiAgICAgICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge3QoJ2RlbGV0ZScpfVxuICAgICAgICA8L1BvcHVwTGlzdC5CdXR0b24+XG4gICAgICAgIDxNb2RhbCBjbGFzc05hbWU9e2Jhc2VDbGFzc30gc2x1Zz17bW9kYWxTbHVnfT5cbiAgICAgICAgICA8TWluaW1hbFRlbXBsYXRlIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdGVtcGxhdGVgfT5cbiAgICAgICAgICAgIDxoMT57dCgnY29uZmlybURlbGV0aW9uJyl9PC9oMT5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8VHJhbnNcbiAgICAgICAgICAgICAgICBpMThuS2V5PVwiYWJvdXRUb0RlbGV0ZVwiXG4gICAgICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgICAgICB2YWx1ZXM9e3sgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHNpbmd1bGFyLCBpMThuKSwgdGl0bGU6IHRpdGxlVG9SZW5kZXIgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIGFib3V0VG9EZWxldGVcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt0aXRsZVRvUmVuZGVyfTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L1RyYW5zPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FjdGlvbnNgfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICBpZD1cImNvbmZpcm0tY2FuY2VsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtkZWxldGluZyA/IHVuZGVmaW5lZCA6ICgpID0+IHRvZ2dsZU1vZGFsKG1vZGFsU2x1Zyl9XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBvbkNsaWNrPXtkZWxldGluZyA/IHVuZGVmaW5lZCA6IGhhbmRsZURlbGV0ZX0+XG4gICAgICAgICAgICAgICAge2RlbGV0aW5nID8gdCgnZGVsZXRpbmcnKSA6IHQoJ2NvbmZpcm0nKX1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L01pbmltYWxUZW1wbGF0ZT5cbiAgICAgICAgPC9Nb2RhbD5cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVsZXRlRG9jdW1lbnRcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJEZWxldGVEb2N1bWVudCIsInByb3BzIiwiaWQiLCJidXR0b25JZCIsImNvbGxlY3Rpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsInNsdWciLCJ0aXRsZSIsInRpdGxlRnJvbVByb3BzIiwicm91dGVzIiwiYWRtaW4iLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJzZXRNb2RpZmllZCIsInVzZUZvcm0iLCJkZWxldGluZyIsInNldERlbGV0aW5nIiwidXNlU3RhdGUiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwidXNlVGl0bGUiLCJ0aXRsZVRvUmVuZGVyIiwibW9kYWxTbHVnIiwiYWRkRGVmYXVsdEVycm9yIiwidXNlQ2FsbGJhY2siLCJ0b2FzdCIsImVycm9yIiwiaGFuZGxlRGVsZXRlIiwicmVxdWVzdHMiLCJkZWxldGUiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJ0aGVuIiwicmVzIiwianNvbiIsInN0YXR1cyIsInN1Y2Nlc3MiLCJtZXNzYWdlIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsInB1c2giLCJlcnJvcnMiLCJmb3JFYWNoIiwiZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJQb3B1cExpc3QiLCJCdXR0b24iLCJvbkNsaWNrIiwiTW9kYWwiLCJjbGFzc05hbWUiLCJNaW5pbWFsVGVtcGxhdGUiLCJoMSIsInAiLCJUcmFucyIsImkxOG5LZXkiLCJ2YWx1ZXMiLCJzdHJvbmciLCJkaXYiLCJidXR0b25TdHlsZSIsInVuZGVmaW5lZCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUpBOzs7ZUFBQTs7O3VCQXJKZ0M7K0RBQ2E7OEJBQ1A7Z0NBQ1g7K0JBQ0w7Z0NBSVM7cUJBQ047aUVBQ0o7eUJBQ0c7Z0VBQ0k7d0JBQ0Y7K0RBQ1A7eUVBQ1E7UUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxpQkFBa0MsQ0FBQ0M7SUFDdkMsTUFBTSxFQUNKQyxFQUFFLEVBQ0ZDLFFBQVEsRUFD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