payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
64 lines (63 loc) • 7.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "collectionCustomRoutes", {
enumerable: true,
get: function() {
return collectionCustomRoutes;
}
});
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
const _reactrouterdom = require("react-router-dom");
const _Unauthorized = /*#__PURE__*/ _interop_require_default(require("../../../Unauthorized"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const internalViews = [
'Default',
'LivePreview',
'Version',
'Versions',
'Relationships',
'References',
'API'
];
const collectionCustomRoutes = (props)=>{
const { collection, match, permissions, user } = props;
let customViews = [];
const BaseEdit = collection?.admin?.components?.views?.Edit;
if (typeof BaseEdit !== 'function' && typeof BaseEdit === 'object') {
customViews = Object.entries(BaseEdit).filter(([viewKey, view])=>{
// Remove internal views from the list of custom views
// This way we can easily iterate over the remaining views
return Boolean(!internalViews.includes(viewKey) && typeof view !== 'function' && typeof view === 'object');
})?.map(([, view])=>view);
}
return customViews?.reduce((acc, ViewComponent)=>{
const routesToReturn = [
...acc
];
if (typeof ViewComponent === 'function') {
routesToReturn.push(/*#__PURE__*/ _react.default.createElement(ViewComponent, {
key: ViewComponent.name,
user: user
}));
} else {
if (collection && 'Component' in ViewComponent) {
const { Component, path } = ViewComponent;
routesToReturn.push(/*#__PURE__*/ _react.default.createElement(_reactrouterdom.Route, {
exact: true,
key: `${collection.slug}-${path}`,
path: `${match.url}${path}`
}, permissions?.read?.permission ? /*#__PURE__*/ _react.default.createElement(Component, {
user: user
}) : /*#__PURE__*/ _react.default.createElement(_Unauthorized.default, null)));
}
}
return routesToReturn;
}, []);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0VkaXQvUm91dGVzL2N1c3RvbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBtYXRjaCB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uUGVybWlzc2lvbiwgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2F1dGgnXG5pbXBvcnQgdHlwZSB7IEVkaXRWaWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgY29sbGVjdGlvblZpZXdUeXBlIH0gZnJvbSAnLi9DdXN0b21Db21wb25lbnQnXG5cbmltcG9ydCBVbmF1dGhvcml6ZWQgZnJvbSAnLi4vLi4vLi4vVW5hdXRob3JpemVkJ1xuXG5jb25zdCBpbnRlcm5hbFZpZXdzOiBjb2xsZWN0aW9uVmlld1R5cGVbXSA9IFtcbiAgJ0RlZmF1bHQnLFxuICAnTGl2ZVByZXZpZXcnLFxuICAnVmVyc2lvbicsXG4gICdWZXJzaW9ucycsXG4gICdSZWxhdGlvbnNoaXBzJyxcbiAgJ1JlZmVyZW5jZXMnLFxuICAnQVBJJyxcbl1cblxuZXhwb3J0IGNvbnN0IGNvbGxlY3Rpb25DdXN0b21Sb3V0ZXMgPSAocHJvcHM6IHtcbiAgY29sbGVjdGlvbj86IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgbWF0Y2g6IG1hdGNoPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgfT5cbiAgcGVybWlzc2lvbnM6IENvbGxlY3Rpb25QZXJtaXNzaW9uXG4gIHVzZXI6IFVzZXJcbn0pOiBSZWFjdC5SZWFjdEVsZW1lbnRbXSA9PiB7XG4gIGNvbnN0IHsgY29sbGVjdGlvbiwgbWF0Y2gsIHBlcm1pc3Npb25zLCB1c2VyIH0gPSBwcm9wc1xuXG4gIGxldCBjdXN0b21WaWV3czogRWRpdFZpZXdbXSA9IFtdXG5cbiAgY29uc3QgQmFzZUVkaXQgPSBjb2xsZWN0aW9uPy5hZG1pbj8uY29tcG9uZW50cz8udmlld3M/LkVkaXRcblxuICBpZiAodHlwZW9mIEJhc2VFZGl0ICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBCYXNlRWRpdCA9PT0gJ29iamVjdCcpIHtcbiAgICBjdXN0b21WaWV3cyA9IE9iamVjdC5lbnRyaWVzKEJhc2VFZGl0KVxuICAgICAgLmZpbHRlcigoW3ZpZXdLZXksIHZpZXddKSA9PiB7XG4gICAgICAgIC8vIFJlbW92ZSBpbnRlcm5hbCB2aWV3cyBmcm9tIHRoZSBsaXN0IG9mIGN1c3RvbSB2aWV3c1xuICAgICAgICAvLyBUaGlzIHdheSB3ZSBjYW4gZWFzaWx5IGl0ZXJhdGUgb3ZlciB0aGUgcmVtYWluaW5nIHZpZXdzXG4gICAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAgICFpbnRlcm5hbFZpZXdzLmluY2x1ZGVzKHZpZXdLZXkgYXMgYW55KSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZpZXcgIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2aWV3ID09PSAnb2JqZWN0JyxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgID8ubWFwKChbLCB2aWV3XSkgPT4gdmlldylcbiAgfVxuXG4gIHJldHVybiBjdXN0b21WaWV3cz8ucmVkdWNlKChhY2MsIFZpZXdDb21wb25lbnQpID0+IHtcbiAgICBjb25zdCByb3V0ZXNUb1JldHVybiA9IFsuLi5hY2NdXG5cbiAgICBpZiAodHlwZW9mIFZpZXdDb21wb25lbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJvdXRlc1RvUmV0dXJuLnB1c2goPFZpZXdDb21wb25lbnQga2V5PXtWaWV3Q29tcG9uZW50Lm5hbWV9IHVzZXI9e3VzZXJ9IC8+KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiAmJiAnQ29tcG9uZW50JyBpbiBWaWV3Q29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHsgQ29tcG9uZW50LCBwYXRoIH0gPSBWaWV3Q29tcG9uZW50XG5cbiAgICAgICAgcm91dGVzVG9SZXR1cm4ucHVzaChcbiAgICAgICAgICA8Um91dGUgZXhhY3Qga2V5PXtgJHtjb2xsZWN0aW9uLnNsdWd9LSR7cGF0aH1gfSBwYXRoPXtgJHttYXRjaC51cmx9JHtwYXRofWB9PlxuICAgICAgICAgICAge3Blcm1pc3Npb25zPy5yZWFkPy5wZXJtaXNzaW9uID8gPENvbXBvbmVudCB1c2VyPXt1c2VyfSAvPiA6IDxVbmF1dGhvcml6ZWQgLz59XG4gICAgICAgICAgPC9Sb3V0ZT4sXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm91dGVzVG9SZXR1cm5cbiAgfSwgW10pXG59XG4iXSwibmFtZXMiOlsiY29sbGVjdGlvbkN1c3RvbVJvdXRlcyIsImludGVybmFsVmlld3MiLCJwcm9wcyIsImNvbGxlY3Rpb24iLCJtYXRjaCIsInBlcm1pc3Npb25zIiwidXNlciIsImN1c3RvbVZpZXdzIiwiQmFzZUVkaXQiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJ2aWV3cyIsIkVkaXQiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmlsdGVyIiwidmlld0tleSIsInZpZXciLCJCb29sZWFuIiwiaW5jbHVkZXMiLCJtYXAiLCJyZWR1Y2UiLCJhY2MiLCJWaWV3Q29tcG9uZW50Iiwicm91dGVzVG9SZXR1cm4iLCJwdXNoIiwia2V5IiwibmFtZSIsIkNvbXBvbmVudCIsInBhdGgiLCJSb3V0ZSIsImV4YWN0Iiwic2x1ZyIsInVybCIsInJlYWQiLCJwZXJtaXNzaW9uIiwiVW5hdXRob3JpemVkIl0sIm1hcHBpbmdzIjoiOzs7OytCQXNCYUE7OztlQUFBQTs7OzhEQXBCSztnQ0FDSTtxRUFPRzs7Ozs7O0FBRXpCLE1BQU1DLGdCQUFzQztJQUMxQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTUQseUJBQXlCLENBQUNFO0lBUXJDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRUMsSUFBSSxFQUFFLEdBQUdKO0lBRWpELElBQUlLLGNBQTBCLEVBQUU7SUFFaEMsTUFBTUMsV0FBV0wsWUFBWU0sT0FBT0MsWUFBWUMsT0FBT0M7SUFFdkQsSUFBSSxPQUFPSixhQUFhLGNBQWMsT0FBT0EsYUFBYSxVQUFVO1FBQ2xFRCxjQUFjTSxPQUFPQyxPQUFPLENBQUNOLFVBQzFCTyxNQUFNLENBQUMsQ0FBQyxDQUFDQyxTQUFTQyxLQUFLO1lBQ3RCLHNEQUFzRDtZQUN0RCwwREFBMEQ7WUFDMUQsT0FBT0MsUUFDTCxDQUFDakIsY0FBY2tCLFFBQVEsQ0FBQ0gsWUFDdEIsT0FBT0MsU0FBUyxjQUNoQixPQUFPQSxTQUFTO1FBRXRCLElBQ0VHLElBQUksQ0FBQyxHQUFHSCxLQUFLLEdBQUtBO0lBQ3hCO0lBRUEsT0FBT1YsYUFBYWMsT0FBTyxDQUFDQyxLQUFLQztRQUMvQixNQUFNQyxpQkFBaUI7ZUFBSUY7U0FBSTtRQUUvQixJQUFJLE9BQU9DLGtCQUFrQixZQUFZO1lBQ3ZDQyxlQUFlQyxJQUFJLGVBQUMsNkJBQUNGO2dCQUFjRyxLQUFLSCxjQUFjSSxJQUFJO2dCQUFFckIsTUFBTUE7O1FBQ3BFLE9BQU87WUFDTCxJQUFJSCxjQUFjLGVBQWVvQixlQUFlO2dCQUM5QyxNQUFNLEVBQUVLLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdOO2dCQUU1QkMsZUFBZUMsSUFBSSxlQUNqQiw2QkFBQ0sscUJBQUs7b0JBQUNDLE9BQUFBO29CQUFNTCxLQUFLLENBQUMsRUFBRXZCLFdBQVc2QixJQUFJLENBQUMsQ0FBQyxFQUFFSCxLQUFLLENBQUM7b0JBQUVBLE1BQU0sQ0FBQyxFQUFFekIsTUFBTTZCLEdBQUcsQ0FBQyxFQUFFSixLQUFLLENBQUM7bUJBQ3hFeEIsYUFBYTZCLE1BQU1DLDJCQUFhLDZCQUFDUDtvQkFBVXRCLE1BQU1BO21DQUFXLDZCQUFDOEIscUJBQVk7WUFHaEY7UUFDRjtRQUVBLE9BQU9aO0lBQ1QsR0FBRyxFQUFFO0FBQ1AifQ==