You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					132 lines
				
				5.1 KiB
			
		
		
			
		
	
	
					132 lines
				
				5.1 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = void 0; | ||
|  | 
 | ||
|  | var _designSystem = require("@adminjs/design-system"); | ||
|  | 
 | ||
|  | var _react = _interopRequireWildcard(require("react")); | ||
|  | 
 | ||
|  | var _reactRedux = require("react-redux"); | ||
|  | 
 | ||
|  | var _reactRouter = require("react-router"); | ||
|  | 
 | ||
|  | var _viewHelpers = _interopRequireDefault(require("../../../backend/utils/view-helpers/view-helpers")); | ||
|  | 
 | ||
|  | var _allowOverride = _interopRequireDefault(require("../../hoc/allow-override")); | ||
|  | 
 | ||
|  | var _utils = require("../../utils"); | ||
|  | 
 | ||
|  | var _app = require("../app"); | ||
|  | 
 | ||
|  | var _baseActionComponent = _interopRequireDefault(require("../app/base-action-component")); | ||
|  | 
 | ||
|  | var _errorMessage = require("../app/error-message"); | ||
|  | 
 | ||
|  | var _filterDrawer = _interopRequireDefault(require("../app/filter-drawer")); | ||
|  | 
 | ||
|  | function _interopRequireDefault(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 _interopRequireWildcard(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 = {}; 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 getAction = resource => { | ||
|  |   const h = new _viewHelpers.default(); | ||
|  |   const resourceId = ':resourceId'; | ||
|  |   const actionName = ':actionName'; | ||
|  |   const recordId = ':recordId'; | ||
|  |   const recordActionUrl = h.recordActionUrl({ | ||
|  |     resourceId, | ||
|  |     recordId, | ||
|  |     actionName | ||
|  |   }); | ||
|  |   const resourceActionUrl = h.resourceActionUrl({ | ||
|  |     resourceId, | ||
|  |     actionName | ||
|  |   }); | ||
|  |   const bulkActionUrl = h.bulkActionUrl({ | ||
|  |     resourceId, | ||
|  |     actionName | ||
|  |   }); | ||
|  |   const resourceActionMatch = (0, _reactRouter.useMatch)(resourceActionUrl); | ||
|  |   const recordActionMatch = (0, _reactRouter.useMatch)(recordActionUrl); | ||
|  |   const bulkActionMatch = (0, _reactRouter.useMatch)(bulkActionUrl); | ||
|  |   const action = (resourceActionMatch === null || resourceActionMatch === void 0 ? void 0 : resourceActionMatch.params.actionName) || (recordActionMatch === null || recordActionMatch === void 0 ? void 0 : recordActionMatch.params.actionName) || (bulkActionMatch === null || bulkActionMatch === void 0 ? void 0 : bulkActionMatch.params.actionName); | ||
|  |   return action ? resource.actions.find(a => a.name === action) : undefined; | ||
|  | }; | ||
|  | 
 | ||
|  | const ResourceAction = props => { | ||
|  |   const params = (0, _reactRouter.useParams)(); | ||
|  |   const { | ||
|  |     resources | ||
|  |   } = props; | ||
|  |   const { | ||
|  |     resourceId | ||
|  |   } = params; | ||
|  |   const [filterVisible, setFilterVisible] = (0, _react.useState)(false); | ||
|  |   const [tag, setTag] = (0, _react.useState)(''); | ||
|  | 
 | ||
|  |   if (!resourceId) { | ||
|  |     return null; | ||
|  |   } | ||
|  | 
 | ||
|  |   const resource = resources.find(r => r.id === resourceId); | ||
|  | 
 | ||
|  |   if (!resource) { | ||
|  |     return /*#__PURE__*/_react.default.createElement(_errorMessage.NoResourceError, { | ||
|  |       resourceId: resourceId | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   const realEndAction = getAction(resource); | ||
|  | 
 | ||
|  |   if (realEndAction && !realEndAction.showInDrawer) { | ||
|  |     return null; | ||
|  |   } | ||
|  | 
 | ||
|  |   const listActionName = 'list'; | ||
|  |   const listAction = resource.resourceActions.find(r => r.name === listActionName); | ||
|  | 
 | ||
|  |   if (!listAction) { | ||
|  |     return /*#__PURE__*/_react.default.createElement(_errorMessage.NoActionError, { | ||
|  |       resourceId: resourceId, | ||
|  |       actionName: listActionName | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   const toggleFilter = listAction.showFilter ? () => setFilterVisible(!filterVisible) : undefined; | ||
|  |   const contentTag = (0, _utils.getResourceElementCss)(resource.id, 'list'); | ||
|  |   return /*#__PURE__*/_react.default.createElement(_designSystem.Box, { | ||
|  |     variant: "grey", | ||
|  |     width: listAction.containerWidth, | ||
|  |     mx: "auto", | ||
|  |     "data-css": contentTag | ||
|  |   }, /*#__PURE__*/_react.default.createElement(_app.ActionHeader, { | ||
|  |     resource: resource, | ||
|  |     action: listAction, | ||
|  |     tag: tag, | ||
|  |     toggleFilter: toggleFilter | ||
|  |   }), /*#__PURE__*/_react.default.createElement(_baseActionComponent.default, { | ||
|  |     action: listAction, | ||
|  |     resource: resource, | ||
|  |     setTag: setTag | ||
|  |   }), listAction.showFilter ? /*#__PURE__*/_react.default.createElement(_filterDrawer.default, { | ||
|  |     key: filterVisible.toString(), | ||
|  |     resource: resource, | ||
|  |     isVisible: filterVisible, | ||
|  |     toggleFilter: () => { | ||
|  |       setFilterVisible(!filterVisible); | ||
|  |     } | ||
|  |   }) : ''); | ||
|  | }; | ||
|  | 
 | ||
|  | const mapStateToProps = state => ({ | ||
|  |   resources: state.resources | ||
|  | }); | ||
|  | 
 | ||
|  | var _default = (0, _allowOverride.default)((0, _reactRedux.connect)(mapStateToProps)(ResourceAction), 'ResourceRoute'); | ||
|  | 
 | ||
|  | exports.default = _default; |