native-forms-test
Version:
Build your own forms, surveys and polls for your React Native apps.
1 lines • 5.05 kB
JavaScript
var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard"),_interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_helpers=require("./helpers"),_StatusScreen=_interopRequireDefault(require("./components/StatusScreen")),_FormContainer=_interopRequireDefault(require("./components/FormContainer")),_Toast=require("./components/Toast/Toast"),_ToastWrapper=_interopRequireDefault(require("./components/Toast/ToastWrapper")),_nativeformsApi=require("./api/nativeforms-api"),_utils=require("./utils"),_helpers2=require("./blocks/helpers"),_eventEmitter=require("./api/event-emitter"),queryParameters=(0,_utils.queryStringToJSON)(),Forms=function(a){var b=a.form,c=void 0===b?{}:b,d=a.preview,e=a.livePreview,f=a.editMode,g=a.isTemplate,h=a.onSend,i=a.onBeforeSend,j=a.iframe,k=a.onClose,l=a.showError,m=a.noInternetConnection,n=a.showSelectionDialog,o=c.customer,p=c.label,q=d,r=(0,_react.useState)(!1),s=(0,_slicedToArray2.default)(r,2),t=s[0],u=s[1],v=(0,_react.useState)(""),w=(0,_slicedToArray2.default)(v,2),x=w[0],y=w[1];(0,_react.useEffect)(function(){l&&l(!1),u(!1),y("")},[c,l]),(0,_react.useEffect)(function(){window.INTERCOM_MESSENGER_SHEET_LIBRARY&&window.INTERCOM_MESSENGER_SHEET_LIBRARY.setTitle(p||"NativeForms"),q||g||e||f||!window||!window.document||(window.document.title=p||"NativeForms")},[f,q,g,p,e]);return _helpers.SENDING_STATUSES_ARRAY.includes(x)?_react.default.createElement(_StatusScreen.default,{form:c,iframe:j,status:x,closeForm:function closeForm(){k&&k()},startForm:function startForm(){return y("")}}):_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_FormContainer.default,{isPreview:q,isSending:x,onFormSubmit:function onFormSubmit(){var a,b,j,k,l,n;return _regenerator.default.async(function(p){for(;;)switch(p.prev=p.next){case 0:if(!d){p.next=2;break}return p.abrupt("return");case 2:if(y!==_helpers.SENDING_STATUS){p.next=4;break}return p.abrupt("return");case 4:if(!f){p.next=10;break}return y(_helpers.SENDING_STATUS),p.next=8,_regenerator.default.awrap(new Promise(function(a){return setTimeout(a,1e3)}));case 8:return y(_helpers.COMPLETE_STATUS),p.abrupt("return");case 10:if(!e){p.next=16;break}return y(_helpers.SENDING_STATUS),p.next=14,_regenerator.default.awrap(new Promise(function(a){return setTimeout(a,1e3)}));case 14:return y(_helpers.PREVIEW_STATUS),p.abrupt("return");case 16:if(!g){p.next=22;break}return y(_helpers.SENDING_STATUS),p.next=20,_regenerator.default.awrap(new Promise(function(a){return setTimeout(a,1e3)}));case 20:return y(_helpers.TEMPLATE_STATUS),p.abrupt("return");case 22:return y(_helpers.SENDING_STATUS),c.completed=!0,c.completedAt=new Date().toJSON(),c.completedTimestamp=new Date().getTime(),c.browser=(0,_utils.getBrowser)()||"",c.source="web"===_reactNative.Platform.OS?_helpers.SOURCE_WEB:_helpers.SOURCE_REACT_NATIVE,c.iframe=(0,_helpers.inIframe)()||!1,c.sourceURL=(0,_helpers.getParentURL)()||"",c.intercom=window.INTERCOM||!1,c.platform="web"===_reactNative.Platform.OS?(0,_utils.getOperatingSystem)():"ios"===_reactNative.Platform.OS?"iOS":"Android",a=(0,_helpers.findEmailAndName)(c),b=a.email,j=a.name,c.customer=o||{},b&&(c.customer.email=b),j&&(c.customer.name=j),!c.customer.email&&queryParameters.email&&(c.customer.email=queryParameters.email),!c.customer.name&&queryParameters.name&&(c.customer.name=queryParameters.name),c.status="completed",p.prev=39,p.next=42,_regenerator.default.awrap((0,_nativeformsApi.getSenderLocation)());case 42:if(c.completedLocation=p.sent,k=(0,_helpers2.returnFormData)(c),c.completedLocation||!m){p.next=51;break}if(l=m(c),!l){p.next=51;break}return y(_helpers.COMPLETE_STATUS),h&&h(k,c),(0,_eventEmitter.form_send)(k,c),p.abrupt("return");case 51:if(!i){p.next=56;break}return p.next=54,_regenerator.default.awrap(i((0,_helpers2.returnFormData)(c)));case 54:n=p.sent,(0,_helpers.addExtraDataToForm)(c,n);case 56:return p.next=58,_regenerator.default.awrap((0,_nativeformsApi.sendCompletedForm)(c));case 58:window.INTERCOM_MESSENGER_SHEET_LIBRARY&&window.INTERCOM_MESSENGER_SHEET_LIBRARY.submitSheet({label:c.label||"",data:k}),y(_helpers.COMPLETE_STATUS),h&&h(k,c),(0,_eventEmitter.form_send)(k,c),p.next=68;break;case 64:p.prev=64,p.t0=p["catch"](39),y(_helpers.ERROR_STATUS),console.error(p.t0);case 68:case"end":return p.stop();}},null,null,[[39,64]])},setSendingError:l||u,form:c,iframe:j,showSelectionDialog:n}),_react.default.createElement(_ToastWrapper.default,{verticalPosition:"top",horizontalPosition:"center"},t&&_react.default.createElement(_Toast.Toast,{variant:"error",onClose:function(){return u(!1)},duration:2e3,removable:!0},t)))},_default=(0,_react.memo)(Forms);exports.default=_default;