UNPKG

native-forms-test

Version:

Build your own forms, surveys and polls for your React Native apps.

1 lines 5.41 kB
var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard"),_interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"sendCompletedForm",{enumerable:!0,get:function get(){return _nativeformsApi.sendCompletedForm}}),Object.defineProperty(exports,"NativeFormsWebView",{enumerable:!0,get:function get(){return _NativeFormsWebView.NativeFormsWebView}}),exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_objectSpread3=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread")),_regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")),_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_utils=require("./Forms/utils"),_helpers=require("./Forms/helpers"),_nativeformsApi=require("./Forms/api/nativeforms-api"),_IFrameContainer=_interopRequireDefault(require("./Forms/components/IFrameContainer")),_LoadingError=require("./Forms/components/LoadingError"),_PageLoader=require("./Forms/components/PageLoader"),_Forms=_interopRequireDefault(require("./Forms")),_MobileContainer=_interopRequireDefault(require("./Forms/components/MobileContainer")),_eventEmitter=require("./Forms/api/event-emitter"),_SelectDialog=_interopRequireDefault(require("./Forms/components/SelectField/SelectDialog")),_theme=require("./Forms/theme"),_NativeFormsWebView=require("./Forms/components/NativeFormsWebView"),queryParams=(0,_utils.queryStringToJSON)(),NativeForms=function(a){var b=a.form,c=a.onClose,d=a.onSend,e=a.email,f=a.name,g=a.extraData,h=a.onBeforeSend,i=a.formJSON,j=a.noInternetConnection,k=(0,_objectWithoutProperties2.default)(a,["form","onClose","onSend","email","name","extraData","onBeforeSend","formJSON","noInternetConnection"]),l=(0,_react.useState)(!1),m=(0,_slicedToArray2.default)(l,2),n=m[0],o=m[1],p=(0,_react.useState)(null),q=(0,_slicedToArray2.default)(p,2),r=q[0],s=q[1],t=(0,_react.useState)(!1),u=(0,_slicedToArray2.default)(t,2),v=u[0],w=u[1];(0,_react.useEffect)(function(){(function(){var a,c,d,h,j;return _regenerator.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(b||i){l.next=3;break}return w("You forgot to provide form prop to NativeForms component"),l.abrupt("return");case 3:if(!i){l.next=6;break}try{a=i.license,s(null),i.openedAt=new Date().toJSON(),i.openedTimestamp=new Date().getTime(),i.license=a,(0,_helpers.predefineEmailAndName)(i,e,f),(0,_helpers.addExtraDataToForm)(i,g,queryParams),(0,_eventEmitter.form_fetched)(i),"web"!==_reactNative.Platform.OS||queryParams.iframe||k.isPreview||k.isTemplate||k.livePreview||k.editMode||(c=i.backgroundColor||_theme.colors.white,document.body.style.backgroundColor=c),s(i)}catch(a){x(a)}return l.abrupt("return");case 6:if(d=(0,_utils.parseUrlData)(b),!(d.l&&d.f)){l.next=28;break}return l.prev=8,s(null),l.next=12,_regenerator.default.awrap((0,_nativeformsApi.hasOpenedForm)(d));case 12:h=l.sent,h.openedAt=new Date().toJSON(),h.openedTimestamp=new Date().getTime(),h.license=d.l,(0,_helpers.predefineEmailAndName)(h,e,f),(0,_helpers.addExtraDataToForm)(h,g,queryParams),(0,_eventEmitter.form_fetched)(h),"web"!==_reactNative.Platform.OS||queryParams.iframe||k.isPreview||k.isTemplate||k.livePreview||k.editMode||(j=h.backgroundColor||_theme.colors.white,document.body.style.backgroundColor=j),s(h),l.next=26;break;case 23:l.prev=23,l.t0=l["catch"](8),x(l.t0);case 26:l.next=29;break;case 28:x("Form does not exist or link is broken");case 29:case"end":return l.stop();}},null,null,[[8,23]])})()},[b,i]),(0,_react.useEffect)(function(){r&&((0,_helpers.predefineEmailAndName)(r,e,f),s((0,_objectSpread3.default)({},r)))},[e,f]),(0,_react.useEffect)(function(){r&&(0,_helpers.addExtraDataToForm)(r,g,queryParams)},[g]);var x=function(a){console.error(a),a.response&&409===a.response.status?w(_helpers.FORM_ALREADY_COMPLETED):a.response&&404===a.response.status?w(_helpers.FORM_NOT_FOUND):w(_helpers.FORM_ERROR)},y=_react.default.createElement(_SelectDialog.default,(0,_extends2.default)({},n,{form:b,onClose:function(){return o(!1)}}));return"web"===_reactNative.Platform.OS?queryParams.iframe?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_IFrameContainer.default,(0,_extends2.default)({onSend:d,onBeforeSend:h,onClose:c,error:v,form:r,livePreview:queryParams.livePreview,noInternetConnection:j,showSelectionDialog:o},k)),n&&y):v?_react.default.createElement(_LoadingError.LoadingError,{error:v}):r?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_Forms.default,(0,_extends2.default)({livePreview:queryParams.livePreview,form:r,onSend:d,onBeforeSend:h,noInternetConnection:j,showSelectionDialog:o},k)),n&&y):_react.default.createElement(_PageLoader.PageLoader,null):_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_MobileContainer.default,(0,_extends2.default)({onSend:d,onBeforeSend:h,error:v,form:r,onClose:c,livePreview:queryParams.livePreview,noInternetConnection:j,showSelectionDialog:o},k)),n&&y)},_default=(0,_react.memo)(NativeForms);exports.default=_default;