@amsterdam/bmi-dms-upload
Version:
A document upload flow that can be implemented in any BMI React application. Documents are stored in DMS. Metadata can be added in the flow.
2 lines • 4.65 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return SingleWizard}});var _jsxruntime=require("react/jsx-runtime");var _react=_interop_require_wildcard(require("react"));var _reactrouterdomv5compat=require("react-router-dom-v5-compat");var _bmicomponentlibrary=require("@amsterdam/bmi-component-library");var _useConfirmTermination=_interop_require_default(require("../../../hooks/useConfirmTermination"));var _ConfirmTermination=_interop_require_default(require("../../../components/ConfirmTermination/ConfirmTermination"));var _WizardFooter=_interop_require_default(require("../../../components/WizardFooter/WizardFooter"));var _hooks=require("../../hooks");var _model=require("../single/store/model");var _selectors=require("../single/store/selectors");var _slice=require("../single/store/slice");var _styles=require("./styles");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={};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}function SingleWizard(param){var asset=param.asset,children=param.children,isValidForm=param.isValidForm,onCancel=param.onCancel,onMetadataSubmit=param.onMetadataSubmit;var _useConfirmTermination1=(0,_useConfirmTermination.default)(function(){return resetAndClose()}),isOpen=_useConfirmTermination1.isOpen,confirm=_useConfirmTermination1.confirm;var currentStep=(0,_hooks.useAppSelector)(_selectors.getCurrentStep);var dispatch=(0,_hooks.useAppDispatch)();var file=(0,_hooks.useAppSelector)(_selectors.getFile);var metadata=(0,_hooks.useAppSelector)(_selectors.getMetadata);var navigate=(0,_reactrouterdomv5compat.useNavigate)();var handlePrev=(0,_react.useCallback)(function(){dispatch((0,_slice.stepBack)({navigate:navigate}))},[navigate]);var handleNext=(0,_react.useCallback)(function(){dispatch((0,_slice.stepForward)({navigate:navigate}))},[navigate]);var close=(0,_react.useCallback)(function(){dispatch((0,_slice.resetState)({navigate:navigate}))},[navigate]);var resetAndClose=(0,_react.useCallback)(function(){dispatch((0,_slice.resetState)({navigate:navigate}));onCancel({}).catch(function(err){console.error(err)})},[]);var handleSubmit=(0,_react.useCallback)(function(e){e.preventDefault();if(file&&isValidForm){onMetadataSubmit({file:file,metadata:metadata}).then(function(){return close()}).catch(function(err){console.error(err)})}},[file,metadata]);return(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[isOpen&&(0,_jsxruntime.jsx)(_ConfirmTermination.default,{backdropOpacity:1}),(0,_jsxruntime.jsxs)(_bmicomponentlibrary.Modal,{id:"dms-upload-wizard",open:true,onClose:!file?undefined:function(){return confirm()},closeOnBackdropClick:false,children:[(0,_jsxruntime.jsx)(_bmicomponentlibrary.Modal.TopBar,{hideCloseButton:false,onCloseButton:function(){return confirm(!file)},children:(0,_jsxruntime.jsxs)(_styles.ModalTopBarStyle,{styleAs:"h4",as:"h2",children:["Bestand uploaden voor ",asset.name]})}),(0,_jsxruntime.jsx)(_jsxruntime.Fragment,{children:(0,_jsxruntime.jsx)(_bmicomponentlibrary.Modal.Content,{children:(0,_jsxruntime.jsx)(_styles.ModalContentStyle,{children:children})})}),(0,_jsxruntime.jsx)(_WizardFooter.default,{cancel:{visible:true,onClick:function(){return confirm()},dataTestId:"cancel-wizard"},previous:{visible:currentStep>=_model.CurrentStep.SelectFields,onClick:handlePrev,dataTestId:"previous-button"},next:{visible:currentStep<=_model.CurrentStep.Upload,disabled:!file,onClick:handleNext,dataTestId:"next-button"},save:{visible:true,onClick:handleSubmit,disabled:!file&&!isValidForm||currentStep!==_model.CurrentStep.SelectFields,dataTestId:"save-button"}})]})]})}
//# sourceMappingURL=SingleWizard.js.map