{"version":3,"sources":["assets/cargacaleta.gif","assets/flecha.svg","assets/CaletaEnLineaLogoV3.svg","components/Profile/AssetsProfile/bannerPhoto.png","components/FisherProfile/AssetsFisher/bannerPhoto.png","assets/clipboard-list-solid.svg","components/Protocolo/AssetsProtocolo/img_recgen_min.jpg","components/Protocolo/AssetsProtocolo/img_medpreve_min.jpg","components/Protocolo/AssetsProtocolo/img_medprod_min.jpg","components/FisherPortal/AssetsFisherPortal/uploadProduct.svg","components/Profile/AssetsProfile/fisherPhoto.png","components/FisherProfile/AssetsFisher/fisherPhoto.png","components/FisherProfile/AssetsFisher/FisherProfileIcons/CountryLocationIcon.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/LocationIcon.svg","assets/iconCircleDotSolid.PNG","assets/mapa sync /^/.//.*$","assets/header-icons/logo_min_chile1.svg","assets/header-icons/logo_min_chile2.svg","assets/header-icons/logo_min_chile3.svg","assets/header-icons/ifop.svg","assets/header-icons/coronavirus.svg","assets/header-icons/lupa_video.svg","assets/header-icons/WWFIcon.svg","components/Footer/icon-label.svg","components/LandingPage/AssetsCaleta/icon-man.svg","components/LandingPage/AssetsCaleta/icon-woman.svg","components/common/LeafletIcons/LeafletGlobo.svg","components/FisherPortal/AssetsFisherPortal/FisherPortal/FamilyIcon.svg","components/FisherPortal/AssetsFisherPortal/FisherPortal/FishersIcon.png","components/FisherPortal/AssetsFisherPortal/comercializadora.svg","components/FisherPortal/AssetsFisherPortal/FisherCardPlaceHolders/PlaceHolder0.png","components/Profile/AssetsProfile/marketerPhoot.svg","components/Profile/AssetsProfile/organizationPhoto.svg","components/Profile/AssetsProfile/uploadProduct.svg","components/FisherProfile/AssetsFisher/marketerPhoot.svg","components/FisherProfile/AssetsFisher/organizationPhoto.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/DeliveryCarIcon.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/MailIcon.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/ProfileIcon.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/WebIcon.svg","components/FisherProfile/AssetsFisher/FisherProfileIcons/WhatsappIcon.svg","components/FisherProfile/AssetsFisher/retiroCaja.svg","components/FisherProfile/AssetsFisher/uploadProduct.svg","components/NewProduct/AssetsNewProduct/Arrow.svg","components/NewProduct/AssetsNewProduct/DeleteIcon.svg","components/NewProduct/AssetsNewProduct/ViewEye.svg","components/NewProduct/AssetsNewProduct/ProductsIcon.svg","components/NewProduct/AssetsNewProduct/UploadProductIcon.svg","components/ConservacionSustentabilidad/Assets/boton_conozcamasaqui.png","assets/sernapesca-caletaenlinea-flags.png","assets/user-icon.png","assets/chevron-down.svg","assets/menu-icon.svg","assets/icon-close.svg","assets/user-large-solid.svg","assets/gear-solid.svg","assets/caleta-en-linea-nuevo-logo.jpg","assets/iconCircleSolid.PNG","assets/mapa/Mesa-de-trabajo-16.jpg","assets/mapa/Mesa-de-trabajo-17.jpg","assets/mapa/Mesa-de-trabajo-19.jpg","assets/mapa/Mesa-de-trabajo-20.jpg","assets/mapa/Mesa-de-trabajo-21.jpg","assets/mapa/Mesa-de-trabajo-22.jpg","assets/mapa/Mesa-de-trabajo-23.jpg","assets/mapa/Mesa-de-trabajo-24.jpg","assets/mapa/Mesa-de-trabajo-25.jpg","assets/mapa/Mesa-de-trabajo-26.jpg","assets/mapa/Mesa-de-trabajo-27.jpg","assets/mapa/Mesa-de-trabajo-28.jpg","assets/mapa/Mesa-de-trabajo-29.jpg","assets/mapa/Mesa-de-trabajo-30.jpg","assets/mapa/antofagastanew18.jpg","components/Protocolo/AssetsProtocolo/protocolo_imagen_texto.jpg","components/Protocolo/AssetsProtocolo/imagen_caletascovid-19.jpg","components/Protocolo/AssetsProtocolo/img_recgen_max.jpg","components/Protocolo/AssetsProtocolo/img_medpreve_max.jpg","components/Protocolo/AssetsProtocolo/img_medprod_max.jpg","assets/key-solid.svg","components/LandingPage/LandingPage.jsx","components/ContextProvider.jsx","components/common/uiContext.jsx","components/common/Loader.jsx","utils/customFetch.js","services/api.js","utils/handlerHttp.js","components/common/index.jsx","components/common/videoComponent/video.jsx","components/HeaderMenu/HeaderMenu.jsx","components/Header/Header.jsx","components/Footer/Footer.jsx","components/Protocolo/Protocolo.jsx","components/Form/Form.jsx","components/LandingPage/CaletaSelected/CaletasSelected.jsx","components/common/Leaflet.jsx","components/FisherPortal/FisherPortal.jsx","components/LandingPage/RegionSelected/RegionSelected.jsx","components/common/header/BlueHeader.jsx","components/Login/Login.jsx","components/Profile/Profile.jsx","components/FisherProfile/FisherProfile.jsx","components/NewProduct/NewProduct.jsx","components/common/SubscribeFloatModal/SubscribeFloatModal.jsx","components/ConservacionSustentabilidad/ConservacionSustentabilidad.jsx","components/MarineAreas/MarineAreas.jsx","admin/components/HeaderAdmin/HeaderAdmin.jsx","admin/components/LateralMenu/constants.js","admin/components/LateralMenu/LateralMenu.jsx","admin/pages/UserRequests/UserRequests.jsx","admin/pages/ApprovedUsers/ApprovedUsers.jsx","admin/pages/RejectedUsers/RejectedUsers.jsx","admin/pages/LastSuscribers/LastSuscribers.jsx","admin/pages/ProductList/ProductList.jsx","admin/pages/PendingComments/PendingComments.jsx","admin/pages/StaffList/StaffList.jsx","admin/pages/UserProfile/UserProfile.jsx","admin/pages/CommentRejectUser/CommentRejectUser.jsx","components/StaffLogin/StaffLogin.jsx","admin/pages/ChangePassword/ChangePassword.jsx","admin/pages/RegisterStaff/RegisterStaff.jsx","components/RouterManager.jsx","App.js","serviceWorker.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","LandingPage","history","useHistory","regions","sort","a","b","cdRegion","useEffect","className","img","style","height","maxHeight","backgroundImage","require","photo","key","onClick","push","filter","replace","backgroundColor","color","name","ResourcesContext","createContext","ResourcesAPI","this","credentials","process","loginURL","urlRegions","urlOrganizations","DesembarquePeriodos","ifopUrl","params","token","Promise","reject","options","method","headers","Accept","window","localStorage","getItem","body","JSON","stringify","url","query","k","join","fetch","then","response","json","resp","error","status","Math","floor","catch","err","getTokenApp","sessionId","_resolveRequest","setItem","codigoRegion","codigoComuna","codigoCaleta","codigoEspecie","Cd_Region","Cd_Comuna","Cd_Caleta","ResourcesProvider","props","context","useState","showApp","setShowApp","result","setToken","data","accessToken","console","warn","getToken","Provider","value","children","uiContext","Loader","src","loader","alt","BASE_API","customFetch","endpoint","defaultHeader","controller","AbortController","signal","setTimeout","abort","res","customFetchFormData","axios","http","get","post","put","del","postForm","API","commentId","staffUserId","userId","email","password","sessionKey","file","formData","FormData","append","regionKey","pageNumber","pageSize","productId","newPassword","UIComponentAndProvider","isShowingLoader","setIsShowingLoader","login","setLogin","setName","user","setUser","showMenu","setShowMenu","resources","useContext","caletasCount","setCaletasCount","hombresCount","setHombresCount","mujeresCount","setMujeresCount","getRegions","woman","man","c","nroMujeres","nroHombres","length","showLoader","scrollTo","document","overflow","hideLoader","x","v","YoutubeVideoOverlay","ShowOverlay","SetShowOverlay","playing","controls","width","HeaderMenu","showSubMenu","setShowSubMenu","uicontext","display","path","target","index","href","to","pathname","marginTop","removeItem","Header","headerState","showModalVideo","setShowModalVideo","showFloatMenu","setShowFloatMenu","open","logo_min_chile1","logo_min_chile2","logo_min_chile3","coronavirus","WWFIcon","ifop","logoCaletaEnLinea","lupaVideo","Footer","visitorsCount","setVisitorsCounter","count","icon1","images","abc","last","ProtocoloPage","imageOne","setImageOne","imageTwo","setImageTwo","imageThree","setImagethree","FormPage","radioButtonOption","SetRadioButtonOption","lastName","setLastName","RUT","setRUT","setEmail","cellphone","setCellphone","secondaryKey","setSecondaryKey","message","setMessage","showRegisterModal","setShowRegisterModal","showExistUserModal","setShowExistUserModal","goToLogin","onSubmit","preventDefault","stopPropagation","getTypeName","lastname","rut","phone","type","typeKey","send","required","onChange","event","translate","rutCompleto","test","setCustomValidity","checked","disabled","placeholder","cols","rows","CaletaSelected","caleta","region","organizations","setOrganizations","desembarque","setDesembarque","setSpecies","setSpecieSelected","tab","setTab","datasets","toTitleCase","str","txt","charAt","toUpperCase","substr","toLowerCase","cutDecimals","number","decimals","round","toFixed","getOrganizations","getEspeciesByIfop","getEspeciesByIfobError","getDesembarquesPeriodos","r","nroPescadores","showLines","rotation","PI","maintainAspectRatio","nroAreasManejo","nroAreasAPE","idx","nombreOrganizacion","desembarque_1m","desembarque_6m","nombreEspecie","csvData","fileName","nombreCaleta","_data","item","_item1","fileType","fileExtension","ws","XLSX","json_to_sheet","header","wb","Sheets","SheetNames","excelBuffer","bookType","Blob","FileSaver","exportToCsv","LeafletMap","markerPosition","zoom","zoomConmutator","dynamicPopup","mapRef","useRef","popup","L","customIcon","icon","iconUrl","LeafletGlobo","iconSize","iconAnchor","onMapClick","setLatLng","latlng","setContent","toString","openOn","current","effectMap","center","lat","lng","dragging","Browser","mobile","tap","layers","tileLayer","attribution","on","geoJsonLayer","geoJSON","addTo","addData","ParqueMarinoElArenal","marker","bindPopup","legend","ParqueMarinoElPalillo","ParqueMarinoLoberia","ParqueMarinoMontesSUbmarinosCruseoYSelkirk","ParqueMarinoMotuMotiroHiva","ParqueMarinoNazcaDesventurada","ParqueMarinoTierraBlanca","AmerbDamasDecretoExento","FranciscoColane","JuanFernandez","ReservaMarinaPetemun","ReservaMarinaPulliquen","ReservaMarinaLaRinconada","ReservaMarinaIslasChanaral","ReserveMarinaIslasChoros","IslasDiegoRamirez","markerRef","openPopup","panTo","latLng","setZoom","FisherPortal","paginationIndex","items","setItems","content","comments","setComments","setFilter","regionfilter","useParams","getPaginationItems","getLastComments","FamilyIcon","FishersIcon","commerceIcon","cacheToRender","i","getFilterName","photoUrl","businessLegalName","mobilePhone","sectorKey","website","renderItems","UploadProduct","authorName","authorEmail","commnetsToRender","renderComments","RegionSelected","setCaleta","caletas","setCaletas","showCaletasList","setShowCaletasList","showCaleta","setShowCaleta","setCaletaId","setMarkerPosition","setIsCharged","setMan","setWoman","find","selectCaleta","boolean","position","caletaPOS","parse","flecha","cdCaleta","Leaflet","BlueHeader","showSubmenu","setShowSubmenu","showLateralMenu","setShowLateralMenu","log","Login","isChangePassword","setPassword","formState","setFormState","showIncorrectPasswordModal","setShowIncorrectPasswordModal","showForgotpasswordModal","setShowForgotpasswordModal","setNewPassword","repeatNewPassword","setRepeatNewPassword","flechaImg","caletaTexto","_id","alert","changePassword","Profile","profileType","SetProfileType","setLastname","setRut","setPhone","setMobilePhone","comment","setComment","setType","setTypeKey","setApprovalState","setApprovalStateDescription","setRegionKey","cityKey","setCityKey","communeKey","setCommuneKey","setSectorKey","setWebsite","setPhotoUrl","coverUrl","setCoverUrl","birthDate","setBirthDate","businessLine","setBusinessLine","setBusinessLegalName","regionSelect","setRegionSelect","citySelect","setCitySelect","communeSelect","setCommuneSelect","termsAccepted","setTermsAccepted","personalDeliveryEnabled","setPersonalDeliveryEnabled","deliveryEnabled","setDeliveryEnabled","approvalState","approvalStateDescription","regionDataJson","provincias","comunas","regionOptions","cityOptions","j","communeOptions","bannerBackground","getUserTypeDefaultBanner","input","createElement","accept","click","onchange","files","hide","split","size","filename","sessionToken","dataToUpdate","updateBannerPhoto","profilePhoto","marketerPhoto","organizationPhoto","getUserTypeDefaultPhoto","updateProfilePhoto","acceptTerms","updateUserData","setCityAndCommuneZero","setCommuneToZero","uploadProduct","getClassNamePerType","FisherProfile","whatsapp","setWhatsapp","setRegion","city","setCity","commune","setCommune","sector","setSector","products","setProducts","ProfileIcon","CountryLocationIcon","WhatsappIcon","LocationIcon","MailIcon","WebIcon","RetiroCaja","DeliveryCarIcon","productsToRender","renderProducts","NewProduct","section","setSection","varSessionToken","setVarSessionToken","productName","setProductName","productsList","setProductsList","getUserProducts","arrowImg","UploadProductIcon","ProductsIcon","uploadPhoto","description","objectId","Moment","Date","parseInt","substring","format","ViewEye","DeleteIcon","SubscribeFloatModal","showModal","setShowModal","ConservacionSustentabilidad","showConsumoSection","setShowConsumoSection","rel","botonConozcaMas","MarineAreas","zoomconmutator","setZoomconmutator","dynamicData","setDynamicData","showDropdown","setShowDropdown","geoJson","flechaSvg","HeaderAdmin","Logo","UserIcon","ChevronDown","CloseIcon","MenuIcon","menuItems","ClipboardIcon","show","links","ConfigIcon","LateralMenu","menu","setMenu","innerWidth","windowWidth","setWindowWidth","onresize","CircleDotSolid","link","CircleSolid","newMenu","handleShow","UserRequestsPage","users","setUsers","loading","setLoading","ImgLoading","caletaKey","_modifyTimestamp","toLocaleDateString","search","ApprovedUsersPage","RejectedUsersPage","LastSuscribersPage","subscribers","setSubscribers","ProductListPage","userData","_createTimestamp","PendingCommentsPage","updateStatus","mensaje","confirm","StaffListPage","removeStaff","UserProfilePage","location","useLocation","approvedUser","queryParams","URLSearchParams","borderRadius","CommentRejectUserPage","setUserId","rejectUser","StaffLoginPage","caletaEnLineaAPI","callService","sesionUser","responseJSON","oldPassword","changePasswordResponse","ChangePasswordPage","setOldPassword","RegisterStaffPage","RouterManager","isAdmin","exact","App","Boolean","hostname","match","ReactDOM","render","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"subAAAA,EAAOC,QAAU,IAA0B,yC,2BCA3CD,EAAOC,QAAU,IAA0B,oC,kk6hBCA3CD,EAAOC,QAAU,IAA0B,iD,g5FCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,kD,wBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,8BCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,kBCA3C,IAAIC,EAAM,CACT,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,2BAA4B,IAC5B,yBAA0B,KAI3B,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBN,EAAOC,QAAUE,EACjBA,EAAeE,GAAK,I,6DCpCpBL,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,mBCA3CD,EAAOC,QAAU,IAA0B,wC,iBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,cCA3CD,EAAOC,QAAU,8vH,gBCAjBD,EAAOC,QAAU,IAA0B,4D,cCA3CD,EAAOC,QAAU,0nG,gBCAjBD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wD,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gHCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,Q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","file":"static/js/main.cf3d7711.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/cargacaleta.7f2f8f58.gif\";","module.exports = __webpack_public_path__ + \"static/media/flecha.4ace77db.svg\";","module.exports = __webpack_public_path__ + \"static/media/CaletaEnLineaLogoV3.4652376f.svg\";","module.exports = __webpack_public_path__ + \"static/media/bannerPhoto.aeaacac5.png\";","module.exports = __webpack_public_path__ + \"static/media/bannerPhoto.aeaacac5.png\";","module.exports = __webpack_public_path__ + \"static/media/clipboard-list-solid.551efbbe.svg\";","module.exports = __webpack_public_path__ + \"static/media/img_recgen_min.56226d80.jpg\";","module.exports = __webpack_public_path__ + \"static/media/img_medpreve_min.f8637b3a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/img_medprod_min.a1ad2347.jpg\";","module.exports = __webpack_public_path__ + \"static/media/uploadProduct.e059dd4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/fisherPhoto.7d1e9f82.png\";","module.exports = __webpack_public_path__ + \"static/media/fisherPhoto.7d1e9f82.png\";","module.exports = __webpack_public_path__ + \"static/media/CountryLocationIcon.4d2b36c0.svg\";","module.exports = __webpack_public_path__ + \"static/media/LocationIcon.bd071473.svg\";","module.exports = __webpack_public_path__ + \"static/media/iconCircleDotSolid.582d64a5.PNG\";","var map = {\n\t\"./Mesa-de-trabajo-16.jpg\": 171,\n\t\"./Mesa-de-trabajo-17.jpg\": 172,\n\t\"./Mesa-de-trabajo-19.jpg\": 173,\n\t\"./Mesa-de-trabajo-20.jpg\": 174,\n\t\"./Mesa-de-trabajo-21.jpg\": 175,\n\t\"./Mesa-de-trabajo-22.jpg\": 176,\n\t\"./Mesa-de-trabajo-23.jpg\": 177,\n\t\"./Mesa-de-trabajo-24.jpg\": 178,\n\t\"./Mesa-de-trabajo-25.jpg\": 179,\n\t\"./Mesa-de-trabajo-26.jpg\": 180,\n\t\"./Mesa-de-trabajo-27.jpg\": 181,\n\t\"./Mesa-de-trabajo-28.jpg\": 182,\n\t\"./Mesa-de-trabajo-29.jpg\": 183,\n\t\"./Mesa-de-trabajo-30.jpg\": 184,\n\t\"./antofagastanew18.jpg\": 185\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 80;","module.exports = __webpack_public_path__ + \"static/media/logo_min_chile1.1e2e0a19.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo_min_chile2.3f37d045.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo_min_chile3.f13bfba3.svg\";","module.exports = __webpack_public_path__ + \"static/media/ifop.9b5be941.svg\";","module.exports = __webpack_public_path__ + \"static/media/coronavirus.5d406a13.svg\";","module.exports = __webpack_public_path__ + \"static/media/lupa_video.5aedc886.svg\";","module.exports = __webpack_public_path__ + \"static/media/WWFIcon.057aa545.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-label.9a4c463c.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-man.f6150762.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-woman.badb1ad7.svg\";","module.exports = __webpack_public_path__ + \"static/media/LeafletGlobo.f4790357.svg\";","module.exports = __webpack_public_path__ + \"static/media/FamilyIcon.9e957077.svg\";","module.exports = __webpack_public_path__ + \"static/media/FishersIcon.51016cdf.png\";","module.exports = __webpack_public_path__ + \"static/media/comercializadora.b9dbccd0.svg\";","module.exports = __webpack_public_path__ + \"static/media/PlaceHolder0.1d984aab.png\";","module.exports = __webpack_public_path__ + \"static/media/marketerPhoot.b9dbccd0.svg\";","module.exports = __webpack_public_path__ + \"static/media/organizationPhoto.ff185fba.svg\";","module.exports = __webpack_public_path__ + \"static/media/uploadProduct.e059dd4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/marketerPhoot.b9dbccd0.svg\";","module.exports = __webpack_public_path__ + \"static/media/organizationPhoto.ff185fba.svg\";","module.exports = __webpack_public_path__ + \"static/media/DeliveryCarIcon.7bd6b358.svg\";","module.exports = __webpack_public_path__ + \"static/media/MailIcon.55446df2.svg\";","module.exports = __webpack_public_path__ + \"static/media/ProfileIcon.f9a3497c.svg\";","module.exports = __webpack_public_path__ + \"static/media/WebIcon.c9fe6c06.svg\";","module.exports = __webpack_public_path__ + \"static/media/WhatsappIcon.1fa6ef3c.svg\";","module.exports = __webpack_public_path__ + \"static/media/retiroCaja.0536e724.svg\";","module.exports = __webpack_public_path__ + \"static/media/uploadProduct.e059dd4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/Arrow.53b7ab23.svg\";","module.exports = __webpack_public_path__ + \"static/media/DeleteIcon.e4bcc04d.svg\";","module.exports = __webpack_public_path__ + \"static/media/ViewEye.ee9c8259.svg\";","module.exports = __webpack_public_path__ + \"static/media/ProductsIcon.980f8d5a.svg\";","module.exports = __webpack_public_path__ + \"static/media/UploadProductIcon.f0a60783.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/sernapesca-caletaenlinea-flags.540ba6fa.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/chevron-down.33dfda1c.svg\";","module.exports = __webpack_public_path__ + \"static/media/menu-icon.209596db.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-close.25cb2cb0.svg\";","module.exports = __webpack_public_path__ + \"static/media/user-large-solid.4749d8eb.svg\";","module.exports = __webpack_public_path__ + \"static/media/gear-solid.5d989df9.svg\";","module.exports = __webpack_public_path__ + \"static/media/caleta-en-linea-nuevo-logo.f01c0867.jpg\";","module.exports = __webpack_public_path__ + \"static/media/iconCircleSolid.65119093.PNG\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-16.1726d51c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-17.15e1185d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-19.57f2776a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-20.28ffc242.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-21.23fb304e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-22.ae8737b5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-23.3fc6f794.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-24.56e158eb.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-25.3eb27855.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-26.e65b28f5.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-27.0610cd49.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-28.6031edec.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-29.ee1eb9c1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Mesa-de-trabajo-30.153fcde1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/antofagastanew18.2b582143.jpg\";","module.exports = __webpack_public_path__ + \"static/media/protocolo_imagen_texto.60a03c60.jpg\";","module.exports = __webpack_public_path__ + \"static/media/imagen_caletascovid-19.93e77851.jpg\";","module.exports = __webpack_public_path__ + \"static/media/img_recgen_max.ea47da4b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/img_medpreve_max.1711c6e0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/img_medprod_max.b94aa82b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/key-solid.6f2d2e72.svg\";","import React, { useEffect } from 'react';\nimport './LandingPage.scss';\nimport { useHistory } from 'react-router-dom';\nimport regions from './../sernapesca.json'\n\nconst LandingPage = () => {\n /**\n * Vista Home\n * Muestra un mapa con las diferentes regiones del país Chile\n */\n let history = useHistory();\n regions.sort((a, b) => {\n if (a.cdRegion < b.cdRegion) {\n return -1\n } else {\n return 1\n }\n })\n useEffect(() => {\n }, []);\n function toTitleCase(str) {\n return str.replace(\n /\\w\\S*/g,\n function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n }\n );\n }\n\n return (\n
\n {\n regions.map((img) => {\n return (\n
{\n history.push('/region/' + img.cdRegion + \"/\" + img.filter.replace(/\\s/g, '-') )\n }} >\n {\"Región \" + img.name}\n
\n )\n })\n } \n
\n )\n}\n\nexport default LandingPage;","import React, { createContext, useEffect, useState, Fragment } from 'react';\nexport const ResourcesContext = createContext();\n\nclass ResourcesAPI {\n \n constructor() {\n this.credentials = { \"nombreUsuario\": process.env.REACT_APP_SERNAPESCA_API_USERNAME|| \"\" , \"clave\": process.env.REACT_APP_SERNAPESCA_API_PASSWORD };\n this.loginURL = `${process.env.REACT_APP_SERNAPESCA_API || \"\"}/api-caletaenlinea/public/auth/login`;\n this.urlRegions = `${process.env.REACT_APP_SERNAPESCA_API || \"\"}/api-caletaenlinea/private/operaciones-caleta/busquedaRegistrosCaleta`;\n this.urlOrganizations = `${process.env.REACT_APP_SERNAPESCA_API || \"\"}/api-caletaenlinea/private/operaciones-caleta/busquedaOrganizaciones`;\n this.DesembarquePeriodos = `${process.env.REACT_APP_SERNAPESCA_API || \"\"}/api-caletaenlinea/private/operaciones-caleta/busquedaDesembarquesPeriodos`;\n // this.ifopUrl = \"http://wsapirest.ifop.cl:52419/api/Recurso\"\n this.ifopUrl = \"https://wsrestifop.ifop.cl/api/Recurso\"\n \n }\n _resolveRequest(params, token = true) {\n return new Promise((resolve, reject) => {\n try {\n const options = {\n method: params.method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': window.localStorage.getItem('caletaenlineatokenjwt') && token ? ('Bearer ' + window.localStorage.getItem('caletaenlineatokenjwt')) : ''\n }\n }\n if (params.body) {\n options.body = JSON.stringify(params.body)\n }\n let url = params.url;\n if (params.query) {\n url += '?' + Object.keys(params.query).map((k) => {\n return k + '=' + params.query[k];\n }).join('&');\n }\n fetch(url, options)\n .then((response) => response.json())\n .then((resp) => {\n if (resp.error && (typeof resp.status == 'number') && Math.floor(resp.status / 100) != 2) {\n reject(resp);\n return;\n }\n resolve(resp);\n }).catch((err) => {\n reject(err);\n });\n } catch (err) {\n reject(err);\n }\n })\n }\n _resolveRequestWithSession(params) {\n return new Promise((resolve, reject) => {\n this.getTokenApp().then((sessionId) => {\n this._resolveRequest(params, sessionId).then(resolve).catch(reject);\n }).catch((err) => {\n reject(err);\n });\n });\n }\n\n getToken() {\n let tkn = window.localStorage.getItem('caletaenlineatokenjwt')\n return tkn ? true : false;\n }\n setToken(token) {\n window.localStorage.setItem('caletaenlineatokenjwt', token)\n }\n\n getTokenApp() {\n return this._resolveRequest({\n method: 'POST',\n url: this.loginURL,\n body: this.credentials\n });\n }\n\n getRegions(codigoRegion = null, codigoComuna = null, codigoCaleta = null) {\n return this._resolveRequest({\n method: 'GET',\n url: this.urlRegions,\n query: {\n codigoRegion: codigoRegion ? codigoRegion : '',\n codigoComuna: codigoComuna ? codigoComuna : '',\n codigoCaleta: codigoCaleta ? codigoCaleta : ''\n },\n });\n }\n getOrganizations(codigoRegion = null, codigoComuna = null, codigoCaleta = null) {\n return this._resolveRequest({\n method: 'GET',\n url: this.urlOrganizations,\n query: {\n codigoRegion: codigoRegion ? codigoRegion : '',\n codigoComuna: codigoComuna ? codigoComuna : '',\n codigoCaleta: codigoCaleta ? codigoCaleta : ''\n },\n });\n }\n getDesembarquesPeriodos(codigoRegion = null, codigoComuna = null, codigoCaleta = null, codigoEspecie = null) {\n return this._resolveRequest({\n method: 'GET',\n url: this.DesembarquePeriodos,\n query: {\n codigoRegion: codigoRegion ? codigoRegion : '',\n codigoComuna: codigoComuna ? codigoComuna : '',\n codigoCaleta: codigoCaleta ? codigoCaleta : '',\n codigoEspecie: codigoEspecie ? codigoEspecie : ''\n },\n });\n }\n getEspeciesByIfop(Cd_Region=0,Cd_Comuna=0,Cd_Caleta=0) {\n return this._resolveRequest({\n method: 'GET',\n url: this.ifopUrl,\n query: {\n Cd_Region: Cd_Region,\n Cd_Comuna: Cd_Comuna,\n Cd_Caleta: Cd_Caleta,\n },\n },false);\n }\n\n}\n\n\nexport const ResourcesProvider = (props) => {\n const context = new ResourcesAPI();\n const [token, setToken] = useState();\n const [showApp, setShowApp] = useState(false);\n function getToken() {\n context.getTokenApp().then((result) => {\n context.setToken(result.data.accessToken)\n setShowApp(true)\n }).catch((err) => {\n console.warn(err);\n });\n }\n useEffect(() => {\n getToken();\n //setShowApp(true);\n }, [])\n return (\n \n {\n showApp && context.getToken() && ({props.children})\n }\n \n );\n}; ","import { createContext } from 'react';\n\nconst uiContext = createContext();\nexport default uiContext;","import React, { useEffect } from 'react'; \nimport loader from './../../assets/cargacaleta.gif'\nimport './Loader.scss';\n\n/**\n * Componente de Loader\n *\n */\nconst Loader = ()=>{\n \n useEffect(() => { \n //window.scrollTo(0,0);\n }, []) \n return (\n
\n
\n \"\"/\n
\n )\n}\n \nexport default Loader;","import axios from 'axios'\nconst BASE_API = process.env.REACT_APP_BASE_API || 'http://localhost:3000'\n\nexport const customFetch = async (endpoint, options) => {\n const url = BASE_API + endpoint\n\n const defaultHeader = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n }\n\n const controller = new AbortController()\n options.signal = controller.signal\n\n options.method = options.method || 'GET'\n options.headers = options.headers\n ? { ...defaultHeader, ...options.headers }\n : defaultHeader\n\n options.body = JSON.stringify(options.body) || false\n if (!options.body) delete options.body\n\n setTimeout(() => controller.abort(), 9000)\n\n try {\n const res = await fetch(url, options)\n return res.json()\n } catch (err) {\n return err\n }\n}\n\nexport const customFetchFormData = async(endpoint, data) =>{\n const url = BASE_API + endpoint\n\n const defaultHeader = {\n 'Content-Type': 'multipart/form-data'\n }\n\n try {\n const res = await axios({\n url,\n headers:defaultHeader,\n method:'POST',\n data\n })\n return res.data\n } catch (err) {\n return err\n }\n}\n","import { handlerHttp } from '../utils/handlerHttp'\n\nconst http = handlerHttp()\n\nexport const API = {\n getApprovedUsers: () => {\n return http.get('/users/get-approved-users')\n },\n\n getPendingUsers: ()=>{\n return http.get('/users/get-pending-users')\n },\n\n getRejectedUsers: ()=>{\n return http.get('/users/get-rejected-users')\n },\n\n getLastSubscribers: ()=>{\n return http.get('/subscribers/get-last-subscribers')\n },\n\n getAllProducts:()=>{\n return http.get('/products/get-all-products')\n },\n\n getPendingComments: ()=>{\n return http.get('/comments/get-pending-comments')\n },\n\n putUpdateCommentStatus: (commentId, status)=>{\n return http.put('/comments/update-comment-status',{\n body:{\n commentId,\n status\n }\n })\n },\n\n getStaffUsersList: ()=>{\n return http.get('/staffusers/get-staff-users-list');\n },\n\n putRemoveStaffUser: (id)=>{\n return http.put('/staffusers/remove-staff-user',{\n body:{\n staffUserId: id\n }\n });\n },\n\n putUserById: (id) =>{\n return http.put('/users/get-user-by-id', {body:{userId: id}})\n },\n\n postChangePasswordStaffUser: (body)=>{\n return http.post('/staffusers/change-password-staff-user', {body});\n },\n\n putUserApprovalSatate: (body) =>{\n return http.put('/users/update-user-approval-state', {body})\n },\n \n postRegisterStaffUserSession: (email, password)=>{\n return http.post('/staffusers/register-staff-user-session',{\n body:{\n email,\n password\n }\n })\n },\n\n postRegisterUser: (body)=>{\n return http.post('/users/register-user',{\n body\n })\n },\n\n putVerifyIfEmailExists: (email)=>{\n return http.put('/users/verify-if-email-exists',{\n body:{\n email\n }\n })\n },\n\n postRegisterUserSession: (email, password)=>{\n return http.post('/users/register-user-session',{\n body:{\n email,\n password\n }\n })\n }, \n \n putUpdateUserData: (body)=>{\n return http.put('/users/update-user-data', {body})\n },\n\n putUserBySessionKey: (sessionKey)=>{\n return http.put('/users/get-user-by-session-key', {body:{\n sessionKey\n }})\n },\n\n postRegisterStaffUser: (email, name)=>{\n return http.post('/staffusers/register-staff-user',{\n body:{\n email,\n name\n }\n })\n },\n \n putProductsForUserInSession: (sessionKey)=>{\n return http.put('/products/get-products-for-user-in-session',{\n body:{\n sessionKey\n }\n })\n },\n\n postRegisterProductForUserInSession:(body)=>{\n return http.post('/products/register-product-for-user-in-session',{\n body\n });\n },\n\n postUploadFile: (file)=>{\n const formData = new FormData();\n formData.append('file',file);\n return http.postForm('/uploads/',formData);\n },\n\n getVisitsCount: ()=>{\n return http.get('/visits/count');\n },\n\n postRegisterVisit: ()=>{\n return http.post('/visits/register-visit')\n },\n\n putLastProducts: (regionKey,pageNumber,pageSize)=>{\n return http.put('/products/get-last-products',{\n body:{\n regionKey,\n pageNumber,\n pageSize\n }\n })\n },\n\n putRemoveProductForUserInSession: ({sessionKey, productId})=>{\n return http.put('/products/remove-product-for-user-in-session',{\n body:{\n sessionKey,\n productId\n }\n })\n },\n\n putChangePasswordUser: ({sessionKey, newPassword})=>{\n return http.put('/usercredentials/change-password',{\n body:{\n sessionKey,\n newPassword\n }\n })\n },\n\n getLastComments: ()=>{\n return http.get('/comments/get-last-comments');\n },\n\n postRegisterComment: (body)=>{\n return http.post('/comments/register-comment',{body});\n },\n\n postRegisterSuscriber: (body)=>{\n return http.post('/subscribers/register-subscriber',{body})\n },\n\n putForgotPasswordUser: (email)=>{\n return http.put('/users/forgot-password', {\n body:{\n email\n }\n })\n },\n\n putForgotPasswordStaffUser: (email)=>{\n return http.put('/staffusers/forgot-password', {\n body:{\n email\n }\n })\n },\n\n}","import { customFetch, customFetchFormData } from './customFetch'\n\nexport const handlerHttp = () => {\n const get = (url, options = {}) => {\n return customFetch(url, options)\n }\n\n const post = (url, options = {}) => {\n options.method = 'POST'\n return customFetch(url, options)\n }\n\n const put = (url, options = {}) => {\n options.method = 'PUT'\n return customFetch(url, options)\n }\n\n const del = (url, options = {}) => {\n options.method = 'DELETE'\n return customFetch(url, options)\n }\n\n const postForm = (url, body) => {\n return customFetchFormData(url, body);\n }\n\n return {\n get,\n post,\n put,\n del,\n postForm\n }\n}\n","\nimport uiContext from './uiContext';\nimport React, { useEffect, Fragment, useState, useContext } from 'react';\nimport Loader from './Loader';\nimport { ResourcesContext } from '../ContextProvider';\nimport {useHistory} from 'react-router-dom'\nimport {API} from '../../services/api';\n/**\n * Provider inicial de carga de datos\n *\n */\nfunction UIComponentAndProvider(props) {\n const [isShowingLoader, setIsShowingLoader] = useState();\n const [login, setLogin] = useState(false);\n const [name, setName] = useState(\"\");\n const [user, setUser] = useState({});\n const [showMenu, setShowMenu] = useState(false);\n\n const resources = useContext(ResourcesContext);\n const [caletasCount, setCaletasCount] = useState(\"---\");\n const [hombresCount, setHombresCount] = useState(\"---\");\n const [mujeresCount, setMujeresCount] = useState(\"---\");\n const history = useHistory();\n const API = process.env.REACT_APP_BASE_API || 'http://localhost:3000';\n\n useEffect(() => {\n\n //setIsShowingLoader(true);\n resources.getRegions().then(result => {\n let woman = 0;\n let man = 0;\n if (result != null && result.data != null) {\n result.data.map((c) => {\n if (c.nroMujeres) { woman += c.nroMujeres }\n if (c.nroHombres) { man += c.nroHombres }\n })\n setCaletasCount(result.data.length);\n setHombresCount(man);\n setMujeresCount(woman);\n setIsShowingLoader(false);\n }\n }).catch(err => {\n console.warn(err);\n })\n\n\n }, [])\n\n return (\n { if (e == null || e === false) { window.scrollTo(0, 0); } document.body.style.overflow = 'hidden'; setIsShowingLoader(true) },\n hideLoader: () => { document.body.style.overflow = 'auto'; setIsShowingLoader(false) },\n login: login,\n setLogin: (x) => { setLogin(x) },\n name: name,\n setName: (v) => { setName(v) },\n mujeresCount: mujeresCount,\n hombresCount: hombresCount,\n caletasCount: caletasCount,\n showMenu:showMenu,\n setShowMenu: (x)=> setShowMenu(x),\n user,\n setUser,\n API\n }}>\n\n {/* Content */}\n {props.children}\n {/* Loader */}\n {isShowingLoader && ()}\n \n )\n}\n\nexport { uiContext, UIComponentAndProvider };","import React from 'react';\nimport './video.scss';\nimport ReactPlayer from 'react-player';\n\n/**\n * Componente de soporte de video de youtube: video de tutorial caleta en línea\n *\n */\nconst YoutubeVideoOverlay = (props) => {\n return (\n
{ props.SetShowOverlay(false);document.body.style.overflow = 'auto'; }} >\n
\n \n
\n
\n );\n}\n\nexport default YoutubeVideoOverlay;\n// onClick={() => SetShowOverlay(false)}","import React, { useState, useContext} from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport {uiContext} from '../../components/common'\nimport './HeaderMenu.scss';\n\nexport function HeaderMenu(){\n /**\n * Componente HeaderMenu\n * Es quien provee al header de un menu de hamburgues conservando las misma opciones que Header\n */\n const [showMenu, setShowMenu] = useState(false);\n const [showSubMenu, setShowSubMenu] = useState(false)\n const history = useHistory();\n const uicontext = useContext(uiContext);\n const linksMenu = [\n {\n name: 'Acceso a caleta en línea',\n path:'/home'\n },\n {\n name: 'Áreas marinas protegidas',\n path:'/areas-marinas'\n },\n {\n name: 'Conservación y sustentabilidad',\n path:'/conservacion-sustentabilidad'\n },\n {\n name: 'Protocolo de COVID-19',\n path:'/protocolo-covid-19'\n },\n {\n target:'_blank',\n name: 'Manual de buenas prácticas',\n path:'http://www.sernapesca.cl/sites/default/files/manual_bbpp_version_final_0.pdf'\n },\n {\n name: 'Inscribe tu caleta aquí',\n path:'/registrar-caleta'\n },\n ]\n\n return (\n
\n
\n
\n
\n
\n {linksMenu.map((x, index) =>{\n return !x.target ? \n {x.name} :\n {x.name} \n })}\n
\n
\n
\n
\n
setShowMenu(!showMenu)}>\n
\n
\n
\n
\n
\n
\n
\n Menu\n
\n uicontext.login ? setShowSubMenu(!showSubMenu):null} className=\"buttonEntrar\">\n {uicontext.login ? 'Cuenta': 'Entrar'}\n {showSubMenu &&
\n
\n Mi perfil\n
\n
\n Mis productos\n
\n
\n Cambiar contraseña\n
\n
\n {\n localStorage.removeItem(\"sessionToken\");\n localStorage.removeItem(\"userId\");\n uicontext.setLogin(false);\n }}>Salir\n
\n
}\n \n
\n
\n
\n );\n}","import React, { useEffect, Fragment, useState, useContext } from 'react';\nimport './Header.scss';\nimport logoCaletaEnLinea from '../../assets/CaletaEnLineaLogoV3.svg';\nimport logo_min_chile1 from '../../assets/header-icons/logo_min_chile1.svg'\nimport logo_min_chile2 from '../../assets/header-icons/logo_min_chile2.svg'\nimport logo_min_chile3 from '../../assets/header-icons/logo_min_chile3.svg'\nimport ifop from '../../assets/header-icons/ifop.svg'\nimport coronavirus from '../../assets/header-icons/coronavirus.svg'\nimport { Link, NavLink, useHistory } from 'react-router-dom';\nimport { ResourcesContext } from '../ContextProvider';\nimport { uiContext, UIComponentAndProvider } from '../common';\nimport lupaVideo from '../../assets/header-icons/lupa_video.svg';\nimport YoutubeVideoOverlay from '../common/videoComponent/video';\nimport WWFIcon from '../../assets/header-icons/WWFIcon.svg';\nimport {HeaderMenu} from '../HeaderMenu/HeaderMenu'\n\nconst Header = ({ headerState = \"home\" }) => {\n /**\n * Componente Header\n * Es el encargado de mostrar las direfentes opciones al usuario visitante\n */\n const uicontext = useContext(uiContext);\n const history = useHistory();\n let url = 'http://media.w3.org/2010/05/bunny/movie.mp4';\n const resources = useContext(ResourcesContext)\n const [caletas, setCaletas] = useState(0);\n const [pescadores, setPescadores] = useState(0);\n const [mujeres, setMujeres] = useState(0);\n const [hombres, setHombres] = useState(0);\n const [showModalVideo, setShowModalVideo] = useState(false);\n const [showFloatMenu, setShowFloatMenu] = useState(false);\n \n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n \n \n
\n
\n
\n { window.open('https://www.economia.gob.cl/', '_blank') }} src={logo_min_chile1} alt=\"Min 1\">\n { window.open('http://www.subpesca.cl/portal/616/w3-channel.html', '_blank') }} src={logo_min_chile2} alt=\"Min 2\">\n { window.open('http://www.sernapesca.cl/', '_blank') }} src={logo_min_chile3} alt=\"Min 3\">\n { window.open('https://www.minsal.cl/nuevo-coronavirus-2019-ncov/', '_blank') }} src={coronavirus} alt=\"Coronavirus\">\n
\n\n
\n { window.open('https://www.wwf.cl/', '_blank') }} src={WWFIcon} alt=\"WWF\">\n { window.open('https://www.ifop.cl/', '_blank') }} src={ifop} alt=\"Ifop\">\n {/* { window.open('https://www.shellcatch.com', '_blank') }} src={shellcatch} alt=\"Shellcatch\">*/}\n {/* { window.open('http://www.fao.org/home/es/', '_blank') }} src={caletaMesa} alt=\"FAO\">*/}\n
\n\n
\n \n \"Caleta\n \n
\n\n
\n
\n
{uicontext.caletasCount}
\n
Caletas
\n
\n
\n
{uicontext.mujeresCount + uicontext.hombresCount}
\n
Pescadores
\n
\n
\n
{uicontext.mujeresCount}
\n
Mujeres
\n
\n
\n
{uicontext.hombresCount}
\n
Hombres
\n
\n
\n { window.scrollTo(0, 0); setShowModalVideo(true); document.body.style.overflow = 'hidden'; }} src={lupaVideo} alt=\"Lupa video\">\n
\n
\n
\n\n
\n
{ history.push(\"/home\"); }} >\n Acceso caletas en línea\n
\n\n
{ history.push(\"/areas-marinas\"); }}>\n Parques y reservas marinas\n
\n\n
{ history.push(\"/conservacion-sustentabilidad\"); }}>\n Conservación y sustentabilidad\n
\n\n
{ window.open(\"https://micaleta.sernapesca.cl/#/login\", \"_blank\"); }}>\n Mi caleta\n Trámites y servicios Sernapesca\n
\n\n
\n
{ setShowFloatMenu(showFloatMenu => !showFloatMenu); }} className=\"dropdownOptions\">\n Buenas prácticas del pescador\n
\n
{ setShowFloatMenu(false); window.open(\"http://www.sernapesca.cl/sites/default/files/manual_bbpp_version_final_0.pdf\", \"_blank\");}} className={(showFloatMenu==true ? \"dropdwonSubMenu0Visible\" : \"dropdwonSubMenuHidden\") + \" dropdownSubmenu\"}>\n Manual de buenas prácticas\n
\n\n
{ setShowFloatMenu(false); history.push(\"/protocolo-covid-19\");}} className={(showFloatMenu==true ? \"dropdwonSubMenu1Visible\" : \"dropdwonSubMenuHidden\") + \" dropdownSubmenu\"} >\n Protocolo COVID-19\n
\n
\n\n
{ history.push(\"/registrar-caleta\");}}>\n Inscríbete aquí\n
\n
\n\n
\n \n
\n )\n}\n\nexport default Header;","import React, { Fragment } from 'react';\nimport './Footer.scss';\nimport icon1 from './icon-label.svg';\nimport { useState } from 'react';\nimport { useEffect } from 'react';\nimport {API} from '../../services/api';\n\nconst Footer = () => {\n /**\n * Componente Footer\n * Es el pie de pagina de la aplicación\n * Carga las visitas del sitio web\n */\n\n const [visitorsCount, setVisitorsCounter] = useState(0);\n\n useEffect(() => {\n /**\n * Obtener cantidad de visitas\n * Se hace el llamado al servicio /visits/count\n */\n API.getVisitsCount()\n .then(x => {\n setVisitorsCounter(x.count);\n })\n }, [])\n\n return (\n \n
\n
\n Servicio Nacional de Pesca y Acuicultura\n Victoria 2832, Valparaíso, Chile\n Fono 800 320 032\n
\n\n
\n
{ window.open(' http://www.sernapesca.cl/area-trabajo/acuicultura/preguntas-frecuentes', '_blank') }}>Preguntas frecuentes
\n
{ window.open('http://www.sernapesca.cl/sistema-integral-de-informacion-y-atencion-ciudadana-siac', '_blank') }}>Contacto
\n
{ window.open('http://www.sernapesca.cl/politicas-de-privacidad', '_blank') }}>Políticas de privacidad
\n
{ window.open('http://www.sernapesca.cl/seguridad-de-la-informacion', '_blank') }}>Seguridad de la información
\n
\n\n
\n Visitas\n {visitorsCount}\n
\n\n
\n \"\"\n
\n\n
\n {/* { window.open(\"https://web.shellcatch.com/welcome\", \"_blank\") }} src={logoShellcatch} alt=\"Logo frescapesca\"> */}\n
\n
\n
\n )\n}\n\nexport default Footer;","import React, { useEffect,useState, Fragment } from 'react'; \nimport './Protocolo.scss';\n\nconst images ={\n abc:require('./AssetsProtocolo/protocolo_imagen_texto.jpg'),\n last:{\n img:require('./AssetsProtocolo/imagen_caletascovid-19.jpg'),\n url:'https://www.arcgis.com/home/webmap/viewer.html?webmap=5b703c907a134a0fad706143c8c52891&extent=-123.9753,-54.7149,-20.4402,-14.8436'\n }\n}\n\n/**\n * Componente de protocolos en acordeon\n *\n */\n\nconst ProtocoloPage = () => { \n const [imageOne,setImageOne] = useState(require('./AssetsProtocolo/img_recgen_min.jpg'));\n const [imageTwo,setImageTwo] = useState(require('./AssetsProtocolo/img_medpreve_min.jpg'));\n const [imageThree,setImagethree] = useState(require('./AssetsProtocolo/img_medprod_min.jpg'));\n\n useEffect(() => {\n // window.scrollTo(0, 0);\n }, []);\n\n return (\n \n
\n \n \"\"/\n {setImageOne(imageOne === require('./AssetsProtocolo/img_recgen_min.jpg') ?require('./AssetsProtocolo/img_recgen_max.jpg'): require('./AssetsProtocolo/img_recgen_min.jpg') )}} alt=\"\"/>\n {setImageTwo(imageTwo === require('./AssetsProtocolo/img_medpreve_min.jpg') ?require('./AssetsProtocolo/img_medpreve_max.jpg'): require('./AssetsProtocolo/img_medpreve_min.jpg'))}} alt=\"\"/>\n {setImagethree(imageThree === require('./AssetsProtocolo/img_medprod_min.jpg') ?require('./AssetsProtocolo/img_medprod_max.jpg'): require('./AssetsProtocolo/img_medprod_min.jpg'))}} alt=\"\"/>\n {window.open(images.last.url,'_blank')}} src={images.last.img} alt=\"\"/>\n \n \n
\n
\n )\n}\n\nexport default ProtocoloPage;","import React, { Fragment, useState } from 'react';\nimport './Form.scss';\nimport { useContext } from 'react';\nimport { uiContext } from '../common';\nimport { useHistory } from 'react-router-dom';\n\nimport {API} from '../../services/api'\n\nconst FormPage = () => {\n /**\n * Componente Formulario de Registro para usuarios nuevos\n * Vista para registrar un nuevo usuario\n */\n const uicontext = useContext(uiContext);\n const history = useHistory();\n const [radioButtonOption, SetRadioButtonOption] = useState(0);\n\n const [name, setName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [RUT, setRUT] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [cellphone, setCellphone] = useState(\"\");\n const [secondaryKey, setSecondaryKey] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n\n const [showRegisterModal, setShowRegisterModal] = useState(false);\n const [showExistUserModal, setShowExistUserModal] = useState(false);\n\n const send = () => {\n let getTypeName = () => {\n switch (radioButtonOption) {\n case 0: return \"FISHER\";\n case 1: return \"MARKETER\";\n case 2: return \"ORGANIZATION\";\n default: return \"ERROR\";\n } \n }\n\n uicontext.showLoader();\n /**\n * Verifica si el email existe\n * Se hace el llamado al servicio /users/verify-if-email-exists\n */\n API.putVerifyIfEmailExists(email)\n .then(x =>{\n if(x.length != 0){\n uicontext.hideLoader();\n setShowExistUserModal(true);\n return;\n }\n /**\n * Registra un usuario\n * Se hace el llamado al servicio /users/register-user\n */\n API.postRegisterUser({\n name: name,\n lastname: lastName,\n rut: RUT,\n email: email,\n phone: cellphone,\n type: getTypeName(),\n typeKey: secondaryKey,\n message\n })\n .then(x => {\n setShowRegisterModal(true);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n })\n .catch(x =>{\n uicontext.hideLoader();\n })\n \n }\n\n const validarRut = (rutCompleto) => {\n /*\n const dv = (T) => {\n var M = 0, S = 1;\n for (; T; T = Math.floor(T / 10))\n S = (S + T % 10 * (9 - M++ % 6)) % 11;\n return S ? S - 1 : 'k';\n }*/\n\n if (!/^[0-9]+[-|‐]{1}[0-9kK]{1}$/.test(rutCompleto))\n return false;\n /*\n var tmp = rutCompleto.split('-');\n var digv = tmp[1];\n var rut = tmp[0];\n if (digv === 'K') digv = 'k';\n return (dv(rut) === digv);*/\n return true;\n }\n\n const goToLogin = () => {\n history.push(\"/login\");\n }\n\n return (\n \n
\n
{ goToLogin(); }} className={(showRegisterModal === true ? \"registerModalBackgroundVisible\" : \"registerModalBackgroundHidden\") + \" registerModalBackground\"}>
\n
\n
\n Muchas gracias por su registro\n { goToLogin(); }} className=\"closeButton\">X\n
\n
\n Una vez revisada la información ingresada, se le enviara un correo electrónico con los datos de acceso.\n
\n
\n\n
{ setShowExistUserModal(false); setEmail(\"\"); }} className={(showExistUserModal === true ? \"registerModalBackgroundVisible\" : \"registerModalBackgroundHidden\") + \" registerModalBackground\"}>
\n
\n
\n Usuario existente\n { setShowExistUserModal(false); setEmail(\"\"); }} className=\"closeButton\">X\n
\n
\n El correo electrónico introducido ya ha sido registrado.\n
\n
\n
\n
{\n e.preventDefault();\n e.stopPropagation(); send();\n }} >\n
\n

Solicita tu inscripción al programa de Caleta en línea

\n
\n
\n Nombre\n { setName(event.target.value); }} type=\"text\" />\n
\n
\n Apellido\n { setLastName(event.target.value); }} type=\"text\" />\n
\n
\n RUT\n {\n if (validarRut(event.target.value) === false) {\n event.target.setCustomValidity(\"Introduce un RUT valido\")\n } else {\n event.target.setCustomValidity(\"\");\n }\n\n setRUT(event.target.value);\n }}\n type=\"text\" />\n
\n
\n Correo electrónico\n { setEmail(event.target.value); }} type=\"text\" />\n
\n
\n Telefono\n { setCellphone(event.target.value); }} type=\"text\" />\n
\n\n
\n\n
\n Seleccione la categoría a la que pertenece\n
\n\n
\n { SetRadioButtonOption(0); setSecondaryKey(\"\"); }} checked={radioButtonOption === 0} className=\"itemRowElement0\" type=\"radio\" name=\"accountType\" />\n Soy pescador \n { setSecondaryKey(event.target.value); }} type=\"text\" />\n
\n\n
\n { SetRadioButtonOption(1); setSecondaryKey(\"\"); }} checked={radioButtonOption === 1} className=\"itemRowElement0\" type=\"radio\" name=\"accountType\" />\n Soy comercializador de la caleta \n { setSecondaryKey(event.target.value); }} type=\"text\" />\n
\n\n
\n { SetRadioButtonOption(2); setSecondaryKey(\"\"); }} checked={radioButtonOption === 2} className=\"itemRowElement0\" type=\"radio\" name=\"accountType\" />\n Somos organización \n { setSecondaryKey(event.target.value); }} type=\"text\" />\n
\n\n
\n\n
\n Ingrese algún comentario\n \n
\n
\n \n
\n
\n
\n
\n
\n )\n}\n\nexport default FormPage;","import React, { useState, useEffect, useContext } from 'react';\nimport './CaletasSelected.scss';\nimport woman from '../AssetsCaleta/icon-man.svg'\nimport man from '../AssetsCaleta/icon-woman.svg'\nimport { Doughnut } from 'react-chartjs-2';\nimport { ResourcesContext } from '../../ContextProvider';\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\"; // requires a loader\nimport * as FileSaver from 'file-saver';\nimport * as XLSX from 'xlsx';\n/**\n * Componente de la Caleta Seleccionada\n * Muestra los datos estadísticos de la caleta seleccionada\n */\nconst CaletaSelected = ({caleta, region, id}) => {\n const resources = useContext(ResourcesContext)\n const [organizations, setOrganizations] = useState([]);\n const [desembarque, setDesembarque] = useState([]);\n const [species, setSpecies] = useState([]);\n const [specieSelected, setSpecieSelected] = useState();\n\n const [tab, setTab] = useState(0);\n let data = {\n datasets: [\n {\n data: [caleta.nroMujeres, caleta.nroHombres],\n backgroundColor: [\"#3cb371\", \"#29abe2\"]\n }\n ]\n }\n function toTitleCase(str) {\n if (str) {\n return str.replace(\n /\\w\\S*/g,\n function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n }\n );\n }\n }\n function cutDecimals(number, decimals) {\n return (Math.round(number * 100) / 100).toFixed(2);\n }\n\n function getDesembarquePeriodo() {\n resources.getDesembarquesPeriodos(region, null, id, null).then((r) => {\n setDesembarque(r.data !== null ? r.data : []);\n }).then((err) => {\n console.warn(err)\n })\n }\n function getData() {\n resources.getOrganizations(region, null, id).then((result) => {\n setOrganizations(result.data !== null ? result.data : []);\n }).then((err) => {\n console.warn(err)\n })\n }\n function exportToCsv(csvData, fileName = caleta.nombreCaleta) {\n let headers = [{ 'Nombre de especie': '' }, { 'Ultimos 6 mes': '' }, { 'Ultimo mes': '' }]\n let _data = [];\n desembarque.map((item) => {\n let _item1 = { 'Nombre de especie': item.nombreEspecie, 'Ultimo 6 mes': item.desembarque_6m, 'Ultimo mes': item.desembarque_1m }\n _data.push(_item1)\n })\n const fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n const fileExtension = '.xlsx';\n\n const ws = XLSX.utils.json_to_sheet(_data, { header: [\"Nombre de especie\", \"Ultimo 6 mes\", 'Ultimo mes'] });\n const wb = { Sheets: { 'data': ws }, SheetNames: ['data'] };\n const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\n const data = new Blob([excelBuffer], { type: fileType });\n FileSaver.saveAs(data, fileName + fileExtension);\n }\n\n const getEspecies = () => {\n resources.getEspeciesByIfop(region, 0, 0).then((result) => {\n setSpecies(result);\n setSpecieSelected(result[0]);\n }).catch((err) => {\n console.warn({ getEspeciesByIfobError: err });\n });\n }\n useEffect(() => {\n getData();\n getEspecies();\n getDesembarquePeriodo();\n }, [caleta, region, id])\n return (\n
\n {\n caleta && (\n
\n \n NÚMERO DE PESCADORES: {caleta.nroPescadores}\n \n\n
\n
\n \"\"\n
\n {caleta.nroMujeres}\n Mujeres\n
\n
\n\n
\n \n \n
\n\n
\n \"\"\n
\n {caleta.nroHombres}\n Hombres\n
\n
\n
\n
\n )\n }\n\n
\n
{ setTab(0) }} className={(tab === 0 ? 'selected' : \"unselected\") + ' tab'} >Número de áreas de manejo
\n
{ setTab(1) }} className={(tab === 1 ? 'selected' : \"unselected\") + ' tab'} >Acuicultura de pequeña escala
\n
{ setTab(2) }} className={(tab === 2 ? 'selected' : \"unselected\") + ' tab'} >Número de organizaciones
\n
\n\n\n\n {\n tab === 0 && (\n
\n
\n
\n Número de Áreas de Manejo \n
\n
\n \n Las áreas de manejo son porciones de mar que se entregan a organizaciones de pescadores, para el cuidado y manejo de los recursos de manera sustentable\n \n
\n
\n
\n
\n \n {caleta.nroAreasManejo ? caleta.nroAreasManejo : 0}\n \n
\n
\n
\n )\n }\n\n {\n tab === 1 && (\n
\n
\n
\n Acuicultura de pequeña escala \n
\n
\n \n Iniciativas de cultivo de especies, llevadas a cabo por Organizaciones de Pescadores Artesanales o pequeñas empresas.\n \n
\n
\n
\n
\n \n {caleta.nroAreasAPE ? caleta.nroAreasAPE : 0}\n \n
\n
\n
\n )\n }\n\n {\n tab === 2 && (\n
\n {\n organizations.map((o, idx) => {\n return (\n
\n {idx + 1}\n {toTitleCase(o.nombreOrganizacion)}\n
\n )\n })\n }\n
\n )\n }\n\n
\n NUESTROS RECURSOS\n
\n\n
{ window.open(\"https://www.ifop.cl/wp-content/contenidos/uploads/mi_guia_de_especies_marinas.pdf\", \"_blank\"); }} className=\"block_speciesMarinasPDF\">\n Descarga aqui la Guia de especies marinas chilenas\n
\n\n
\n

Toneladas de extracción de nuestros recursos

\n
\n
Nombre de recurso
\n
Últimos 6 meses
\n
Último mes
\n
\n
\n {\n desembarque.length > 0 ? desembarque.map((r, idx) => {\n if (r.desembarque_1m) { r.desembarque_1m = cutDecimals(r.desembarque_1m, 3); }\n if (r.desembarque_6m) { r.desembarque_6m = cutDecimals(r.desembarque_6m, 3) }\n return (\n
\n
{toTitleCase(r.nombreEspecie)}
\n
{(r.desembarque_6m ? r.desembarque_6m : '--')}
\n
{(r.desembarque_1m ? r.desembarque_1m : '--')}
\n
\n )\n }) :
\n
Actualmente sin datos
\n
---
\n
---
\n
\n }\n
\n \n {desembarque.length > 0 &&
\n
{ exportToCsv() }}>Descarga esta información aquí
\n
}\n
\n\n\n
\n )\n}\n\nexport default CaletaSelected;","import React, { useEffect, useRef } from \"react\";\nimport L from \"leaflet\";\n\nimport ParqueMarinoElArenal from './geoJson/ParqueMarinoElArenal.json';\nimport ParqueMarinoElPalillo from './geoJson/ParqueMarinoElPalillo.json';\nimport ParqueMarinoLoberia from './geoJson/ParqueMarinoLoberia.json';\nimport ParqueMarinoMontesSUbmarinosCruseoYSelkirk from './geoJson/ParqueMarinoMontesSubmarinosCruseoYSelKirk.json';\nimport ParqueMarinoMotuMotiroHiva from './geoJson/ParqueMarinoMotuMotiroHiva.json';\nimport ParqueMarinoNazcaDesventurada from './geoJson/ParqueMarinoNazcaDesventurada.json';\nimport ParqueMarinoTierraBlanca from './geoJson/ParqueMarinoTierraBlanca.json';\nimport ReservaMarinaIslasChanaral from './geoJson/ReservaMarinaIslaCHanaral.json';\nimport ReserveMarinaIslasChoros from './geoJson/ReservaMarinaIslasChorosYDamas.json';\nimport ReservaMarinaLaRinconada from './geoJson/ReservaMarinaLaRinconadaDN.json';\nimport ReservaMarinaPetemun from './geoJson/ReservaMarinaPetemun.json';\nimport ReservaMarinaPulliquen from './geoJson/ReservaMarinaPullinque.json';\nimport AmerbDamasDecretoExento from './geoJson/AmerbDamasDecretoExento.json';\nimport FranciscoColane from './geoJson/FranciscoColane.json';\nimport JuanFernandez from './geoJson/JuanFernandez.json';\nimport IslasDiegoRamirez from './geoJson/islas_diego_ramirez.json';\nimport LeafletGlobo from './LeafletIcons/LeafletGlobo.svg';\n\n/**\n * Componente de mapa para renderizado de zonas de parques y reservas marinas\n *\n */\n\n\nconst style = {\n height: \"100%\",\n width: \"100%\"\n};\n\n\nfunction LeafletMap({ markerPosition, zoom, zoomConmutator, dynamicPopup }) {\n // create map\n const mapRef = useRef(null);\n var popup = L.popup();\n\n const customIcon = L.icon({\n iconUrl: LeafletGlobo,\n iconSize: [35, 45],\n iconAnchor: [17, 45],\n });\n\n useEffect(() => {\n let effectMap = L.map(\"map\", {\n center: markerPosition != null ? [markerPosition.lat, markerPosition.lng] : [-33.439269, -70.646881],\n zoom: zoom,\n dragging: !L.Browser.mobile,\n tap: !L.Browser.mobile,\n layers: [\n L.tileLayer(\"http://{s}.tile.osm.org/{z}/{x}/{y}.png\", {\n attribution:\n '© OpenStreetMap contributors'\n })\n ]\n });\n\n effectMap.on(\"click\", onMapClick);\n\n mapRef.current = effectMap;\n /**\n * Carga de polígonos\n *\n */\n\n var geoJsonLayer = L.geoJSON().addTo(effectMap);\n\n {\n geoJsonLayer.addData(ParqueMarinoElArenal);\n\n\n let marker = L.marker(ParqueMarinoElArenal.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoElArenal.name + \"
\" + ParqueMarinoElArenal.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoElPalillo);\n let marker = L.marker(ParqueMarinoElPalillo.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoElPalillo.name + \"
\" + ParqueMarinoElPalillo.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoLoberia);\n let marker = L.marker(ParqueMarinoLoberia.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoLoberia.name + \"
\" + ParqueMarinoLoberia.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoMontesSUbmarinosCruseoYSelkirk);\n let marker = L.marker(ParqueMarinoMontesSUbmarinosCruseoYSelkirk.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoMontesSUbmarinosCruseoYSelkirk.name + \"
\" + ParqueMarinoMontesSUbmarinosCruseoYSelkirk.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoMotuMotiroHiva);\n let marker = L.marker(ParqueMarinoMotuMotiroHiva.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoMotuMotiroHiva.name + \"
\" + ParqueMarinoMotuMotiroHiva.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoNazcaDesventurada);\n let marker = L.marker(ParqueMarinoNazcaDesventurada.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoNazcaDesventurada.name + \"
\" + ParqueMarinoNazcaDesventurada.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ParqueMarinoTierraBlanca);\n let marker = L.marker(ParqueMarinoTierraBlanca.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ParqueMarinoTierraBlanca.name + \"
\" + ParqueMarinoTierraBlanca.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(AmerbDamasDecretoExento);\n let marker = L.marker(AmerbDamasDecretoExento.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + AmerbDamasDecretoExento.name + \"
\" + AmerbDamasDecretoExento.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(FranciscoColane);\n let marker = L.marker(FranciscoColane.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + FranciscoColane.name + \"
\" + FranciscoColane.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(JuanFernandez);\n let marker = L.marker(JuanFernandez.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + JuanFernandez.name + \"
\" + JuanFernandez.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ReservaMarinaPetemun);\n let marker = L.marker(ReservaMarinaPetemun.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ReservaMarinaPetemun.name + \"
\" + ReservaMarinaPetemun.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ReservaMarinaPulliquen);\n let marker = L.marker(ReservaMarinaPulliquen.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ReservaMarinaPulliquen.name + \"
\" + ReservaMarinaPulliquen.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ReservaMarinaLaRinconada);\n let marker = L.marker(ReservaMarinaLaRinconada.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ReservaMarinaLaRinconada.name + \"
\" + ReservaMarinaLaRinconada.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ReservaMarinaIslasChanaral);\n let marker = L.marker(ReservaMarinaIslasChanaral.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ReservaMarinaIslasChanaral.name + \"
\" + ReservaMarinaIslasChanaral.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(ReserveMarinaIslasChoros);\n let marker = L.marker(ReserveMarinaIslasChoros.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + ReserveMarinaIslasChoros.name + \"
\" + ReserveMarinaIslasChoros.legend + \"\");//.openPopup();\n }\n\n {\n geoJsonLayer.addData(IslasDiegoRamirez);\n let marker = L.marker(IslasDiegoRamirez.markerPosition, { icon: customIcon }).addTo(effectMap);\n marker.bindPopup(\"\" + IslasDiegoRamirez.name + \"
\" + IslasDiegoRamirez.legend + \"\");//.openPopup();\n }\n\n\n }, []);\n\n function onMapClick(e) {\n popup\n .setLatLng(e.latlng)\n .setContent(e.latlng.toString())\n .openOn(mapRef.current);\n }\n\n // add marker\n const markerRef = useRef(null);\n useEffect(\n () => {\n\n if (markerPosition != null) {\n setTimeout(() => {\n\n\n\n if (markerRef.current) {\n markerRef.current.setLatLng(markerPosition);\n if (markerPosition.legend != null) {\n markerRef.current.bindPopup(\"\" + markerPosition.legend + \"\").openPopup();\n }\n } else {\n let marker = L.marker(markerPosition).addTo(mapRef.current);\n if (markerPosition.legend != null) {\n marker.bindPopup(\"\" + markerPosition.legend + \"\").openPopup();\n }\n markerRef.current = marker;\n }\n\n mapRef.current.panTo(new L.latLng(markerPosition.lat, markerPosition.lng));\n }, 100);\n }\n\n\n\n },\n [markerPosition]\n );\n\n useEffect(() => {\n if (markerPosition != null) {\n mapRef.current.setZoom(zoom);\n mapRef.current.panTo(new L.latLng(markerPosition.lat, markerPosition.lng));\n }\n }, [zoomConmutator]);\n\n useEffect(() => {\n if (dynamicPopup != null) {\n popup\n .setLatLng([dynamicPopup.markerPosition[0], dynamicPopup.markerPosition[1]])\n .setContent(\"\" + dynamicPopup.name + \"
\" + dynamicPopup.legend + \"
\")\n .openOn(mapRef.current);\n\n mapRef.current.setZoom(6);\n\n setTimeout(() => {\n mapRef.current.panTo(new L.latLng(dynamicPopup.markerPosition[0], dynamicPopup.markerPosition[1]));\n }, 300);\n }\n }, [dynamicPopup])\n\n\n return
;\n}\n\nexport default LeafletMap;","import React, { Fragment, useContext } from 'react';\nimport './FisherPortal.scss';\nimport {API} from '../../services/api'\n\n\nimport FamilyIcon from './AssetsFisherPortal/FisherPortal/FamilyIcon.svg';\nimport FishersIcon from './AssetsFisherPortal/FisherPortal/FishersIcon.png';\nimport commerceIcon from './AssetsFisherPortal/comercializadora.svg';\n\nimport FisherCardPhoto0 from './AssetsFisherPortal/FisherCardPlaceHolders/PlaceHolder0.png';\n\n\nimport UploadProduct from './AssetsFisherPortal/uploadProduct.svg';\nimport { useState } from 'react';\nimport { useEffect } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { uiContext } from '../common';\n\n/**\n * Componente que renderiza los datos del usuario en el portal del pescador\n */\nconst RenderCards = (numberOfCards) => {\n\n let Cards = [];\n for (let i = 0; i < numberOfCards; i++) {\n Cards.push(
\n \"\"\n
\n Pescador:\n PlaceHolder\n
\n
\n Celular:\n PlaceHolder\n
\n
\n Web:\n PlaceHolder\n
\n
\n Especies:\n PlaceHolder\n
\n\n
\n \n
\n
);\n }\n return Cards;\n}\n\nconst FisherPortal = () => {\n /**\n * Componente que renderiza los productos de la región pasada por parametro en la ruta\n */\n const [profileType, SetProfileType] = useState(\"fisher\");\n const [paginationIndex, setPaginationIndex] = useState(0);\n const [items, setItems] = useState([]);\n const history = useHistory();\n const uicontext = useContext(uiContext);\n\n const [name, setName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [content, setContent] = useState(\"\");\n const [comments, setComments] = useState(\"\");\n\n const [filter, setFilter] = useState(0);\n\n const {regionfilter} = useParams();\n\n useEffect(() => {\n //fisher\n //organization\n //commercial\n getPaginationItems();\n getLastComments();\n }, []);\n\n const getLastComments = () => {\n uicontext.showLoader(true);\n /**\n * Obtener ultimos comentarios\n * Se hace el llamado al servicio /comments/get-last-comments\n */\n API.getLastComments()\n .then(x => {\n setComments(x);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }\n\n const renderComments = () => {\n let commnetsToRender = [];\n\n\n for (let i = 0; i < comments.length; i++) {\n\n commnetsToRender.push(\n
\n
\n \"\"\n
\n
\n {comments[i].authorName}\n {comments[i].content}\n
\n
)\n\n }\n return commnetsToRender;\n }\n\n const getPaginationItems = () => {\n uicontext.showLoader(true); \n \n /**\n * Obtener los ultimos productos\n * Se hace el llamado al servicio /products/get-last-products\n */\n API.putLastProducts(\n regionfilter.replace(/-/g, ' '),\n paginationIndex,\n 30)\n .then(x => {\n setItems(x);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }\n\n const renderItems = () => {\n let cacheToRender = [];\n const getFilterName = () => {\n switch (filter) {\n case 1: return \"ORGANIZATION\";\n case 2: return \"FISHER\";\n case 3: return \"MARKETER\";\n default: return \"NULL\";\n }\n }\n\n\n for (let i = 0; i < items.length; i++) {\n if (items[i].user.type === getFilterName() || filter === 0) {\n cacheToRender.push(\n
\n
\n \"\"\n
\n {items[i].user.type === \"FISHER\" && Pescador:}\n {items[i].user.type === \"ORGANIZATION\" && Organizacion:}\n {items[i].user.type === \"MARKETER\" && Comercializadora:}\n\n {items[i].user.type === \"FISHER\" && {items[i].user.name} {items[i].user.lastname}}\n {items[i].user.type !== \"FISHER\" && {items[i].user.businessLegalName}}\n
\n {\n (items[i].user.mobilePhone !== null || items[i].user.mobilePhone === \"\") &&\n
\n \n Celular:\n {items[i].user.mobilePhone}\n \n
\n }\n\n {\n (items[i].regionKey !== null || items[i].regionKey === \"\") &&\n
\n \n Region:\n {items[i].regionKey}\n \n
\n }\n\n {\n (items[i].user.sectorKey !== null || items[i].user.sectorKey === \"\") &&\n
\n \n Caleta:\n {items[i].user.sectorKey}\n \n
\n }\n\n
\n Especies:\n {items[i].name}\n
\n {\n (items[i].user.website !== null || items[i].user.website === \"\") &&\n
\n \n Web:\n {items[i].user.website}\n \n
\n }\n
\n\n
\n \n
\n
\n );\n }\n }\n\n return cacheToRender;\n }\n\n const sendComment = () => {\n uicontext.showLoader();\n /**\n * Comentar\n * Se hace el llamado al servicio /comments/register-comment\n */\n API.postRegisterComment({\n authorName: name,\n authorEmail: email,\n content: content\n })\n .then(x => {\n setName(\"\");\n setEmail(\"\");\n setContent(\"\");\n getLastComments();\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }\n\n useEffect(() => {\n }, [filter])\n\n return (\n
\n
\n
\n Portal del pescador\n\n
{ setFilter(filter === 1 ? 0 : 1); }} className={((filter !== 1 && filter !== 0) ? \"fisherPortalSectionSelected \" : \"\") + \"fisherPortalSection fisherPortalSectionBlue\"}>\n
\n \"\"\n Organizaciones\n
\n
\n\n
{ setFilter(filter === 2 ? 0 : 2); }} className={(filter !== 2 && filter !== 0 ? \"fisherPortalSectionSelected \" : \"\") + \"fisherPortalSection fisherPortalSectionOrange\"}>\n
\n \"\"\n Pescadores y Pescadoras\n
\n
\n\n
{ setFilter(filter === 3 ? 0 : 3); }} className={(filter !== 3 && filter !== 0 ? \"fisherPortalSectionSelected \" : \"\") + \"fisherPortalSection fisherPortalSectionCyan\"}>\n
\n \"\"\n Comercializadoras de la caleta\n
\n
\n
\n\n
\n {renderItems()}\n\n {/*
\n \n
*/}\n
\n\n\n\n {/* Comments */}\n
\n
\n
\n \"\"\n Comparte tu opinión\n
\n
{\n e.preventDefault();\n e.stopPropagation();\n sendComment();\n }}>\n { setName(event.target.value); }} className=\"nameInput\" placeholder=\"Ingresa tu nombre\" type=\"text\" />\n { setEmail(event.target.value); }} className=\"mailInput\" placeholder=\"Ingresa tu correo electrónico\" type=\"text\" />\n \n \n
\n
\n\n
\n {renderComments(6)}\n
\n
\n
\n
\n )\n}\n\nexport default FisherPortal;","import React, { useState, useContext } from 'react';\nimport './RegionSelected.scss';\nimport { useHistory, useParams } from 'react-router-dom';\nimport CaletaSelected from './../CaletaSelected/CaletasSelected'\nimport LeafletMap from './../../common/Leaflet'\nimport flecha from '../../../assets/flecha.svg';\nimport regions from './../../sernapesca.json';\nimport { ResourcesContext } from '../../ContextProvider';\nimport { useEffect } from 'react';\nimport { uiContext } from '../../common';\nimport FisherPortal from '../../FisherPortal/FisherPortal';\n\nfunction toTitleCase(str) {\n return str.replace(\n /\\w\\S*/g,\n function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n }\n );\n}\n/**\n * Componente de la región Seleccionada\n * Muestra los datos según la región que se ha seleccionado\n */\nconst RegionSelected = () => {\n const history = useHistory();\n const uicontext = useContext(uiContext);\n const resources = useContext(ResourcesContext);\n const [caleta, setCaleta] = useState({});\n const [caletas, setCaletas] = useState([])\n const [showCaletasList, setShowCaletasList] = useState(false);\n const [showCaleta, setShowCaleta] = useState(false);\n const [caletaId, setCaletaId] = useState('');\n const [markerPosition, setMarkerPosition] = useState({ lat: -33.440324, lng: -70.665975 });\n const [isCharged, setIsCharged] = useState(false);\n const [man, setMan] = useState(0);\n const [woman, setWoman] = useState(0);\n let { id, regionfilter } = useParams();\n let region = regions.find((r) => {\n return r.cdRegion == id\n })\n\n function selectCaleta(caleta, boolean) {\n \n setCaleta(caleta);\n setShowCaletasList(boolean)\n let position = {\n lat: caleta.caletaPOS ? caleta.caletaPOS[1] : -33.440324,\n lng: caleta.caletaPOS ? caleta.caletaPOS[0] : -70.665975\n }\n\n setMarkerPosition(position)\n }\n function toTitleCase(str) {\n if (str) {\n return str.replace(\n /\\w\\S*/g,\n function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n }\n );\n }\n }\n function getData() {\n uicontext.showLoader(true);\n resources.getRegions(region.codigoRegion).then((result) => {\n let woman = 0;\n let man = 0;\n if (result.data == null || result.data.length == 0) { uicontext.hideLoader(); return; }\n\n result.data.map((c) => {\n if (c.nroMujeres) { woman += c.nroMujeres }\n if (c.nroHombres) { man += c.nroHombres }\n if (c.caletaPOS != '-') {\n c.caletaPOS = JSON.parse(c.caletaPOS)\n } else {\n c.caletaPOS = [-70.665975, -33.440324]\n }\n })\n setWoman(woman)\n setMan(man)\n selectCaleta(result.data[0], false)\n setCaletas(result.data)\n setIsCharged(true);\n uicontext.hideLoader();\n }).catch((err) => {\n console.warn({error: err})\n })\n }\n\n useEffect(() => {\n getData();\n }, [])\n\n return (\n
\n
\n
{\n setShowCaleta(false);\n }}>\n Región {region.name}\n
\n\n
\n
\n {caletas.length}\n Caletas\n
\n
\n {woman + man}\n Pescadores\n
\n
\n {woman}\n Mujeres\n
\n
\n {man}\n Hombres\n
\n
\n
\n\n
\n {showCaletasList == false &&\n
{ setShowCaletasList(true); }}>\n {caleta.nombreCaleta} \n \"Arrow\"\n
\n }\n\n {\n showCaletasList == true && caletas.map((c) => {\n c.nombreCaleta = c.nombreCaleta.toUpperCase();\n return (\n
{ selectCaleta(c, false); }}>\n {toTitleCase(c.nombreCaleta)} \n \"Arrow\"\n
\n )\n })\n }\n\n\n
\n\n
\n
{\n setShowCaleta(true);\n setCaletaId(caleta.cdCaleta);\n }}>\n Conoce nuestra caleta \n
\n
\n\n {showCaleta == false &&
\n \n
}\n\n {\n showCaleta && (\n \n )\n }\n\n { !showCaleta && }\n
\n\n )\n}\n\nexport default RegionSelected;\n","import React from 'react';\nimport './BlueHeader.scss';\nimport { useState } from 'react';\nimport { useContext } from 'react';\nimport { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport uiContext from '../uiContext';\n/**\n * Componente de menú hamburguesa en modo responsive (móvil)\n * Solamente se renderiza en resoluciones de dispositivomos móviles y/o tablet\n */\nconst BlueHeader = () => {\n const uicontext = useContext(uiContext);\n\n const [showSubmenu, setShowSubmenu] = useState(false);\n const history = useHistory();\n\n useEffect(() => {\n\n }, []);\n\n const [showLateralMenu, setShowLateralMenu] = useState(false);\n useEffect(() => {\n console.log({ showLateralMenu: showLateralMenu });\n if (showLateralMenu === true) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"unset\";\n }\n }, [showLateralMenu])\n\n return (\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n\n
{ setShowLateralMenu(showLateralMenu => !showLateralMenu); }} className=\"leftSection\">\n
\n
\n
\n
\n
\n
\n\n
\n Menu\n
\n\n {uicontext.login === false && }\n\n {uicontext.login === true && }\n\n
\n
\n
\n )\n}\n\nexport default BlueHeader;","import React, { useContext, useEffect } from 'react';\nimport './Login.scss';\nimport caletaTexto from '../../assets/CaletaEnLineaLogoV3.svg';\nimport { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uiContext } from '../common';\nimport { Fragment } from 'react';\nimport {HeaderMenu} from '../HeaderMenu/HeaderMenu'\nimport flechaImg from '../../assets/flecha.svg';\nimport {API} from '../../services/api'\n\nconst Login = ({ isChangePassword }) => {\n /**\n * Vista del login del administrador\n * Hay un formulario que pide el email y el password que son validados en el servidor\n */\n const uicontext = useContext(uiContext);\n const history = useHistory();\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n\n const [formState, setFormState] = useState(0);\n\n const [showIncorrectPasswordModal, setShowIncorrectPasswordModal] = useState(false);\n const [showForgotpasswordModal, setShowForgotpasswordModal] = useState(false);\n\n const [newPassword, setNewPassword] = useState(\"\");\n const [repeatNewPassword, setRepeatNewPassword] = useState(\"\");\n\n useEffect(() => {\n if (isChangePassword === true) {\n setFormState(2);\n }\n }, [])\n\n const login = () => {\n uicontext.showLoader();\n /**\n * Login\n * Se hace el llamado del servicio /users/register-user-session\n */\n API.postRegisterUserSession(user,password)\n .then(x =>{\n if(!x.key){\n setShowIncorrectPasswordModal(true);\n setPassword(\"\");\n uicontext.hideLoader();\n return;\n }\n localStorage.removeItem(\"sessionToken\");\n localStorage.removeItem(\"userId\");\n localStorage.setItem(\"sessionToken\", x.key);\n localStorage.setItem(\"userId\", x.userId);\n\n uicontext.hideLoader();\n history.push(\"/mi-perfil\");\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n \n }\n\n const forgotPassword = () => {\n uicontext.showLoader();\n\n /**\n * Recuperar contraseña\n * Se hacer el llamado al servicio /users/forgot-password\n */\n API.putForgotPasswordUser(user)\n .then(x =>{\n if(x._id){\n setUser(\"\");\n setPassword(\"\");\n setFormState(0);\n setShowForgotpasswordModal(true);\n uicontext.hideLoader();\n history.push(\"/login\");\n }else{\n uicontext.hideLoader();\n alert('Datos inválidos!');\n }\n })\n }\n\n const changePassword = () => {\n if(newPassword != repeatNewPassword){\n alert('Error, las contraseñas deben ser iguales!')\n return;\n }\n let sessionKey = localStorage.getItem(\"sessionToken\");\n uicontext.showLoader();\n /**\n * Cambiar contraseña\n * Se hace el llamado al servicio /usercredentials/change-password\n */\n API.putChangePasswordUser({sessionKey,newPassword})\n .then(x => {\n alert('Contraseña cambiada con exito!');\n setUser(\"\");\n setPassword(\"\");\n setFormState(0);\n uicontext.hideLoader();\n })\n .catch(x=>{\n uicontext.hideLoader();\n })\n }\n\n return (\n \n \n
\n
\n
\n
\n
\n \n
\n\n \"\"\n {formState === 0 &&
{\n e.preventDefault();\n e.stopPropagation();\n login();\n }}>\n
\n Bienvenido a Caleta en Línea\n
\n\n Usuario\n { setUser(event.target.value); }} placeholder=\"Escribe tu nombre de usuario\" />\n\n Clave\n { setPassword(event.target.value); }} placeholder=\"Escribe tu clave\" />\n\n
\n { history.push(\"/registrar-caleta\"); }} className=\"registerSpan\">Registrarse\n { setUser(\"\"); setPassword(\"\"); setFormState(1); }} className=\"forgotPassword\">¿Olvidaste tu contraseña?\n
\n\n
\n \n
\n { history.push(\"/home\"); }} className=\"returnSpan HideReturnSpan\">Volver\n
}\n\n {formState === 1 &&
{\n e.preventDefault();\n e.stopPropagation();\n forgotPassword();\n }}>\n
\n Bienvenido a caleta en línea\n
\n\n Correo electrónico\n { setUser(event.target.value); }} placeholder=\"Ingresa tu correo electrónico\" />\n\n
\n \n
\n { setUser(\"\"); setPassword(\"\"); setFormState(0); }} className=\"returnSpan\">Volver\n
}\n\n {formState === 2 &&
{\n e.preventDefault();\n e.stopPropagation();\n //forgotPassword();\n changePassword();\n }}>\n
\n Cambiar contraseña\n
\n\n Contraseña actual\n { setPassword(event.target.value); }} />\n\n Contraseña nueva\n { setNewPassword(event.target.value); }} />\n\n Vuelve a escribir la contraseña nueva\n { setRepeatNewPassword(event.target.value); }} />\n\n
\n { setUser(\"\"); setPassword(\"\"); setFormState(1); }} className=\"forgotPassword\">¿Olvidaste tu contraseña?\n { }} className=\"registerSpan\">\n
\n\n
\n \n
\n { setUser(\"\"); setPassword(\"\"); setFormState(0); history.push(\"mi-perfil\"); }} className=\"returnSpan\">Volver\n
}\n
\n
\n
\n {showIncorrectPasswordModal === true &&
\n Clave incorrecta\n La clave introducida no es correcta.\n \n
}\n\n
{ setShowIncorrectPasswordModal(false); setShowForgotpasswordModal(false); }} className={(showIncorrectPasswordModal === true || showForgotpasswordModal === true ? \"passwordModalBackground-visible\" : \"passwordModalBackground-hidden\") + \" passwordModalBackground\"}>\n
\n\n {showForgotpasswordModal === true &&
\n Correo de recuperacion enviado\n Se ha enviado una clave de recuperación a su correo electrónico.\n \n
}\n
\n
\n )\n}\n\nexport default Login;","import React, { Fragment, useContext } from 'react';\nimport './Profile.scss';\n\nimport bannerBackground from './AssetsProfile/bannerPhoto.png';\nimport profilePhoto from './AssetsProfile/fisherPhoto.png';\nimport marketerPhoto from './AssetsProfile/marketerPhoot.svg';\nimport organizationPhoto from './AssetsProfile/organizationPhoto.svg';\nimport uploadProduct from './AssetsProfile/uploadProduct.svg';\nimport { useState } from 'react';\nimport { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uiContext } from '../common';\nimport {API} from '../../services/api';\n\nimport regionDataJson from '../../assets/regiones.json';\n\nconst Profile = () => {\n /**\n * Vista del perfil del usuario\n * Se carga la informacion del usuario por medio del sessionToken\n * Una vez cargada la información es renderizada en el formulario.\n * Se puede actualizar la información\n * Se puede actualizar la foto de perfil\n */\n const history = useHistory();\n const uicontext = useContext(uiContext);\n const [profileType, SetProfileType] = useState(\"FISHER\");\n\n const [name, setName] = useState('');\n const [lastname, setLastname] = useState('');\n const [rut, setRut] = useState('');\n const [email, setEmail] = useState('');\n const [phone, setPhone] = useState('');\n const [mobilePhone, setMobilePhone] = useState('');\n const [comment, setComment] = useState('');\n const [type, setType] = useState('');\n const [typeKey, setTypeKey] = useState(\"\");\n const [approvalState, setApprovalState] = useState(\"\");\n const [approvalStateDescription, setApprovalStateDescription] = useState(\"\");\n const [regionKey, setRegionKey] = useState(\"\");\n const [cityKey, setCityKey] = useState(\"\");\n const [communeKey, setCommuneKey] = useState(\"\");\n const [sectorKey, setSectorKey] = useState(\"\");\n const [website, setWebsite] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n const [photoUrl, setPhotoUrl] = useState(\"\");\n const [coverUrl, setCoverUrl] = useState(\"\");\n const [birthDate, setBirthDate] = useState(\"\");\n\n const [businessLine, setBusinessLine] = useState(\"\");\n const [businessLegalName, setBusinessLegalName] = useState(\"\");\n\n const [regionSelect, setRegionSelect] = useState([]);\n const [citySelect, setCitySelect] = useState([]);\n const [communeSelect, setCommuneSelect] = useState([]);\n\n const [termsAccepted, setTermsAccepted] = useState(true);\n\n const [personalDeliveryEnabled, setPersonalDeliveryEnabled] = useState(false);\n const [deliveryEnabled, setDeliveryEnabled] = useState(false);\n\n const updateProfilePhoto = () => {\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = '.webp,.png,.jpg,.jpeg,.svg';\n input.click();\n input.onchange = () => {\n uicontext.showLoader();\n if (!input.files.length) {\n alert(\"File too big\");\n this.loader.hide();\n uicontext.hideLoader();\n return;\n }\n var file = input.files[0];\n var fileType = file.type.split('/')[0];\n if (file.size > 50 * 1000 * 1000) {\n this.loader.hide();\n alert(\"File too big\");\n uicontext.hideLoader();\n return;\n }\n\n /**\n * Subir archivo\n * Se hace el llamado al servicio /uploads/\n */\n API.postUploadFile(file)\n .then(x => {\n const url = `${uicontext.API}/images/${x.filename}`;\n setPhotoUrl(url);\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken !== null) {\n uicontext.showLoader();\n let dataToUpdate = {\n sessionKey: sessionToken,\n name: name,\n lastname: lastname,\n rut: rut,\n email: email,\n phone: phone,\n mobilePhone: mobilePhone,\n comment: comment,\n type: type,\n typeKey: typeKey,\n regionKey: regionKey,\n cityKey: cityKey,\n communeKey: communeKey,\n sectorKey: sectorKey,\n website: website,\n message: message,\n photoUrl: url,\n coverUrl: coverUrl,\n birthDate: birthDate,\n businessLegalName: businessLegalName,\n businessLine: businessLine,\n personalDeliveryEnabled: (personalDeliveryEnabled === \"true\" || personalDeliveryEnabled === true),\n deliveryEnabled: (deliveryEnabled === \"true\" || deliveryEnabled === true),\n termsAccepted: true\n };\n\n uicontext.showLoader();\n API.putUpdateUserData(dataToUpdate)\n .then(x => {\n setTermsAccepted(true);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n }\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }\n }\n\n const updateBannerPhoto = () => {\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = '.webp,.png,.jpg,.jpeg,.svg';\n input.click();\n input.onchange = () => {\n uicontext.showLoader();\n if (!input.files.length) {\n alert(\"File too big\");\n this.loader.hide();\n uicontext.hideLoader();\n return;\n }\n var file = input.files[0];\n var fileType = file.type.split('/')[0];\n if (file.size > 50 * 1024 * 1024) {\n this.loader.hide();\n alert(\"File too big\");\n uicontext.hideLoader();\n return;\n }\n\n /**\n * Subir archivo\n * Se hace el llamado al servicio /uploads/\n */\n API.postUploadFile(file)\n .then(x => {\n const url = `${uicontext.API}/images/${x.filename}`;\n setCoverUrl(url);\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken !== null) {\n uicontext.showLoader();\n let dataToUpdate = {\n sessionKey: sessionToken,\n name: name,\n lastname: lastname,\n rut: rut,\n email: email,\n phone: phone,\n mobilePhone: mobilePhone,\n comment: comment,\n type: type,\n typeKey: typeKey,\n regionKey: regionKey,\n cityKey: cityKey,\n communeKey: communeKey,\n sectorKey: sectorKey,\n website: website,\n message: message,\n photoUrl: photoUrl,\n coverUrl: url,\n birthDate: birthDate,\n businessLegalName: businessLegalName,\n businessLine: businessLine,\n personalDeliveryEnabled: (personalDeliveryEnabled === \"true\" || personalDeliveryEnabled === true),\n deliveryEnabled: (deliveryEnabled === \"true\" || deliveryEnabled === true),\n termsAccepted: true\n };\n\n uicontext.showLoader();\n API.putUpdateUserData(dataToUpdate)\n .then(x => {\n setTermsAccepted(true);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n }\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }\n }\n\n const acceptTerms = () => {\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken !== null) {\n let dataToUpdate = {\n sessionKey: sessionToken,\n name: name,\n lastname: lastname,\n rut: rut,\n email: email,\n phone: phone,\n mobilePhone: mobilePhone,\n comment: comment,\n type: type,\n typeKey: typeKey,\n regionKey: regionKey,\n cityKey: cityKey,\n communeKey: communeKey,\n sectorKey: sectorKey,\n website: website,\n message: message,\n photoUrl: photoUrl,\n coverUrl: coverUrl,\n birthDate: birthDate,\n businessLegalName: businessLegalName,\n businessLine: businessLine,\n personalDeliveryEnabled: (personalDeliveryEnabled === \"true\" || personalDeliveryEnabled === true),\n deliveryEnabled: (deliveryEnabled === \"true\" || deliveryEnabled === true),\n termsAccepted: true\n };\n\n uicontext.showLoader();\n /**\n * Actualizar datos del usuario\n * Se hace le llamado al servicio /users/update-user-data\n */\n API.putUpdateUserData(dataToUpdate)\n .then(x => {\n setTermsAccepted(true);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n }\n }\n\n useEffect(() => {\n //FISHER\n //MARKETER\n //ORGANIZATION\n const sessionKey = localStorage.getItem(\"sessionToken\");\n uicontext.showLoader();\n \n /**\n * Consultar los datos del usuario por el token\n * Se hace le llamado al servicio /users/get-user-by-session-key\n */\n API.putUserBySessionKey(sessionKey)\n .then(response =>{\n uicontext.setLogin(true);\n uicontext.setName(response.name !== null ? response.name : \"\");\n setName(response.name !== null ? response.name : \"\");\n setLastname(response.lastname !== null ? response.lastname : \"\");\n setRut(response.rut !== null ? response.rut : \"\");\n setEmail(response.email !== null ? response.email : \"\");\n setPhone(response.phone !== null ? response.phone : \"\");\n setMobilePhone(response.mobilePhone !== null ? response.mobilePhone : \"\");\n setComment(response.comment !== null ? response.comment : \"\");\n setType(response.type !== null ? response.type : \"\");\n setTypeKey(response.typeKey !== null ? response.typeKey : \"\");\n setApprovalState(response.approvalState !== null ? response.approvalState : \"\");\n setApprovalStateDescription(response.approvalStateDescription !== null ? response.approvalStateDescription : \"\");\n setRegionKey(response.regionKey !== null ? response.regionKey : regionDataJson[0].region);\n setCityKey(response.cityKey !== null ? response.cityKey : regionDataJson[0].provincias[0].name);\n setCommuneKey(response.communeKey !== null ? response.communeKey : regionDataJson[0].provincias[0].comunas[0].name);\n setSectorKey(response.sectorKey !== null ? response.sectorKey : \"\");\n setWebsite(response.website !== null ? response.website : \"\");\n setMessage(response.message !== null ? response.message : \"\");\n setPhotoUrl(response.photoUrl !== null ? response.photoUrl : \"\");\n setCoverUrl(response.coverUrl !== null ? response.coverUrl : \"\");\n SetProfileType(response.type !== null && response.type !== \"\" ? response.type : \"FISHER\");\n setBusinessLine(response.businessLine !== null ? response.businessLine : \"\");\n setBusinessLegalName(response.businessLegalName !== null ? response.businessLegalName : \"\");\n setBirthDate(response.birthDate !== null ? response.birthDate : \"\");\n setPersonalDeliveryEnabled(response.personalDeliveryEnabled !== null ? response.personalDeliveryEnabled : false);\n setDeliveryEnabled(response.deliveryEnabled !== null ? response.deliveryEnabled : false);\n setTermsAccepted(response.termsAccepted !== null ? response.termsAccepted : false)\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n history.push(\"/login\");\n })\n \n }, []);\n\n const updateUserData = () => {\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken !== null) {\n uicontext.showLoader();\n let dataToUpdate = {\n sessionKey: sessionToken,\n name: name,\n lastname: lastname,\n rut: rut,\n email: email,\n phone: phone,\n mobilePhone: mobilePhone,\n comment: comment,\n type: type,\n typeKey: typeKey,\n regionKey: regionKey,\n cityKey: cityKey,\n communeKey: communeKey,\n sectorKey: sectorKey,\n website: website,\n message: message,\n photoUrl: photoUrl,\n coverUrl: coverUrl,\n birthDate: birthDate,\n businessLegalName: businessLegalName,\n businessLine: businessLine,\n personalDeliveryEnabled: (personalDeliveryEnabled === \"true\" || personalDeliveryEnabled === true),\n deliveryEnabled: (deliveryEnabled === \"true\" || deliveryEnabled === true),\n termsAccepted: true\n };\n\n uicontext.showLoader();\n API.putUpdateUserData(dataToUpdate)\n .then(x => {\n setTermsAccepted(true);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n }\n }\n\n const getUserTypeDefaultPhoto = () => {\n switch (type) {\n case \"FISHER\": return profilePhoto;\n case \"MARKETER\": return marketerPhoto;\n case \"ORGANIZATION\": return organizationPhoto;\n default:\n return profilePhoto;\n }\n }\n\n const getUserTypeDefaultBanner = () => {\n switch (type) {\n case \"FISHER\": return bannerBackground;\n case \"MARKETER\": return bannerBackground;\n case \"ORGANIZATION\": return bannerBackground;\n default:\n return bannerBackground;\n }\n }\n\n\n useEffect(() => {\n let regionOptions = [];\n for (let i = 0; i < regionDataJson.length; i++) {\n regionOptions.push();\n }\n setRegionSelect(regionOptions);\n\n let cityOptions = [];\n for (let i = 0; i < regionDataJson.length; i++) {\n if (regionDataJson[i].region === regionKey) {\n for (let j = 0; j < regionDataJson[i].provincias.length; j++) {\n cityOptions.push();\n }\n }\n }\n setCitySelect(cityOptions);\n\n let communeOptions = [];\n for (let i = 0; i < regionDataJson.length; i++) {\n if (regionDataJson[i].region === regionKey) {\n for (let j = 0; j < regionDataJson[i].provincias.length; j++) {\n if (regionDataJson[i].provincias[j].name === cityKey) {\n for (let k = 0; k < regionDataJson[i].provincias[j].comunas.length; k++) {\n communeOptions.push();\n }\n }\n }\n }\n }\n setCommuneSelect(communeOptions);\n }, [regionKey, cityKey]);\n\n const setCityAndCommuneZero = (value) => {\n for (let i = 0; i < regionDataJson.length; i++) {\n if (regionDataJson[i].region === value) {\n setCityKey(regionDataJson[i].provincias[0].name);\n setCommuneKey(regionDataJson[i].provincias[0].comunas[0].name);\n }\n }\n }\n\n const setCommuneToZero = (value) => {\n for (let i = 0; i < regionDataJson.length; i++) {\n if (regionDataJson[i].region === regionKey) {\n for (let j = 0; j < regionDataJson[i].provincias.length; j++) {\n if (regionDataJson[i].provincias[j].name === value) {\n setCommuneKey(regionDataJson[i].provincias[j].comunas[0].name);\n }\n }\n }\n }\n }\n\n return (\n
\n
\n\n
\n
\n \"\"\n
\n\n \n\n
\n \"\"\n
\n\n \n
\n\n
\n Declaración de acuerdos\n \n Por el presente instrumento yo ({name + \" \" + lastname}) me comprometo a cumplir con las\n recomendaciones y buenas prácticas que forman parte del programa Caleta en línea, así como colaborar en el cuidado y comercialización responsable del producto.\n \n {termsAccepted === false && }\n
\n\n
{\n e.preventDefault();\n e.stopPropagation();\n updateUserData();\n }}>\n
\n \n Datos personales\n \n \n {profileType === \"FISHER\" &&\n \n
\n Nombre\n { setName(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Apellido\n { setLastname(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Fecha de nacimiento\n { setBirthDate(event.target.value); }} className=\"input50\" type=\"date\" />\n
\n
\n Tipo de cuenta\n { setType(event.target.value); }} disabled className=\"input50\" type=\"text\" />\n
\n
\n Registro de Pescador Artesanal\n { setTypeKey(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Rut\n { setRut(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
}\n\n {profileType === \"MARKETER\" &&\n \n
\n Razón social\n { setBusinessLegalName(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Giro\n { setBusinessLine(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Rut\n { setRut(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Tipo de cuenta\n { setType(event.target.value); }} disabled className=\"input50\" type=\"text\" />\n
\n
\n Número de registro Sernapesca\n { setTypeKey(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
}\n\n {profileType === \"ORGANIZATION\" &&\n \n
\n Razón social\n { setBusinessLegalName(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Nombre\n { setName(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Apellido\n { setLastname(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n RUT\n { setRut(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Tipo de cuenta\n { setType(event.target.value); }} disabled className=\"input50\" type=\"text\" />\n
\n
\n Número de ROA\n { setTypeKey(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
}\n
\n\n
\n\n
\n\n
\n \n Residencia\n \n\n
\n Región\n \n
\n
\n Provincias\n \n
\n
\n Comuna\n \n
\n
\n Caleta\n { setSectorKey(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n\n
\n \n Datos de contacto\n \n\n
\n Celular\n { setMobilePhone(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Teléfono\n { setPhone(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Correo electrónico\n { setEmail(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n Sitio web\n { setWebsite(event.target.value); }} className=\"input50\" type=\"text\" />\n
\n
\n ¿Se pueden retirar los productos en caleta?\n \n
\n\n
\n ¿Tiene despacho a domicilio?\n \n
\n
\n\n
\n \n Mensaje del pescador\n \n\n
\n \n
\n\n \n
\n\n
\n \n Sube tus pescados y/o mariscos\n \n\n
{ history.push(\"/new-product\") }} className=\"uploadFishingsContainer\">\n \"\"\n
\n Sube tus\n productos aquí\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default Profile;","import React, { useContext } from 'react';\nimport './FisherProfile.scss';\n\nimport bannerBackground from './AssetsFisher/bannerPhoto.png';\nimport profilePhoto from './AssetsFisher/fisherPhoto.png';\nimport marketerPhoto from './AssetsFisher/marketerPhoot.svg';\nimport organizationPhoto from './AssetsFisher/organizationPhoto.svg';\n\nimport CountryLocationIcon from './AssetsFisher/FisherProfileIcons/CountryLocationIcon.svg';\nimport DeliveryCarIcon from './AssetsFisher/FisherProfileIcons/DeliveryCarIcon.svg';\nimport LocationIcon from './AssetsFisher/FisherProfileIcons/LocationIcon.svg';\nimport MailIcon from './AssetsFisher/FisherProfileIcons/MailIcon.svg';\nimport ProfileIcon from './AssetsFisher/FisherProfileIcons/ProfileIcon.svg';\nimport WebIcon from './AssetsFisher/FisherProfileIcons/WebIcon.svg';\nimport WhatsappIcon from './AssetsFisher/FisherProfileIcons/WhatsappIcon.svg';\nimport RetiroCaja from './AssetsFisher/retiroCaja.svg';\n\nimport UploadProduct from './AssetsFisher/uploadProduct.svg';\nimport { useState } from 'react';\nimport { useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { uiContext } from '../common';\nimport { API } from '../../services/api';\n\nconst RenderCommnets = (numberOfComments) => {\n let Comments = [];\n for (let i = 0; i < numberOfComments; i++) {\n Comments.push(
\n
\n \"\"\n
\n
\n Raul Linderos\n Lorem ipsum, dolor sit amet consectetur adipisicing elit. Blanditiis placeat nihil est, minus sequi delectus expedita quia repudiandae, dolorum quidem ullam! Distinctio sequi sed ipsam. Explicabo placeat iste ullam tempore! Lorem ipsum dolor, sit amet consectetur adipisicing elit. Soluta, minima adipisci blanditiis consectetur earum veniam voluptatibus sit non, fuga itaque doloribus iure laboriosam illo perspiciatis necessitatibus tenetur, recusandae est accusantium.\n
\n
);\n }\n return Comments;\n}\n\n\nconst getClassNamePerType = (profileType) => {\n switch (profileType) {\n case \"fisher\": return \"fisherContent orangeBackground\";\n case \"organization\": return \"fisherContent blueBackground\";\n case \"commercial\": return \"fisherContent cyanBackground\";\n default: return \"fisherContent\";\n }\n}\n\nconst FisherProfile = () => {\n /**\n * Vista del perfil de pescador\n * Esta vista el visitante puede ver los productos que ofrece el pescador y sus datos\n */\n const [profileType, SetProfileType] = useState(\"fisher\");\n\n\n let { _id } = useParams();\n\n const [phone, setPhone] = useState(\"\");\n const [whatsapp, setWhatsapp] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [website, setWebsite] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n\n const [city, setCity] = useState(\"\");\n const [commune, setCommune] = useState(\"\");\n const [sector, setSector] = useState(\"\");\n\n const [name, setName] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n\n const [products, setProducts] = useState([]);\n\n const [photoUrl, setPhotoUrl] = useState(null);\n const [coverUrl, setCoverUrl] = useState(null);\n const [type, setType] = useState(\"FISHER\");\n\n const [personalDeliveryEnabled, setPersonalDeliveryEnabled] = useState(false);\n const [deliveryEnabled, setDeliveryEnabled] = useState(false);\n\n const uicontext = useContext(uiContext);\n\n useEffect(() => {\n uicontext.showLoader(true);\n /**\n * Obtener el usuario por el _id\n * Se hace le llamado al servicio \n */\n API.putUserById(_id)\n .then(response => {\n if(response._id){\n console.log(response);\n setPhone(response.name);\n setWhatsapp(response.mobilePhone);\n setEmail(response.email);\n setWebsite(response.website);\n setRegion(response.regionKey);\n setCity(response.cityKey);\n setCommune(response.communeKey);\n setSector(response.sectorKey);\n\n setName(response.name);\n setMessage(response.message);\n\n setProducts(response.products);\n\n setType(response.type);\n setPhotoUrl(response.photoUrl);\n setCoverUrl(response.coverUrl);\n\n setPersonalDeliveryEnabled(response.personalDeliveryEnabled !== null ? response.personalDeliveryEnabled : false);\n setDeliveryEnabled(response.deliveryEnabled !== null ? response.deliveryEnabled : false);\n uicontext.hideLoader();\n }\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n }, []);\n\n const renderProducts = () => {\n let productsToRender = [];\n for (let i = 0; i < products.length; i++) {\n productsToRender.push(\n
\n \"\"\n {products[i].name}\n
\n )\n\n }\n return productsToRender;\n }\n\n const getUserTypeDefaultPhoto = () => {\n switch (type) {\n case \"FISHER\": return profilePhoto;\n case \"MARKETER\": return marketerPhoto;\n case \"ORGANIZATION\": return organizationPhoto;\n default:\n return profilePhoto;\n }\n }\n\n const getUserTypeDefaultBanner = () => {\n switch (type) {\n case \"FISHER\": return bannerBackground;\n case \"MARKETER\": return bannerBackground;\n case \"ORGANIZATION\": return bannerBackground;\n default:\n return bannerBackground;\n }\n }\n\n return (\n
\n
\n
\n \"\"\n
\n\n
\n
\n \"\"\n
\n
\n\n
\n {type === \"FISHER\" && Pescador: {name}}\n {type === \"ORGANIZATION\" && Organizacion: {name}}\n {type === \"MARKETER\" && Comercializadora: {name}}\n
\n
\n \"\"\n Nombre: {phone}\n
\n
\n \"\"\n Provincia: {city}\n
\n\n
\n \"\"\n Whatsapp: {whatsapp}\n
\n
\n \"\"\n Comuna: {commune}\n
\n\n
\n \"\"\n Email: {email}\n
\n
\n \"\"\n Caleta: {sector}\n
\n\n
\n \"\"\n Website: {website}\n
\n
\n \"\"\n Retiro en caleta: {personalDeliveryEnabled === false ? \"No\" : \"Si\"}\n
\n\n
\n \"\"\n Región: {region}\n
\n
\n \"\"\n Despacho a domicilio: {deliveryEnabled === false ? \"No\" : \"Si\"}\n
\n
\n\n
\n\n
\n {type === \"FISHER\" && Mensaje del pescador}\n {type === \"ORGANIZATION\" && Mensaje de la organizacion}\n {type === \"MARKETER\" && Mensaje de la comercializadora}\n \n {message}\n \n
\n\n
\n Productos que ofrece\n
\n {renderProducts()}\n
\n
\n
\n
\n )\n}\n\nexport default FisherProfile;","import React, { useContext } from 'react';\nimport './NewProduct.scss';\nimport { useState } from 'react';\nimport arrowImg from './AssetsNewProduct/Arrow.svg';\n\nimport DeleteIcon from './AssetsNewProduct/DeleteIcon.svg';\nimport ViewEye from './AssetsNewProduct/ViewEye.svg';\nimport ProductsIcon from './AssetsNewProduct/ProductsIcon.svg';\nimport UploadProductIcon from './AssetsNewProduct/UploadProductIcon.svg';\nimport { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uiContext } from '../common';\nimport Moment from 'moment';\n\nimport regionDataJson from '../../assets/regiones.json';\nimport {API} from '../../services/api';\n\nconst NewProduct = () => {\n /**\n * Vista para agregar y mostrar los productos\n * Hay un formulario para poder escojer la imagen y enviar los dato al servidor\n * Se cargan los productos y se renderizan en una tabla\n */\n const history = useHistory();\n const uicontext = useContext(uiContext);\n const [section, setSection] = useState(0);\n const [varSessionToken, setVarSessionToken] = useState(\"\");\n\n const [productName, setProductName] = useState(\"\");\n const [photoUrl, setPhotoUrl] = useState(\"\");\n\n const [productsList, setProductsList] = useState([]);\n\n const [regionSelect, setRegionSelect] = useState([]);\n const [regionKey, setRegionKey] = useState(regionDataJson[0].region);\n\n useEffect(() => {\n let regionOptions = [];\n for (let i = 0; i < regionDataJson.length; i++) {\n regionOptions.push();\n }\n setRegionSelect(regionOptions);\n setRegionKey(regionDataJson[0].region);\n\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken != null) {\n setVarSessionToken(sessionToken);\n } else {\n history.push(\"/login\");\n }\n }, []);\n\n\n const uploadPhoto = () => {\n //uicontext.showLoader();\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = '.webp,.png,.jpg,.jpeg,.svg';\n input.click();\n input.onchange = () => {\n\n if (!input.files.length) {\n alert(\"File too big\");\n uicontext.hideLoader();\n return;\n }\n var file = input.files[0];\n if ((file.size / 1024 / 1024) > 2) {\n alert(\"El peso de la imagen excede los 2MBs\");\n uicontext.hideLoader();\n return;\n }\n\n uicontext.showLoader();\n /**\n * Subir imagen\n * Se hace el llamado al servicio /uploads/\n */\n API.postUploadFile(file)\n .then(x => {\n setPhotoUrl(`${uicontext.API}/images/${x.filename}`);\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n \n }\n }\n\n const UploadProduct = () => {\n uicontext.showLoader();\n /**\n * Registrar producto\n * Se hace el llamado del servicio /products/register-product-for-user-in-session \n */\n API.postRegisterProductForUserInSession({\n name: productName,\n photoUrl: photoUrl,\n sessionKey: varSessionToken,\n description: \"-\",\n regionKey: regionKey\n })\n .then(x => {\n setProductName(\"\");\n setPhotoUrl(\"\");\n setSection(1);\n getUserProducts();\n uicontext.hideLoader();\n })\n .catch(x =>{\n uicontext.hideLoader();\n })\n }\n\n const getUserProducts = () => {\n uicontext.showLoader();\n /**\n * Obtener productos\n * Se hace el llamado del servicio \n */\n API.putProductsForUserInSession(varSessionToken)\n .then(x => {\n uicontext.hideLoader();\n setProductsList(x);\n })\n .catch(x =>{\n uicontext.hideLoader();\n })\n }\n\n const deleteElement = (_id) => {\n setSection(0);\n uicontext.showLoader();\n API.putRemoveProductForUserInSession({\n sessionKey:varSessionToken,\n productId:_id\n })\n .then(x => {\n uicontext.hideLoader();\n })\n .catch(x => {\n uicontext.hideLoader();\n });\n }\n\n const getDate = (objectId) => {\n return Moment(Date(parseInt(objectId.substring(0, 8), 16) * 1000)).format(\"DD / MMM / YYYY\");\n }\n\n\n return (\n
\n Mis productos\n
\n
\n
{ history.push(\"/mi-perfil\") }} className=\"returnSubContainer\">\n \"arrow\"\n Volver\n
\n
\n
\n
{ setSection(0) }} className={(section === 0 ? \"selectedButton productButton\" : \"productButton\")}>\n \"\"\n Agregar nuevo producto\n
\n\n
{ setSection(1); getUserProducts(); }} className={(section === 1 ? \"selectedButton productButton\" : \"productButton\")}>\n \"\"\n Productos publicados\n
\n
\n\n {section === 0 &&
\n Nombre del producto\n { setProductName(event.target.value); }} className=\"inputTitle\" type=\"text\" />\n\n
\n Región\n
\n \n
\n\n
\n\n Suba un producto\n {photoUrl !== \"\" && \"producto\"}\n \n\n \n
}\n\n {section === 1 && < div className=\"productListSection\">\n
\n
\n \n
\n\n
\n Titulo\n
\n\n
\n Fecha\n
\n\n
\n Region\n
\n\n
\n Visualizar\n
\n\n
\n Eliminar\n
\n
\n\n {productsList.map(x => {\n return(\n
\n
\n \"\"\n
\n\n
\n {x.name}\n
\n\n
\n {getDate(x._id)}\n
\n\n
\n {x.regionKey != null ? x.regionKey : \"---\"}\n
\n\n
\n { history.push(\"perfil-visitante/\" + x.userId); }} src={ViewEye} alt=\"\" />\n
\n\n
\n { deleteElement(x._id) }} src={DeleteIcon} alt=\"\" />\n
\n
\n );\n })}\n
}\n
\n
\n )\n}\n\nexport default NewProduct;","import React from 'react';\nimport './SubscribeFloatModal.scss';\nimport { useState } from 'react';\nimport {API} from '../../../services/api'\n\nconst SubscribeFloatModal = () => {\n /**\n * Componente para suscribirse\n * Es unn modal qeu permite enviar el nombre y el email\n */\n const [showModal, setShowModal] = useState(true);\n\n const [name, setName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n\n const sendData = () => {\n /**\n * Registrar suscriptor\n * Se hace le llamado al servicio /subscribers/register-subscriber\n */\n API.postRegisterSuscriber({\n name: name,\n email: email\n })\n .then(x => {\n setShowModal(false);\n })\n .catch(x => {\n setShowModal(false);\n });\n }\n\n return (\n
\n
{\n e.preventDefault();\n e.stopPropagation();\n sendData();\n }}>\n
\n
{ setShowModal(false) }} className=\"closeModal\">\n x\n
\n
\n
\n
\n Suscríbete aquí\n
\n\n
\n Ingresa tus datos para recibir información relevante de la pesca artesanal en Chile\n
\n\n
\n { setName(event.target.value); }} className=\"textInput\" placeholder=\"Nombre\" type=\"text\" />\n
\n\n
\n { setEmail(event.target.value); }} className=\"textInput\" placeholder=\"Correo electrónico\" type=\"text\" />\n
\n\n
\n \n
\n
\n
\n
\n )\n}\n\nexport default SubscribeFloatModal;","import React, { useState } from 'react';\nimport './ConservacionSustentabilidad.scss';\nimport botonConozcaMas from './Assets/boton_conozcamasaqui.png';\n\nconst ConservacionSustentabilidad = () => {\n /**\n * Vista conservación y sustentabilidad\n * \n */\n\n const [showConsumoSection, setShowConsumoSection] = useState(false);\n\n return (\n
\n
\n Conservación y sustentabilidad\n El estado tiene una preocupación especial por el desarrollo de las comunidades costeras, en consideración a la conservación de los espacios naturales y el desarrollo de las actividades que allí se generan, de manera de potenciar el uso racional y la capacidad de adaptación frente al cambio climático. Es por ello que dejamos a su disposición información referente a Normativas pesqueras y acuicolas, ley de caletas, Áreas de manejo y Consumo responsable.\n
\n\n \n Normativas pesqueras y acuícolas\n \n\n \n Ley de caletas\n \n\n \n Áreas de manejo\n \n\n
{setShowConsumoSection(showConsumoSection => !showConsumoSection); }} className=\"bannerSection Section3\">\n Consumo responsable\n Medidas preventivas para el consumidor.\n
\n
\n { window.open('https://www.achipia.gob.cl/wp-content/uploads/2016/03/Consejos-para-consumo-seguro-de-pescados-y-mariscos.pdf', '_blank'); }} src={botonConozcaMas} alt=\"\"/>\n
\n
\n )\n}\n\nexport default ConservacionSustentabilidad;","import React, { useState } from 'react';\nimport './MarineAreas.scss';\nimport LeafletMap from '../common/Leaflet';\nimport flechaSvg from '../../assets/flecha.svg';\n\nimport ParqueMarinoElArenal from '../common/geoJson/ParqueMarinoElArenal.json';\nimport ParqueMarinoElPalillo from '../common/geoJson/ParqueMarinoElPalillo.json';\nimport ParqueMarinoLoberia from '../common/geoJson/ParqueMarinoLoberia.json';\nimport ParqueMarinoMontesSUbmarinosCruseoYSelkirk from '../common/geoJson/ParqueMarinoMontesSubmarinosCruseoYSelKirk.json';\nimport ParqueMarinoMotuMotiroHiva from '../common/geoJson/ParqueMarinoMotuMotiroHiva.json';\nimport ParqueMarinoNazcaDesventurada from '../common/geoJson/ParqueMarinoNazcaDesventurada.json';\nimport ParqueMarinoTierraBlanca from '../common/geoJson/ParqueMarinoTierraBlanca.json';\nimport ReservaMarinaIslasChanaral from '../common/geoJson/ReservaMarinaIslaCHanaral.json';\nimport ReserveMarinaIslasChoros from '../common/geoJson/ReservaMarinaIslasChorosYDamas.json';\nimport ReservaMarinaLaRinconada from '../common/geoJson/ReservaMarinaLaRinconadaDN.json';\nimport ReservaMarinaPetemun from '../common/geoJson/ReservaMarinaPetemun.json';\nimport ReservaMarinaPulliquen from '../common/geoJson/ReservaMarinaPullinque.json';\nimport AmerbDamasDecretoExento from '../common/geoJson/AmerbDamasDecretoExento.json';\nimport FranciscoColane from '../common/geoJson/FranciscoColane.json';\nimport JuanFernandez from '../common/geoJson/JuanFernandez.json';\nimport IslasDiegoRamirez from '../common/geoJson/islas_diego_ramirez.json';\n\nconst MarineAreas = () => {\n /**\n * Vista de Areas Protegidas\n * Carga un mapa con las areas protegidas y direfentes urls\n */\n const [markerPosition, setMarkerPosition] = useState({ lat: -33.439269, lng: -70.646881 });\n const [zoom, setZoom] = useState(5);\n const [zoomconmutator, setZoomconmutator] = useState(false);\n const [dynamicData, setDynamicData] = useState(null);\n const [showDropdown, setShowDropdown] = useState(true);\n const panTo = (geoJson) => {\n setZoom(10);\n setZoomconmutator(!zoomconmutator);\n setMarkerPosition({ lat: geoJson.markerPosition[0], lng: geoJson.markerPosition[1], legend: geoJson.name });\n setDynamicData(geoJson);\n }\n\n return (\n
\n
\n Áreas marinas protegidas\n Son áreas delimitadas y definidas geográficamente cuya administración y regulación permiten alcanzar objetivos específicos de conservación y/o preservación.\n En nuestro país existen cuatro tipos de AMP: los parques marinos y las reservas marinas, que son esencialmente acuáticas; y los santuarios de la naturaleza y las áreas marinas y costeras protegidas de múltiples usos, que pueden contener porciones de tierra. Todas son decretadas por el Ministerio de Medio Ambiente, pero en el caso de las dos primeras, es la Subsecretaría de Pesca y Acuicultura la encargada de proveer los antecedentes para su destinación, quedando la tuición en manos del Servicio Nacional de Pesca y Acuicultura.\n
\n\n
\n
\n \n\n
\n { panTo(ParqueMarinoElArenal); setShowDropdown(false); }} className=\"option\">Parque marino El arenal D.S\n { panTo(ParqueMarinoElPalillo); setShowDropdown(false); }} className=\"option\">Parque marino El Palillo D.S\n { panTo(ParqueMarinoLoberia); setShowDropdown(false); }} className=\"option\">Parque marino Loberia SELKIRK D.S\n { panTo(JuanFernandez); setShowDropdown(false); }} className=\"option\">Parque marino Mar de Juan Fernandez\n { panTo(ParqueMarinoMontesSUbmarinosCruseoYSelkirk); setShowDropdown(false); }} className=\"option\">Parque marino Montes Submarinos Crusoe y Selkirk D.S\n { panTo(ParqueMarinoTierraBlanca); setShowDropdown(false); }} className=\"option\">Parque marino Tierra Blanca D.S\n { panTo(FranciscoColane); setShowDropdown(false); }} className=\"option\">Parque marino Francisco Coloane DN276-2003\n { panTo(ParqueMarinoMotuMotiroHiva); setShowDropdown(false); }} className=\"option\">Parque marino Motu Motiro Hiva DSN 235 2010\n { panTo(ParqueMarinoNazcaDesventurada); setShowDropdown(false); }} className=\"option\">Parque marino Nazca Desventurada DSN 05-2016\n { panTo(AmerbDamasDecretoExento); setShowDropdown(false); }} className=\"option\">Amerb Damas Decreto Exento N408-2005\n { panTo(ReservaMarinaPulliquen); setShowDropdown(false); }} className=\"option\">Reserva Marina Pullinque DN133-2003\n { panTo(ReservaMarinaIslasChanaral); setShowDropdown(false); }} className=\"option\">Reserva marina Isla Chanaral DN 150-2005 - DN 161-2010\n { panTo(ReserveMarinaIslasChoros); setShowDropdown(false); }} className=\"option\">Reserva Marina Islas Chorosy Damas DN151-2005 N161-2010\n { panTo(ReservaMarinaLaRinconada); setShowDropdown(false); }} className=\"option\">Reserva Marina La Rinconada DN522-1997\n { panTo(ReservaMarinaPetemun); setShowDropdown(false); }} className=\"option\">Reserva Marina Putemun DN134-2003\n { panTo(IslasDiegoRamirez); setShowDropdown(false); }} className=\"option\">Parque marino Islas Diego Ramírez y Paso Drake\n
\n\n
\n\n
\n \n
\n
\n\n
\n \n Recuerda que está prohibido pescar en zonas de área marina protegidas\n \n
\n
\n )\n}\n\nexport default MarineAreas;","import React,{useContext} from 'react';\nimport Logo from '../../../assets/sernapesca-caletaenlinea-flags.png';\nimport UserIcon from '../../../assets/user-icon.png';\nimport ChevronDown from '../../../assets/chevron-down.svg';\nimport MenuIcon from '../../../assets/menu-icon.svg';\nimport CloseIcon from '../../../assets/icon-close.svg';\nimport {uiContext} from '../../../components/common/';\nimport './HeaderAdmin.scss';\n\nexport function HeaderAdmin() {\n /**\n * Componente Cabezera del admin\n */\n const {showMenu, setShowMenu} = useContext(uiContext);\n return (\n
\n
\n \"Logo\"\n
\n
\n

Panel administrativo

\n
\n \"User\n

Admin

\n \"Chevron\n
\n
\n
setShowMenu(!showMenu)}>\n \"Menu\n
\n
\n )\n}","import ClipboardIcon from '../../../assets/clipboard-list-solid.svg';\nimport UserIcon from '../../../assets/user-large-solid.svg';\nimport KeyIcon from '../../../assets/key-solid.svg';\nimport ConfigIcon from '../../../assets/gear-solid.svg';\n\nexport const menuItems = [\n {\n id: 1,\n name: 'Usuarios',\n icon: ClipboardIcon,\n show: true,\n links: [\n {\n name: 'Solicitudes pendientes',\n path: '/admin/user-requests'\n },\n {\n name: 'Aprobados',\n path: '/admin/approved-users'\n },\n {\n name: 'Rechazados',\n path: '/admin/rejected-users'\n }\n ]\n },\n {\n id: 2,\n name: 'Suscriptores',\n icon: ClipboardIcon,\n show: true,\n links: [\n {\n name: 'Últimos suscriptores',\n path: '/admin/last-subscribers'\n }\n ]\n },\n {\n id: 3,\n name: 'Comentarios',\n icon: ClipboardIcon,\n show: true,\n links: [\n {\n name: 'Comentarios pendientes',\n path: '/admin/comments-to-approve'\n }\n ]\n },\n {\n id: 4,\n name: 'Productos',\n icon: ClipboardIcon,\n show: true,\n links: [\n {\n name: 'Lista de productos',\n path: '/admin/product-list'\n }\n ]\n },\n {\n id: 5,\n name: 'Usuarios',\n icon: UserIcon,\n show: true,\n links: [\n {\n name: 'Lista de usuarios',\n path: '/admin/staff-list'\n }\n ]\n },\n {\n id: 7,\n name: 'Configuración de cuenta',\n icon: ConfigIcon,\n show: true,\n links: [\n {\n name: 'Cambiar contraseña',\n path: '/admin/change-password'\n }\n ]\n }\n]\n","import React, { useState, useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport { menuItems } from './constants';\nimport Logo from '../../../assets/caleta-en-linea-nuevo-logo.jpg';\nimport {uiContext} from '../../../components/common/';\nimport CircleDotSolid from '../../../assets/iconCircleDotSolid.PNG';\nimport CircleSolid from '../../../assets/iconCircleSolid.PNG';\nimport './LateralMenu.scss';\n\nexport function LateralMenu() {\n /**\n * Componente Menu Lateral\n * Aqui se muestran las direntes opciones que tiene el administrador\n */\n const [menu, setMenu] = useState(menuItems);\n const {showMenu, setShowMenu} = useContext(uiContext);\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const handleShow = (id) => {\n const newMenu = menu.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n show: !item.show\n }\n }\n\n return item;\n });\n\n setMenu(newMenu);\n }\n\n window.onresize = ()=> setWindowWidth(window.innerWidth);\n\n if(showMenu && windowWidth < 990){\n return (\n \n )\n }\n\n return (\n \n )\n}","import React,{useState, useEffect} from \"react\";\nimport { API } from '../../../services/api';\nimport { Link, useHistory } from 'react-router-dom';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./UserRequests.scss\";\n\nexport function UserRequestsPage() {\n /**\n * Vistar de solicitudes de usuarios\n * Se consulta el listado de usuario que tienen solicitudes pendientes\n * al cargar se renderiza una tabla con los datos de los usuarios\n */\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener usuarios pendientes\n * se hace el llamado al servicio /users/get-pending-users\n */\n API.getPendingUsers()\n .then(res => {\n setUsers(res);\n setLoading(false);\n })\n .catch(err => {\n setUsers([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Solicitudes de usuarios

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n users.map((item, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n ))\n }\n \n
NombresApellidosRUTEmailTeléfonoRegiónComunaCaletaTipo De IdentificadorFecha De Solicitud
{item.name}{item.lastname}{item.rut}{item.email}{item.phone}{item.regionKey}{item.communeKey}{item.caletaKey}Pescador: {item.typeKey}{new Date(item._modifyTimestamp).toLocaleDateString()}\n \n Ver\n
\n
\n
\n \n )\n}","import React, { useEffect, useState } from 'react'\nimport { Link, useHistory } from 'react-router-dom';\nimport { API } from '../../../services/api';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./ApprovedUsers.scss\";\n\nexport function ApprovedUsersPage() {\n /**\n * Vista de usuarios aprobados \n * Se consulta el listados de usuarios aprobados al servidor\n * Una vez cargada la información se renderiza en una tabla\n */\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener usuarios aprobados\n * Se hace le llamado al servicio /users/get-approved-users \n */\n API.getApprovedUsers()\n .then(res => {\n setUsers(res);\n setLoading(false);\n })\n .catch(err => {\n setUsers([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Usuarios Aprobados

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n users.map((user, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n ))\n }\n \n
NombresApellidosRUTEmailTeléfonoRegiónComunaCaletaTipo De IdentificadorFecha (Aprobado)
{user.name}{user.lastname}{user.rut}{user.email}{user.phone}{user.regionKey}{user.communeKey}{user.caletaKey}Pescador: {user.typeKey}{new Date(user._modifyTimestamp).toLocaleDateString()}\n \n Ver\n
\n
\n
\n \n )\n}\n","import React,{useState, useEffect} from 'react'\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { Link, useHistory } from 'react-router-dom';\nimport { API } from '../../../services/api';\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./RejectedUsers.scss\";\n\nexport function RejectedUsersPage() {\n /**\n * Vista de usuarios rechazados\n * Se consulta el listado de usuarios rechazados al servidor\n * re renderiza una tabla con la informacion de los usuarios\n */\n\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener usuarios rechazados\n * Se hace llamado al servicio /users/get-rejected-users\n */\n API.getRejectedUsers()\n .then(res => {\n setUsers(res);\n setLoading(false);\n })\n .catch(err => {\n setUsers([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Usuarios Rechazados

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n users.map((item, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ))\n }\n \n
NombresApellidosRUTEmailTeléfonoRegiónComunaCaletaTipo De IdentificadorMotivoFecha (Rechazado)
{item.name}{item.lastname}{item.rut}{item.email}{item.phone}{item.regionKey}{item.communeKey}{item.caletaKey}Pescador: {item.typeKey}{item.approvalStateDescription}{new Date(item._modifyTimestamp).toLocaleDateString()}\n \n Ver\n
\n
\n
\n \n )\n}\n","import React,{useState, useEffect} from 'react'\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { API } from '../../../services/api';\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport './LastSuscribers.scss'\nimport { useHistory } from 'react-router-dom';\n\nexport function LastSuscribersPage() {\n /**\n * Vista de ultimos suscriptores\n * Se consulta los ultimos suscriptores al servidor\n * se renderiza una tabla con la información\n */\n const [subscribers, setSubscribers] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener utlimos suscriptores\n * Se hace el llamado al servicio /subscribers/get-last-subscribers\n */\n API.getLastSubscribers()\n .then(res => {\n setSubscribers(res);\n setLoading(false);\n })\n .catch(err => {\n setSubscribers([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Últimos Suscriptores

\n
\n \n \n \n \n \n \n \n \n {\n subscribers.map((item, index) => (\n \n \n \n \n ))\n }\n \n
NombreEmail
{item.name}{item.email}
\n
\n
\n \n )\n}\n","import React,{useState, useEffect} from 'react'\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { API } from '../../../services/api';\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./ProductList.scss\";\nimport { useHistory } from 'react-router-dom';\n\nexport function ProductListPage() {\n /**\n * Vista de productos\n * Se consulta el listado de productos la servidor\n * se renderizan los productos en una tabla\n */\n const [products, setProducts] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n \n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener los productos\n * Se hace el llamado al servicio /products/get-all-products\n */\n API.getAllProducts()\n .then(res => {\n setProducts(res);\n setLoading(false);\n })\n .catch(err => {\n setProducts([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Productos

\n
\n \n \n \n \n \n \n \n \n \n \n \n {\n products.map((item, index) => (\n \n \n \n \n \n \n \n ))\n }\n \n
NombreRegiónDescripciónUsuarioFecha de creación
{item.name}{item.regionKey}{item.description}{`${item.userData.name} ${item.userData.lastname}`}{new Date(item._createTimestamp).toLocaleDateString()}
\n
\n
\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { API } from '../../../services/api';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport './PendingComments.scss'\nimport { useHistory } from 'react-router-dom';\n\nexport function PendingCommentsPage(){\n /**\n * Vista de comentarios pendientes\n * Se consulta los comentarios pendientes al servidor\n * y se los renderiza en una tabla\n */\n const [comments, setComments] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n \n const updateStatus = async(commentId, status, mensaje)=>{\n try {\n if(window.confirm(mensaje)){\n setLoading(true);\n /**\n * Actualizar el estado del comentario\n * se hace el llamando al servicio /comments/update-comment-status\n */\n await API.putUpdateCommentStatus(commentId,status);\n /**\n * Obtener comentarios pendientes\n * Se hace el llamado al servicio /comments/get-pending-comments\n */\n const data = await API.getPendingComments();\n setComments(data ?? [])\n setLoading(false);\n }\n } catch (error) {\n setComments([]);\n setLoading(false);\n } \n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener comentarios pendientes\n * Se hace el llamado al servicio /comments/get-pending-comments\n */\n API.getPendingComments()\n .then(res => {\n setComments(res);\n setLoading(false);\n })\n .catch(err => {\n setComments([]);\n setLoading(false);\n })\n }, []);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Comentarios Pendientes

\n
\n \n \n \n \n \n \n \n \n \n \n {\n comments.map((item, index) => (\n \n \n \n \n \n \n ))\n }\n \n
NombresEmailComentario
{item.authorName}{item.authorEmail}{item.content}\n updateStatus(item._id,'APPROVED','Aprobar comentario?')}>\n Aprobar\n
\n updateStatus(item._id,'REJECTED','Rechazar comentario?')}>\n Rechazar\n
\n
\n
\n \n );\n}","import React,{useState, useEffect} from 'react'\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { Link, useHistory } from 'react-router-dom';\nimport { API } from '../../../services/api';\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./StaffList.scss\";\n\nexport function StaffListPage() {\n /**\n * Vista de usuarios administradores\n * Se consulta el listado de los usuarios administradores al servidor\n */\n const [users, setUsers] = useState([]);\n const [loading, setLoading] = useState(false);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n useEffect(() => {\n protectedRoute();\n setLoading(true);\n /**\n * Obtener usuarios administradores\n * Se hace el llamado al servicio /staffusers/get-staff-users-list\n */\n API.getStaffUsersList()\n .then(res => {\n setUsers(res);\n setLoading(false);\n })\n .catch(err => {\n setUsers([]);\n setLoading(false);\n })\n }, []);\n\n const removeStaff = async(id)=>{\n const result = window.confirm('Remover usuario?')\n if(result){\n setLoading(true);\n /**\n * Eliminar usuario administrador\n * Se hace el llamado al servicio /staffusers/remove-staff-user\n */\n await API.putRemoveStaffUser(id);\n /**\n * Obtener usuarios administradores\n * Se hace el llamado al servicio /staffusers/get-staff-users-list\n */\n API.getStaffUsersList()\n .then(res => {\n setUsers(res);\n setLoading(false);\n })\n .catch(err => {\n setUsers([]);\n setLoading(false);\n })\n }\n }\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Usuarios

\n Registrar Usuario\n
\n \n \n \n \n \n \n \n \n \n {\n users.map((item, index) => (\n \n \n \n \n \n ))\n }\n \n
NombreEmail
{item.name}{item.email}\n \n
\n
\n
\n \n )\n}\n","import React,{useState, useEffect} from \"react\";\nimport { API } from '../../../services/api';\nimport { Link, useLocation, useHistory } from 'react-router-dom';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./UserProfile.scss\";\n\nexport function UserProfilePage() {\n /**\n * Vista del perfil de usuario\n * Recibe por la url un query idUser\n * con esta propiedad se consultan los datos del usuario al servidor\n * y se los renderiza en un card\n */\n\n const [user, setUser] = useState({});\n const [loading, setLoading] = useState(false);\n const location = useLocation();\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n const approvedUser = async(userId)=>{\n if(window.confirm('Aprobar usuario?')){\n setLoading(true);\n /**\n * Se hace el llamado al servicio /users/update-user-approval-state\n */\n await API.putUserApprovalSatate({\n userId,\n approvalState: 'APPROVED'\n });\n /**\n * Se hace el llamado al servicio /users/get-user-by-id\n */\n await API.putUserById(userId)\n .then(x => {\n setUser(x);\n })\n setLoading(false);\n }\n \n }\n\n useEffect(()=>{\n protectedRoute();\n const queryParams = new URLSearchParams(location.search);\n setLoading(true);\n /**\n * Se hace el llamado al servicio /users/get-user-by-id\n */\n API.putUserById(queryParams.get('userId'))\n .then(x => {\n setUser(x);\n setLoading(false);\n })\n .catch(x => {\n setLoading(false);\n });\n },[])\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Datos Del Usuario

\n
\n

{user.approvalState}

\n

{user.name} {user.lastname}

\n

RUT: {user.rut}

\n

{user.email}

\n

{user.phone}

\n
\n

Fecha de registro: {new Date(user._createTimestamp).toLocaleDateString()}

\n

Mensaje: {user.message}

\n

Región: {user.regionKey}

\n

Ciudad: {user.cityKey}

\n

Comuna: {user.communeKey}

\n

Sector: {user.sectorKey}

\n\n

Foto de perfil

\n \"Foto\n

Foto de cover

\n \"Foto\n
\n\n \n Rechazar\n
\n \n )\n}\n","import React,{useState, useEffect} from \"react\";\nimport { API } from '../../../services/api';\nimport { Link, useLocation, useHistory } from 'react-router-dom';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport ImgLoading from '../../../assets/cargacaleta.gif';\nimport \"./CommentRejectUser.scss\";\n\nexport function CommentRejectUserPage() {\n /**\n * Vista para dejar el motivo de rechazo de un usuario\n * Se pasa por la url el userId\n * Se envían el comentario de rechazo de un usuario al servidor\n */\n const [userId, setUserId] = useState('');\n const [comment, setComment] = useState('');\n const [loading, setLoading] = useState(false);\n const location = useLocation();\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n const rejectUser = async()=>{\n if(window.confirm('Registrar comentario?')){\n setLoading(true);\n /**\n * Actualizar el estado de un usuario\n * Se hace el llamado del servicio /users/update-user-approval-state\n */\n await API.putUserApprovalSatate({\n userId,\n approvalState: 'REJECTED',\n approvalStateDescription: comment\n });\n setLoading(false);\n history.push('user-requests') \n }\n \n }\n\n useEffect(()=>{\n protectedRoute();\n const queryParams = new URLSearchParams(location.search);\n setUserId(queryParams.get('userId'))\n },[]);\n\n if(loading){\n return <>\n \n \n
\n \"\"\n
\n \n }\n\n return (\n <>\n \n \n
\n

Ingrese un motivo

\n Volver a la lista de solicitudes\n
\n

Comentario

\n setComment(e.target.value)}/>\n \n
\n
\n \n )\n}\n","import React, { useContext, useEffect } from 'react';\nimport './StaffLogin.scss';\nimport caletaTexto from '../../assets/CaletaEnLineaLogoV3.svg';\nimport { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { uiContext } from '../common';\nimport { Fragment } from 'react';\nimport flechaImg from '../../assets/flecha.svg';\nimport {API} from '../../services/api'\n\nexport function StaffLoginPage({isChangePassword}){\n /**\n * Vista login del adminsitrador\n * Hay un formulario donde pide el email y password y estos datos son validados en el servidor\n */\n const uicontext = useContext(uiContext);\n const history = useHistory();\n const [user, setUser] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n\n const [formState, setFormState] = useState(0);\n\n const [showIncorrectPasswordModal, setShowIncorrectPasswordModal] = useState(false);\n const [showForgotpasswordModal, setShowForgotpasswordModal] = useState(false);\n\n const [newPassword, setNewPassword] = useState(\"\");\n const [repeatNewPassword, setRepeatNewPassword] = useState(\"\");\n\n useEffect(() => {\n if (isChangePassword === true) {\n setFormState(2);\n }\n }, [])\n\n const login = () => {\n uicontext.showLoader();\n /**\n * Login del administrador\n * Se hace el llamado al servicio /staffusers/register-staff-user-session\n */\n API.postRegisterStaffUserSession(user,password)\n .then(x =>{\n if(!x.key){\n setShowIncorrectPasswordModal(true);\n setPassword(\"\");\n uicontext.hideLoader();\n return;\n }\n localStorage.removeItem(\"sessionToken\");\n localStorage.removeItem(\"userId\");\n localStorage.setItem(\"sessionToken\", x.key);\n localStorage.setItem(\"staffUserId\", x.userId);\n\n uicontext.hideLoader();\n history.push(\"/admin/user-requests\");\n })\n .catch(x => {\n uicontext.hideLoader();\n })\n\n }\n\n const forgotPassword = () => {\n uicontext.showLoader();\n /**\n * Recuperar contraseña\n * Se hace el llamado al servicio /staffusers-forgot-password\n */\n API.putForgotPasswordStaffUser(user)\n .then(x => {\n if(x.email){\n setUser(\"\");\n setPassword(\"\");\n setFormState(0);\n setShowForgotpasswordModal(true);\n uicontext.hideLoader();\n history.push(\"/staff-login\");\n }else{\n uicontext.hideLoader();\n alert('Datos inválidos!')\n }\n })\n }\n\n const changePassword = () => {\n uicontext.showLoader();\n\n let sessionToken = localStorage.getItem(\"sessionToken\");\n if (sessionToken !== null) {\n window.caletaEnLineaAPI.callService('getUserBySessionKey', {\n sessionKey: sessionToken,\n }, function callback(error, sesionUser) {\n window.caletaEnLineaAPI.callService('changePassword', {\n userId: sesionUser.responseJSON._id,\n oldPassword: password,\n newPassword: newPassword\n }, function callback(error, changePasswordResponse) {\n if (error || changePasswordResponse.status !== 200) {\n console.warn({ error: \"error\", message: error });\n uicontext.hideLoader();\n return;\n }\n\n setUser(\"\");\n setPassword(\"\");\n setFormState(0);\n uicontext.hideLoader();\n });\n });\n } else {\n uicontext.hideLoader();\n setFormState(0);\n setPassword(\"\");\n setUser(\"\");\n }\n }\n\n return (\n \n
\n
\n
\n
\n
\n \n
\n\n \"\"\n {formState === 0 &&
{\n e.preventDefault();\n e.stopPropagation();\n login();\n }}>\n
\n Bienvenido a Caleta en Línea\n
\n\n Email\n { setUser(event.target.value); }} placeholder=\"Escribe tu nombre de usuario\" />\n\n Clave\n { setPassword(event.target.value); }} placeholder=\"Escribe tu clave\" />\n\n { setUser(\"\"); setPassword(\"\"); setFormState(1); }} \n className=\"forgotPassword\">¿Olvidaste tu contraseña?\n\n
\n \n
\n { history.push(\"/home\"); }} className=\"returnSpan HideReturnSpan\">Volver\n
}\n\n {formState === 1 &&
{\n e.preventDefault();\n e.stopPropagation();\n forgotPassword();\n }}>\n
\n Bienvenido a caleta en línea\n
\n\n Correo electrónico\n { setUser(event.target.value); }} placeholder=\"Ingresa tu correo electrónico\" />\n\n
\n \n
\n { setUser(\"\"); setPassword(\"\"); setFormState(0); }} className=\"returnSpan\">Volver\n
}\n\n {formState === 2 &&
{\n e.preventDefault();\n e.stopPropagation();\n //forgotPassword();\n changePassword();\n }}>\n
\n Cambiar contraseña\n
\n\n Contraseña actual\n { setPassword(event.target.value); }} />\n\n Contraseña nueva\n { setNewPassword(event.target.value); }} />\n\n Vuelve a escribir la contraseña nueva\n { setRepeatNewPassword(event.target.value); }} />\n\n
\n { setUser(\"\"); setPassword(\"\"); setFormState(1); }} className=\"forgotPassword\">¿Olvidaste tu contraseña?\n { }} className=\"registerSpan\">\n
\n\n
\n \n
\n
}\n
\n
\n
\n {showIncorrectPasswordModal === true &&
\n Clave incorrecta\n La clave introducida no es correcta.\n \n
}\n\n
{ setShowIncorrectPasswordModal(false); setShowForgotpasswordModal(false); }} className={(showIncorrectPasswordModal === true || showForgotpasswordModal === true ? \"passwordModalBackground-visible\" : \"passwordModalBackground-hidden\") + \" passwordModalBackground\"}>\n
\n\n {showForgotpasswordModal === true &&
\n Correo de recuperacion enviado\n Se ha enviado una clave de recuperación a su correo electrónico.\n \n
}\n
\n
\n )\n}\n","import React,{useState, useContext, useEffect} from \"react\";\nimport { API } from '../../../services/api';\nimport { useHistory } from 'react-router-dom';\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { uiContext } from '../../../components/common';\n\nexport function ChangePasswordPage() {\n /**\n * Vista para cambiar el password\n * Hay un formulario donde se ingresar la contraseña actual y la nueva\n * estos datos son enviados al servidor para ser actualizados\n */\n const [newPassword, setNewPassword] = useState('');\n const [oldPassword, setOldPassword] = useState('');\n const uicontext = useContext(uiContext);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n \n const changePassword = ()=>{\n\n const sessionKey = localStorage.getItem('sessionToken');\n if(window.confirm('Cambiar contraseña?')){\n uicontext.showLoader();\n /**\n * Actualizar la contraseña\n * Se hace el llamado al servicio /staffusers/change-password-staff-user\n */ \n API.postChangePasswordStaffUser({\n sessionKey,\n oldPassword,\n newPassword\n })\n .then(x => {\n uicontext.hideLoader();\n if(x.email){\n history.push('/admin/user-requests')\n return;\n }\n alert('Algo ocurrio al intentar cambiar la contraseña, intente nuevamente.')\n })\n .catch(x =>{\n uicontext.hideLoader();\n })\n }\n }\n\n useEffect(()=>{\n protectedRoute();\n },[])\n\n return (\n <>\n \n \n
\n

Cambiar contraseña

\n
\n

Contraseña actual

\n setOldPassword(e.target.value)}/>\n

Contraseña nueva

\n setNewPassword(e.target.value)}/>\n \n
\n
\n \n )\n}\n","import React, {useContext, useState, useEffect} from 'react'\nimport {uiContext} from '../../../components/common'\nimport { HeaderAdmin } from \"../../components/HeaderAdmin/HeaderAdmin\";\nimport { LateralMenu } from \"../../components/LateralMenu/LateralMenu\";\nimport { Link, useHistory } from 'react-router-dom';\nimport {API} from '../../../services/api'\nimport './RegisterStaff.scss'\n\nexport function RegisterStaffPage() {\n /**\n * Vista de registro de administrador\n * Hay un formulario que pide el email y el name al servidor\n */\n\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const uicontext = useContext(uiContext);\n const history = useHistory();\n\n const protectedRoute = ()=>{\n const sessionToken = localStorage.getItem('sessionToken');\n if(!sessionToken){\n history.push('/staff-login')\n }\n }\n\n const register = ()=>{\n if(window.confirm('Registrar usuario?')){\n uicontext.showLoader();\n /**\n * Registrar administrador\n * Llamar al ser\n */\n API.postRegisterStaffUser(email, name)\n .then(x => {\n uicontext.hideLoader();\n history.push('/admin/staff-list')\n })\n .catch(x => {\n alert('Error registrando usuario');\n uicontext.hideLoader();\n });\n }\n }\n\n useEffect(()=>{\n protectedRoute();\n },[]);\n\n return (\n <>\n \n \n
\n

Registrar Usuario

\n Volver A Lista De Usuario\n
\n

Nombre

\n setName(e.target.value)} value={name}/>\n

Email

\n setEmail(e.target.value)} value={email}/>\n \n
\n
\n \n )\n}\n","import React, { useState } from 'react';\nimport { BrowserRouter as Router, Switch, Route, HashRouter, Redirect } from 'react-router-dom';\nimport LandingPage from './LandingPage/LandingPage';\nimport Header from './Header/Header';\nimport Footer from './Footer/Footer';\nimport ProtocoloPage from './Protocolo/Protocolo';\nimport FormPage from './Form/Form';\nimport RegionSelected from './LandingPage/RegionSelected/RegionSelected';\n// import CaletaSelected from './LandingPage/CaletaSelected/CaletasSelected';\nimport BlueHeader from './common/header/BlueHeader';\nimport Login from './Login/Login';\nimport Profile from './Profile/Profile';\nimport FisherProfile from './FisherProfile/FisherProfile';\nimport NewProduct from './NewProduct/NewProduct';\nimport SubscribeFloatModal from './common/SubscribeFloatModal/SubscribeFloatModal';\n// import { useEffect } from 'react';\nimport ConservacionSustentabilidad from './ConservacionSustentabilidad/ConservacionSustentabilidad';\nimport MarineAreas from './MarineAreas/MarineAreas';\nimport { UserRequestsPage } from '../admin/pages/UserRequests/UserRequests';\nimport {ApprovedUsersPage} from '../admin/pages/ApprovedUsers/ApprovedUsers';\nimport {RejectedUsersPage} from '../admin/pages/RejectedUsers/RejectedUsers'\nimport {LastSuscribersPage} from '../admin/pages/LastSuscribers/LastSuscribers'\nimport {ProductListPage} from '../admin/pages/ProductList/ProductList'\nimport {PendingCommentsPage} from '../admin/pages/PendingComments/PendingComments'\nimport {StaffListPage} from '../admin/pages/StaffList/StaffList'\nimport {UserProfilePage} from '../admin/pages/UserProfile/UserProfile'\nimport {CommentRejectUserPage} from '../admin/pages/CommentRejectUser/CommentRejectUser'\nimport {StaffLoginPage} from './StaffLogin/StaffLogin';\nimport {ChangePasswordPage} from '../admin/pages/ChangePassword/ChangePassword'\nimport {RegisterStaffPage} from '../admin/pages/RegisterStaff/RegisterStaff'\n\nconst RouterManager = () => {\n // const history = useHistory();\n\n const [isAdmin, setIsAdmin] = useState(true);\n\n return (\n \n \n \n {!isAdmin && }\n\n \n \n
\n \n\n \n \n
\n \n