{"version":3,"sources":["resources/gb.png","resources/Sticker Comparte Stereo.png","resources/logo192.png","resources/Logo Comparte Stereo 96.png","resources/co.png","resources/fr.png","constants/countryConstants.js","constants/generalConstants.js","actions/countryActions.js","screens/HomeScreen.js","actions/tipActions.js","constants/tipConstants.js","constants/locationConstants.js","actions/locationActions.js","screens/LocationScreen.js","constants/attractionConstants.js","actions/attractionActions.js","screens/ActivityScreen.js","screens/AttractionScreen.js","constants/cartConstants.js","actions/cartActions.js","screens/CartScreen.js","constants/userConstants.js","actions/userActions.js","screens/SigninScreen.js","screens/RegisterScreen.js","components/CheckoutSteps.js","screens/BookingScreen.js","screens/PaymentScreen.js","screens/PlaceOrderScreen.js","actions/orderActions.js","constants/orderConstants.js","screens/OrderScreen.js","screens/OrdersScreen.js","screens/ProfileScreen.js","screens/RememberScreen.js","constants/activityConstants.js","actions/activityActions.js","screens/AttractionsScreen.js","screens/UsersScreen.js","screens/ActivitiesScreen.js","screens/CountriesScreen.js","screens/LocationsScreen.js","screens/CreateTipScreen.js","screens/CreateShortTipScreen.js","screens/ContactScreen.js","screens/TipScreen.js","screens/TermsScreen.js","screens/DisclaimerScreen.js","screens/PrivacyScreen.js","screens/CookieScreen.js","screens/ReturnPolicyScreen.js","screens/PolicyScreen.js","screens/ShortTipScreen.js","screens/NotFoundScreen.js","screens/ResponseScreen.js","components/SideDrawer.js","components/UserAvatar.js","components/Header.js","components/LanguageSelector.js","App.js","serviceWorker.js","store.js","reducers/attractionReducers.js","reducers/tipReducers.js","reducers/locationReducers.js","reducers/countryReducers.js","reducers/activityReducers.js","reducers/cartReducers.js","reducers/userReducers.js","reducers/orderReducers.js","index.js","resources/Logo Comparte Stereo 300.png","resources/Logo Comparte Stereo 120.png"],"names":["module","exports","SITE_NAME","SITE_URL","META_TITLE","META_DESCRIPTION","RECAPTCHA_KEY","BACKEND_URL","IMAGES_URL","GA_ID","listCountries","async","dispatch","type","data","axios","get","payload","error","message","HomeScreen","props","content","English","metaTitle","metaDescription","title","description","article","readMore","Español","language","countryList","useSelector","state","countries","loading","useDispatch","shortTipList","loadingTips","tips","errorTips","parse","require","useEffect","match","params","lang","handleSetLanguage","linkList","React","createElement","className","src","logo","alt","map","country","key","id","value","image","imageAlt","imageAltEs","metaName","metaNameEs","descriptionEs","href","concat","articlePic","sticker","String","ReactGA","initialize","MetaTags","rel","hreflang","name","property","Flickity","elementType","options","initialIndex","adaptiveHeight","wrapAround","pageDots","prevNextButtons","autoPlay","disableImagesLoaded","reloadOnUpdate","static","shortTip","filterLocations","LocationScreen","locationFilter","locations","countryDetails","loadingCountry","errorCountry","ScrollToTopOnMount","window","scrollTo","countryId","location","url","articleEs","metas","listAttractions","getState","filterAttractions","detailsAttraction","attractionId","ActivityScreen","attractionFilter","attractions","locationDetails","loadingLocation","errorLocation","locationId","activity","price","path","parent","AttractionScreen","status","available","notAvailable","howMany","bookingDate","bookNow","guidedBy","reviewsFrom","places","selectedDay","setSelectedDay","useState","Date","qty","setQty","attractionDetails","attraction","tipFilter","shortTipFilter","loadingShortTips","shortTips","errorShortTips","filterTips","filterShortTips","Map","tip","latPos","LoadScript","googleMapsApiKey","GoogleMap","mapContainerStyle","height","width","zoom","center","lat","parseFloat","lng","longPos","Marker","position","newDate","date","days","copy","Number","setDate","getDate","addDays","FORMAT","maxUsersDay","onChange","e","target","Array","keys","x","DayPicker","formatDate","format","locale","dateFnsFormat","parseDate","str","parsed","dateFnsParse","DateUtils","isDate","showOutsideDays","disabledDays","before","selectedDays","onDayClick","day","onClick","handleAddToCart","isFutureDay","history","push","alert","videoUrl","frameborder","allow","allowfullscreen","author","addToCart","countInStock","cart","cartItems","Cookie","set","JSON","stringify","CartScreen","bookingCart","empty","people","delete","proceed","search","split","removeFromCartHandler","removeFromCart","length","item","Link","to","parseInt","reduce","a","c","checkoutHandler","disabled","update","email","password","role","userSignin","userInfo","Axios","put","headers","Authorization","token","logout","remove","listUsers","SigninScreen","signIn","forgotPassword","signInButton","new","create","setEmail","setPassword","redirect","onSubmit","preventDefault","signin","post","htmlFor","RegisterScreen","setName","rePassword","setRePassword","isVerified","setIsVerified","userRegister","register","ReCAPTCHA","sitekey","CheckoutSteps","booking","payment","placeOrder","step1","step2","step3","step4","BookingScreen","details","contactNumber","nationality","groupDetails","continue","bookingName","setBookingName","setContactNumber","setGroupDetails","setNationality","Object","assign","rows","PaymentScreen","paymentMethod","setPaymentMethod","PlaceOrderScreen","summary","total","orderCreate","success","order","itemsPrice","totalPrice","Id","placeOrderHandler","getTime","idString","toString","createOrder","owner","bookingPrice","taxPrice","isDelivered","deliveredAt","isPaid","paidAt","orderItems","OrderScreen","paid","notPaid","payPayU","payPalReady","setPayPalReady","orderPay","loadingPay","successPay","errorPay","orderDetails","orderId","handleSuccessPayment","payOrder","paymentResult","md5","PayPalButton","amount","onSuccess","payer","given_name","catchError","err","onError","onButtonReady","clientId","method","action","PAYU_API_KEY","OrdersScreen","orderList","orders","orderDelete","loadingDelete","successDelete","errorDelete","deleteHandler","unixTime","numberUnixTime","toLocaleString","calcDate","ProfileScreen","userProfile","picture","imagePlaceholder","sendMessage","setRole","webSite","setWebSite","setImage","setImageAlt","uploading","setUploading","userUpdate","myOrderList","loadingOrders","errorOrders","refreshImage","imgElement","imgURL","queryString","document","getElementById","then","response","catch","console","log","rotateCCWHandler","rotateCWHandler","placeholder","file","files","bodyFormData","FormData","append","handleLogout","RememberScreen","buttonSend","passwordUpdate","remember","listActivities","AttractionsScreen","createAttraction","edit","chooseUser","back","activityBy","maxUsers","modalVisible","setModalVisible","setCountry","setParent","setActivityBy","setMetaName","setMetaNameEs","setActivity","setVideoUrl","siteUrl","setSiteUrl","setImageAltEs","setPrice","setDescription","setDescriptionEs","setArticle","setArticleEs","setOwner","setMaxUsersDay","setLatPos","setLongPos","attractionList","loadingCountries","errorCountries","loadingLocations","errorLocations","activityList","loadingActivities","activities","errorActivities","userList","loadingUsers","users","errorUsers","attractionSave","loadingSave","successSave","errorSave","attractionDelete","reloadLocations","openModal","editorConfiguration","heading","model","class","view","replace","result","toLowerCase","user","CKEditor","editor","ClassicEditor","config","event","getData","confirm","UsersScreen","userSave","userDelete","deleteUser","ActivitiesScreen","activitySave","activityDelete","activityId","CountriesScreen","createCountry","setId","countrySave","countryDelete","LocationsScreen","createLocation","locationList","locationSave","locationDelete","CreateTipScreen","createTip","setLocation","tipList","loadingAttractions","errorAttractions","tipSave","tipDelete","reloadAttractions","tipId","CreateShortTipScreen","setTitle","setAuthor","newHost","setNewHost","shortTipAuthorFilter","shortTipSave","shortTipDelete","filterAuthorShortTips","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","data-role","data-type","checked","ContactScreen","contactForm","setMessage","contact","TipScreen","tipDetails","loadingAttraction","errorAttraction","TermsScreen","DisclaimerScreen","PrivacyPolicyScreen","CookiePolicyScreen","ReturnPolicyScreen","PolicyScreen","ShortTipScreen","isNewAttraction","setIsNewAttraction","shortTipDetails","NotFoundScreen","ResponseScreen","thanks","payUresponse","merchantId","referenceCode","tx_value","currency","transactionState","signature","referenceValue","decodeURIComponent","SideDrawer","contactUs","myReviews","Drawer","anchor","open","onClose","List","component","ListItem","button","Fragment","Cancel","fontSize","AccountCircle","Mail","ShoppingCart","PostAdd","UserAvatar","IconButton","color","Header","Component","constructor","args","drawerOpen","headerShow","handleScroll","scrollY","this","setState","toggleDrawer","componentDidMount","addEventListener","render","AppBar","style","backgroundColor","boxShadow","padding","Toolbar","aria-label","size","MenuIcon","LanguageSelector","App","localStorage","getItem","setLanguage","ourPolicy","becomeAhost","userLanguage","BrowserRouter","IdleTimer","startOnMount","element","onIdle","timeout","CookieConsent","buttonText","cookieName","background","buttonStyle","expires","setItem","pathname","slice","join","storeLanguageInLocalStorage","Switch","Route","exact","ReactHlsPlayer","controls","Boolean","hostname","initialState","getJSON","reducer","combineReducers","find","filter","composeEnhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunk","ReactDOM","StrictMode","Provider","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.690f14e9.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Sticker Comparte Stereo.eacbfb39.png\";","module.exports = __webpack_public_path__ + \"static/media/logo192.d3f47ba6.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAeCAMAAABpA6zvAAABrVBMVEVHcEyYCRfPrhfQrxnUtyDPrhmPBxKzXxyhDRvWuCLOrBXUtCbUth+aChiOBRWbCxiUCxakDR7Rsh7VtiGLBhGXCReWCxeZChiRCBOgDRufCxrcvy7XuiTNqhTLqRLMqhPWuiaXCheMBxL80RX91Bv91R390hb91h/92SX90xj8zhPCCxv92CO/ChkAN5P8zxT8yxIAL4jNDyQAMYrLDyLFDB0ANI8APJbHDR8AOpXJDiHPEScAK4H91yEAM40BP5cALoYANZAALIQAQZrXuSH90xrTtBycCRbpxh3iuRLcuBWWCBQCPIz80RjFnw7cuiHQrha0DB7KphCpDiD60hwAJXHqySSMBxCmCBUBKH6sCxu9DyPevR+OBxIXKHUAPJQAN4EAH2HgtA/zzh65CxukDRySkkzCqSpLY2mpFTRaI16umzaOFjvkvxexCxrjwyEbTYsuVHwdKndzHE0uXYUwJGm+EixzflY+HlxkHlAGNX4BImT0yBT62CcWMoZsel9hems/J2q2pjlBI2N+fUuLH0vTvTQlNYMIP4C1GDduETMRMHROWVAQHFWvjxUuRB7mAAAAI3RSTlMArsrXhGO8B8m87R+vZR/XL/JCm4KFQlWa1uos2jPGq1H52S3DTnQAAAInSURBVDjLddRnVxpBGIbhoRexJJpoTA+rggoKCMhGwBBA2nEpIqiQk4SqCKixa4rp/Tdn3tnCLpj7455rnznzZRDC9T1SDht0Op1hWKm62Yd606geIHRXeS+IYwqFAhMMQwoDeA2P7qse6tNppAsG2+ultybTLM7rXStF2oVgOInTK+RyuUKfTKaTsVgaBdsYmXjn9U7hqIlSKdJsxqBoM3JpNEYxXOcdzyagEEVRoZDZbJ6cNBqNcwJkncAoiGXE8bDDpjpM7KajqwClcxLGORYKTnoqN0ccgRFw0jlzZ451869XUTgyK8z1MiOw6XkWShxhZoFxjoOsE+4gmuMdC4mj1qD/MAz/Avxa/XC454f29uvvqx+ZuS532fh9gWonh89xfr/b7fZ43B4rLrFfP6k2agxTYJha43P9PJC9QN8TIkfYM5zL5fL5fA6Hw2ZbXg4EljB8meh1Isa6pewrAsFdwzqOg525Xsa6DQKJs1pd74gSMTJH3Eb2DzpPuL/tfNk+ttvtCwvH27tvdq4ObJI57E5/FtGvsx9PITuROJqmneA/HR28wB2dnu2mLPkiymx1M5pehJzQDGSxCFDiuhg4HvJOYItShmEOoJ3eKqdam7hWK1WecYoY58orGKZSmUqlMn5Hq9UOjq+Q8putskVwrXw8l1OjTOWGrH9IeD8Gbvffkg0+jkPwTzxeLBafjAwhpB3VXPMqgR+TqdVq2djI6AB8+QcXmfpadDcdMQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAeCAMAAABpA6zvAAABSlBMVEVHcEzLy8vS0tIAGW/DJjRlIk7Hx8esFB4CMY3Dw8MAGW8GKYQAGnPBIzABJ4MBKIICM47Ly8vMzMzU1NTU1NQCJIDCwsLCwsIAGG/DKTfNmp7CJzSNlK0CM5ASPpWiERfDKDIBHHfAJDG+IjC4HCioExypExyXor6eEhqnExyqEx2sFB65goX////rIzLqITDpIC0AI5btJjYAKJoAJpjoHCnpHisALZ7sJTQAIZMANaQAK5wAIJAAOKbnGyfuLDwAMaEAMI4ANKIAKpsAMKDuKTntKDirExwAL5/5t721weLTIC0AGnbV1dUAIYGyFyK1v+DOHCgANJrKFyIAKof4tLm5GycAHXu7FiAAJ460vN7QKDYAIYn3sbYALZPtJzfHx8e+Hyvv7+/4+PgAMpTDIi/kGSXo6Ojh4eHjJzbXJTObpMHfparAiIxHMM47AAAALXRSTlMAQv3LyQkhubr+1y/u7lVyk6/VhWSsZIXG2evW69odLDPHaVqsidmaHVF7mpnb/GmMAAABuElEQVQ4y23UV1fCQBCG4RVBsPfeeycqIIIBAYGgAVQsoGIBIlj//607M8nGJL6Xe57z7d0wxpvr6x/w8UbXh0faOpgzz7Kbse6B2aTRV4HnGhr86z0LSyu9tRrzaUmtlIrFotFoKnW+22jUW+/IXVOTbrd7uveNp6o1ppViELBU4nxXr1Gvt74fsc+Pj+zLZ40lS6YzIXR2gmUy2ZcDVYfgEol0+h+I7kC9Q0hz6XTOATPkjgii4ywXtkPO0BE0XDhsgxnh/AA1/DYH7vjSCjkjB/BGQwfs2AbRHYFD+Czc6akF3tIcOOkKoXABGxROurrgEByygA0CIyepAIULBq3QdHu4iC4AzgH9ukN4T46z4L4V+oUDWLw3nRNK5A4JktvnPdig4QiaLmKFknAhhIaLRKzwiRi40LUCUDgHRMYdwqpgsmyFe8LFOSxXTeeEuiNITpad8BBdPC6g4WzQdE2CEblaLJfL+Xz+671Vb/yBId01KxwWi1zke7raJ9q7Zl4hVwH9E7mmel1RFC/jZrS/22MckI62sfHBoU7opwJdKIqytjrP2GKf55+rBH5nxcvb3trcgJdf1Mf8t7ULhgIAAAAASUVORK5CYII=\"","export const COUNTRY_LIST_REQUEST = 'COUNTRY_LIST_REQUEST';\nexport const COUNTRY_LIST_SUCCESS = 'COUNTRY_LIST_SUCCESS';\nexport const COUNTRY_LIST_FAIL = 'COUNTRY_LIST_FAIL';\n\nexport const COUNTRY_DETAILS_REQUEST = 'COUNTRY_DETAILS_REQUEST';\nexport const COUNTRY_DETAILS_SUCCESS = 'COUNTRY_DETAILS_SUCCESS';\nexport const COUNTRY_DETAILS_FAIL = 'COUNTRY_DETAILS_FAIL';\n\nexport const COUNTRY_SAVE_REQUEST = 'COUNTRY_SAVE_REQUEST';\nexport const COUNTRY_SAVE_SUCCESS = 'COUNTRY_SAVE_SUCCESS';\nexport const COUNTRY_SAVE_FAIL = 'COUNTRY_SAVE_FAIL';\n\nexport const COUNTRY_DELETE_REQUEST = 'COUNTRY_DELETE_REQUEST';\nexport const COUNTRY_DELETE_SUCCESS = 'COUNTRY_DELETE_SUCCESS';\nexport const COUNTRY_DELETE_FAIL = 'COUNTRY_DELETE_FAIL';","// Attractions Tips - Local host\n//export const SITE_URL = \"http://localhost:3000\";\n//export const RECAPTCHA_KEY = \"6LeM1LgZAAAAACXSAeYmHYC5mckyg9qFsrgvUKSX\";\n//export const PAYPAL_ID = \"AdRO2yt7F4EP4TXVAqEwK8rX1NgefboRcYm7PdjsZ3GiIzvxHyT1yNEVe9bZOsuIt7dsdsc7giuPx_v2\";\n//export const GA_ID = \"UA-153092248-2\";\nexport const PAYU_MERCHANT_ID = \"508029\";\nexport const PAYU_ACCOUNT_ID = \"512321\";\nexport const PAYU_API_KEY = \"4Vj8eK4rloUd272L48hsrarnUA\";\nexport const PAYU_URL = \"https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/\";\nexport const PAYU_CONFIRMATION_URL = \"https://www.compartestereo.com/services/comp/payment/confirmation\";\n\n// Comparte Stereo\nexport const SITE_NAME = \"Comparte Stereo\";\nexport const SITE_URL = \"https://compartestereo.com\";\nexport const META_TITLE = \"Comparte Stereo... Música online, promotora de arte y emprendimiento\";\nexport const META_DESCRIPTION = \"En Comparte Stereo encuentras un espacio para escuchar buena música y descubrir el arte de los emprendedores locales.\";\nexport const RECAPTCHA_KEY = \"6LcjQugpAAAAAGgN9JnmpN1_Rz2p7yMVsAdGJfpW\";\nexport const BACKEND_URL = \"https://compartestereo.com/services\";\nexport const IMAGES_URL = \"https://compartestereo.com/comparte/static/\";\nexport const PAYPAL_ID = \"Aes99V2W21yqLuaiJVd1uNQP-BWptA41xL71KNtaOpTP3HfcVKawD-M3ffRNz8IN5dFMYL9DbMd7ivbV\";\nexport const GA_ID = \"G-GY24Q8VDCZ\";\n//export const PAYU_MERCHANT_ID = \"948434\";\n//export const PAYU_ACCOUNT_ID = \"956008\";\n//export const PAYU_ACCOUNT_API_KEY = \"eREMgT42MK9C1Qo9Fb8q5S4wdX\";\n//export const PAYU_URL = \"https://checkout.payulatam.com/ppp-web-gateway-payu/\";\n\n// Cultura Stereo\n//export const RECAPTCHA_KEY = \"6LehncQZAAAAAMz_tlhXhGY9zzG_47V4KvIJ9NBf\";\n//export const BACKEND_URL = \"https://lachiquitravel.com/cult\";\n//export const IMAGES_URL = \"https://lachiquitravel.com/cult/static/images/\";\n//export const GA_ID = \"UA-153092248-1\";\n\n// Paraglidinng Flow\n//export const RECAPTCHA_KEY = \"6LdWnsQZAAAAAGkqGaxTI6F1zMm6bKawOP5AXt3d\";\n//export const BACKEND_URL = \"https://lachiquitravel.com/pgd\";\n//export const IMAGES_URL = \"https://lachiquitravel.com/pgd/static/images/\";\n//export const GA_ID = \"UA-153092248-3\";\n","import {COUNTRY_LIST_REQUEST, \n COUNTRY_LIST_SUCCESS, \n COUNTRY_LIST_FAIL,\n COUNTRY_DETAILS_REQUEST, \n COUNTRY_DETAILS_SUCCESS, \n COUNTRY_DETAILS_FAIL,\n COUNTRY_SAVE_REQUEST,\n COUNTRY_SAVE_SUCCESS,\n COUNTRY_SAVE_FAIL,\n COUNTRY_DELETE_REQUEST,\n COUNTRY_DELETE_SUCCESS,\n COUNTRY_DELETE_FAIL} from \"../constants/countryConstants\"\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport axios from 'axios';\n\nconst listCountries = () => async (dispatch) => {\ntry {\n dispatch({ type: COUNTRY_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + '/countries');\n dispatch({ type: COUNTRY_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: COUNTRY_LIST_FAIL, payload: error.message });\n }\n}\n\nconst detailsCountry = (countryId) => async (dispatch) => {\n try {\n dispatch({type: COUNTRY_DETAILS_REQUEST, payload: countryId});\n const {data} = await axios.get( BACKEND_URL + \"/country/\" + countryId);\n dispatch({type: COUNTRY_DETAILS_SUCCESS, payload: data});\n } catch (error) {\n dispatch({ type: COUNTRY_DETAILS_FAIL, payload: error.message });\n }\n}\n\nconst saveCountry = (country) => async (dispatch, getState) => {\n try {\n dispatch({ type: COUNTRY_SAVE_REQUEST, payload: country });\n const {\n userSignin: { userInfo },\n } = getState();\n if (!country.id) {\n const { data } = await axios.post( BACKEND_URL + '/country/add', country, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: COUNTRY_SAVE_SUCCESS, payload: data });\n } else {\n const { data } = await axios.put(\n BACKEND_URL + '/country/update',\n country,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: COUNTRY_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: COUNTRY_SAVE_FAIL, payload: error.message });\n }\n};\n\nconst deleteCountry = (countryId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: COUNTRY_DELETE_REQUEST, payload: countryId });\n const { data } = await axios.delete( BACKEND_URL + '/country/delete/' + countryId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: COUNTRY_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: COUNTRY_DELETE_FAIL, payload: error.message });\n }\n};\n\nexport { listCountries, detailsCountry, saveCountry, deleteCountry }","import React, { useEffect } from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { listCountries } from '../actions/countryActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport parse from 'html-react-parser';\nimport logo from '../resources/Logo Comparte Stereo 300.png';\nimport sticker from '../resources/Sticker Comparte Stereo.png';\nimport {\n listShortTips,\n } from '../actions/tipActions';\nimport Flickity from 'react-flickity-component';\nimport \"flickity/css/flickity.css\";\nimport \"../resources/carousel.min.css\";\nimport { SITE_NAME, SITE_URL, META_TITLE, META_DESCRIPTION, GA_ID } from '../constants/generalConstants';\n\nfunction HomeScreen(props) {\n\n let content = {\n\n English: {\n metaTitle : \"ATTRACTIONS TIPS with the best tour guides in the world!\",\n metaDescription: \"TIPS to travel around the world and discover the tourist ATTRACTIONS that will make your dream trip come true. Local tour guides will share with you the best destinations and things to do.\",\n title: \"Discover destinations and ATTRACTIONS TIPS with the advice of a local tour guide!\",\n description:\n \"In Attractions Tips, we are creating a tour guide network around the world. The travel sites are enriched with the presence of a local. The tips, the stories and the jokes. It is about culture, travel and talking to the people. Book your activity and enjoy traveling.\",\n article:\n `

\n Colombia, the start point of the trip\n

\n \n

\n The origin of this project is Colombia, and from here, we will start seeking special people to do cool stuff. Visit Colombia and get in love with nature and diversity.\n

`,\n readMore: \"Read more\"\n },\n \n Español: {\n metaTitle: \"Comparte Stereo... Música online, promotora de arte y emprendimiento\",\n metaDescription: \"En Comparte Stereo encuentras un espacio para escuchar buena música y descubrir el arte de los emprendedores locales\", \n title: \"Música online, promotora de arte y emprendimiento\",\n description:\n \"Escucha buena música, descubre los emprendimientos locales y apoya sus creadores. La pasión convierte en arte sus productos y servicios.\",\n article:\n `

\n Categorias\n

\n\n

\n Descubre la variedad de emprendimientos por categorias.\n

`,\n readMore: \"Leer más\"\n }\n \n }; \n\n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const countryList = useSelector(state => state.countryList);\n const {countries, loading, error} = countryList;\n const dispatch = useDispatch();\n const shortTipList = useSelector((state) => state.shortTipList);\n const { loadingTips, tips, errorTips } = shortTipList;\n const parse = require('html-react-parser');\n\n useEffect(() => {\n if (props.match.params.lang != props.language) { props.handleSetLanguage(props.match.params.lang) }\n dispatch(listCountries());\n dispatch(listShortTips());\n return () => {\n\n };\n }, [])\n\n const handleAddToCart = () =>{\n props.history.push(\"/cart/\")\n };\n\n const linkList = loading? {SITE_NAME}:\n error? {SITE_NAME}:\n countries!=null? \n (\n countries.map((country) => {\n return (\n
  • \n {props.language==\"en\"?\n

    {props.language==\"en\"? country.metaName : country.metaNameEs}

    \n

    {props.language==\"en\"? country.description : country.descriptionEs}

    \n
    \n \n

    {content.readMore}

    \n
    \n
    \n
  • \n );\n })\n ) :\n
    No Countries
    \n\n const articlePic = loading? {SITE_NAME}:\n error? {SITE_NAME}:\n !countries? {SITE_NAME}:\n {SITE_NAME}\n\n const article = parse(String(content.article));\n\n const flickityOptions = {\n initialIndex: 2,\n adaptiveHeight: true,\n wrapAround: true,\n pageDots: false,\n prevNextButtons: true,\n autoPlay: 7000,\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {content.metaTitle}\n \n \n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    \n {content.title}\n

    \n {tips!=null? \n (\n \n {tips.map((shortTip) => (\n
    \n {shortTip.title}/\n
    \n ))}\n \n ) : \n
    { articlePic }
    \n }\n\n

    \n {content.description}\n

    \n\n

    \n  \n

    \n\n {article}\n
    \n \n\n
    \n )\n\n}\nexport default HomeScreen;","import {\n TIP_LIST_REQUEST, \n TIP_LIST_SUCCESS, \n TIP_LIST_FAIL, \n TIP_DETAILS_REQUEST, \n TIP_DETAILS_SUCCESS, \n TIP_DETAILS_FAIL,\n TIP_SAVE_REQUEST,\n TIP_SAVE_SUCCESS,\n TIP_SAVE_FAIL,\n TIP_DELETE_SUCCESS,\n TIP_DELETE_FAIL,\n TIP_DELETE_REQUEST,\n TIP_FILTER_SUCCESS,\n TIP_FILTER_FAIL,\n TIP_FILTER_REQUEST,\n SHORT_TIP_LIST_REQUEST, \n SHORT_TIP_LIST_SUCCESS, \n SHORT_TIP_LIST_FAIL, \n SHORT_TIP_DETAILS_REQUEST, \n SHORT_TIP_DETAILS_SUCCESS, \n SHORT_TIP_DETAILS_FAIL,\n SHORT_TIP_SAVE_REQUEST,\n SHORT_TIP_SAVE_SUCCESS,\n SHORT_TIP_SAVE_FAIL,\n SHORT_TIP_DELETE_SUCCESS,\n SHORT_TIP_DELETE_FAIL,\n SHORT_TIP_DELETE_REQUEST,\n SHORT_TIP_FILTER_SUCCESS,\n SHORT_TIP_FILTER_FAIL,\n SHORT_TIP_FILTER_REQUEST,\n SHORT_TIP_AUTHOR_FILTER_SUCCESS,\n SHORT_TIP_AUTHOR_FILTER_FAIL,\n SHORT_TIP_AUTHOR_FILTER_REQUEST,\n} from \"../constants/tipConstants\"\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport axios from 'axios';\n\nconst listTips = () => async (dispatch) => {\ntry {\n dispatch({ type: TIP_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/tips\");\n dispatch({ type: TIP_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: TIP_LIST_FAIL, payload: error.message });\n }\n}\n\nconst filterTips = (attraction) => async (dispatch) => {\n try {\n dispatch({ type: TIP_FILTER_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/tips/\" + attraction);\n dispatch({ type: TIP_FILTER_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: TIP_FILTER_FAIL, payload: error.message });\n }\n }\n\nconst detailsTip = (tipId) => async (dispatch) => {\n try {\n dispatch({type: TIP_DETAILS_REQUEST, payload: tipId});\n const {data} = await axios.get( BACKEND_URL + \"/tip/\" + tipId);\n dispatch({type: TIP_DETAILS_SUCCESS, payload: data});\n } catch (error) {\n dispatch({ type: TIP_DETAILS_FAIL, payload: error.message });\n }\n}\n\nconst saveTip = (tip) => async (dispatch, getState) => {\n try {\n dispatch({ type: TIP_SAVE_REQUEST, payload: tip });\n const {\n userSignin: { userInfo },\n } = getState();\n if (!tip.id) {\n const { data } = await axios.post( BACKEND_URL + \"/tip/add\", tip, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: TIP_SAVE_SUCCESS, payload: data });\n } else {\n const { data } = await axios.put(\n BACKEND_URL + \"/tip/update\",\n tip,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: TIP_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: TIP_SAVE_FAIL, payload: error.message });\n }\n};\n\nconst deleteTip = (tipId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: TIP_DELETE_REQUEST, payload: tipId });\n const { data } = await axios.delete( BACKEND_URL + \"/tip/delete/\" + tipId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: TIP_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: TIP_DELETE_FAIL, payload: error.message });\n }\n};\n\nconst listShortTips = () => async (dispatch) => {\n try {\n dispatch({ type: SHORT_TIP_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/shortTips\");\n dispatch({ type: SHORT_TIP_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: SHORT_TIP_LIST_FAIL, payload: error.message });\n }\n }\n \n const filterShortTips = (attraction) => async (dispatch) => {\n try {\n dispatch({ type: SHORT_TIP_FILTER_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/shortTips/\" + attraction);\n dispatch({ type: SHORT_TIP_FILTER_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: SHORT_TIP_FILTER_FAIL, payload: error.message });\n }\n }\n \n const filterAuthorShortTips = (author) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: SHORT_TIP_AUTHOR_FILTER_REQUEST, payload: author });\n const { data } = await axios.get( BACKEND_URL + \"/shortTipsAuthor/\" + author, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: SHORT_TIP_AUTHOR_FILTER_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: SHORT_TIP_AUTHOR_FILTER_FAIL, payload: error.message });\n }\n }\n \n const detailsShortTip = (tipId) => async (dispatch) => {\n try {\n dispatch({type: SHORT_TIP_DETAILS_REQUEST, payload: tipId});\n const {data} = await axios.get( BACKEND_URL + \"/shortTip/\" + tipId);\n dispatch({type: SHORT_TIP_DETAILS_SUCCESS, payload: data});\n } catch (error) {\n dispatch({ type: SHORT_TIP_DETAILS_FAIL, payload: error.message });\n }\n }\n \n const saveShortTip = (shortTip) => async (dispatch, getState) => {\n\n try {\n dispatch({ type: SHORT_TIP_SAVE_REQUEST, payload: shortTip });\n const {\n userSignin: { userInfo },\n } = getState();\n \n if (!shortTip.id) {\n\n var date = new Date();\n var idNumber = date.getTime();\n var id = idNumber.toString(); \n shortTip.id = id;\n\n const { data } = await axios.post( BACKEND_URL + \"/shortTip/add\", shortTip, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: SHORT_TIP_SAVE_SUCCESS, payload: data });\n } else {\n\n const { data } = await axios.put(\n BACKEND_URL + \"/shortTip/update\",\n shortTip,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: SHORT_TIP_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: SHORT_TIP_SAVE_FAIL, payload: error.message });\n }\n };\n \n const deleteShortTip = (tipId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: SHORT_TIP_DELETE_REQUEST, payload: tipId });\n const { data } = await axios.delete( BACKEND_URL + \"/shortTip/delete/\" + tipId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: SHORT_TIP_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: SHORT_TIP_DELETE_FAIL, payload: error.message });\n }\n };\n \nexport { listTips, detailsTip, deleteTip, saveTip, filterTips, listShortTips, detailsShortTip, deleteShortTip, saveShortTip, filterShortTips, filterAuthorShortTips }","export const TIP_LIST_REQUEST = 'TIP_LIST_REQUEST';\nexport const TIP_LIST_SUCCESS = 'TIP_LIST_SUCCESS';\nexport const TIP_LIST_FAIL = 'TIP_LIST_FAIL';\n\nexport const TIP_DETAILS_REQUEST = 'TIP_DETAILS_REQUEST';\nexport const TIP_DETAILS_SUCCESS = 'TIP_DETAILS_SUCCESS';\nexport const TIP_DETAILS_FAIL = 'TIP_DETAILS_FAIL';\n\nexport const TIP_SAVE_REQUEST = 'TIP_SAVE_REQUEST';\nexport const TIP_SAVE_SUCCESS = 'TIP_SAVE_SUCCESS';\nexport const TIP_SAVE_FAIL = 'TIP_SAVE_FAIL';\n\nexport const TIP_DELETE_REQUEST = 'TIP_DELETE_REQUEST';\nexport const TIP_DELETE_SUCCESS = 'TIP_DELETE_SUCCESS';\nexport const TIP_DELETE_FAIL = 'TIP_DELETE_FAIL';\n\nexport const TIP_FILTER_REQUEST = 'TIP_FILTER_REQUEST';\nexport const TIP_FILTER_SUCCESS = 'TIP_FILTER_SUCCESS';\nexport const TIP_FILTER_FAIL = 'TIP_FILTER_FAIL';\n\nexport const SHORT_TIP_LIST_REQUEST = 'SHORT_TIP_LIST_REQUEST';\nexport const SHORT_TIP_LIST_SUCCESS = 'SHORT_TIP_LIST_SUCCESS';\nexport const SHORT_TIP_LIST_FAIL = 'SHORT_TIP_LIST_FAIL';\n\nexport const SHORT_TIP_DETAILS_REQUEST = 'SHORT_TIP_DETAILS_REQUEST';\nexport const SHORT_TIP_DETAILS_SUCCESS = 'SHORT_TIP_DETAILS_SUCCESS';\nexport const SHORT_TIP_DETAILS_FAIL = 'SHORT_TIP_DETAILS_FAIL';\n\nexport const SHORT_TIP_SAVE_REQUEST = 'SHORT_TIP_SAVE_REQUEST';\nexport const SHORT_TIP_SAVE_SUCCESS = 'SHORT_TIP_SAVE_SUCCESS';\nexport const SHORT_TIP_SAVE_FAIL = 'SHORT_TIP_SAVE_FAIL';\n\nexport const SHORT_TIP_DELETE_REQUEST = 'SHORT_TIP_DELETE_REQUEST';\nexport const SHORT_TIP_DELETE_SUCCESS = 'SHORT_TIP_DELETE_SUCCESS';\nexport const SHORT_TIP_DELETE_FAIL = 'SHORT_TIP_DELETE_FAIL';\n\nexport const SHORT_TIP_FILTER_REQUEST = 'SHORT_TIP_FILTER_REQUEST';\nexport const SHORT_TIP_FILTER_SUCCESS = 'SHORT_TIP_FILTER_SUCCESS';\nexport const SHORT_TIP_FILTER_FAIL = 'SHORT_TIP_FILTER_FAIL';\n\nexport const SHORT_TIP_AUTHOR_FILTER_REQUEST = 'SHORT_TIP_AUTHOR_FILTER_REQUEST';\nexport const SHORT_TIP_AUTHOR_FILTER_SUCCESS = 'SHORT_TIP_AUTHOR_FILTER_SUCCESS';\nexport const SHORT_TIP_AUTHOR_FILTER_FAIL = 'SHORT_TIP_AUTHOR_FILTER_FAIL';","export const LOCATION_LIST_REQUEST = 'LOCATION_LIST_REQUEST';\nexport const LOCATION_LIST_SUCCESS = 'LOCATION_LIST_SUCCESS';\nexport const LOCATION_LIST_FAIL = 'LOCATION_LIST_FAIL';\n\nexport const LOCATION_DETAILS_REQUEST = 'LOCATION_DETAILS_REQUEST';\nexport const LOCATION_DETAILS_SUCCESS = 'LOCATION_DETAILS_SUCCESS';\nexport const LOCATION_DETAILS_FAIL = 'LOCATION_DETAILS_FAIL';\n\nexport const LOCATION_SAVE_REQUEST = 'LOCATION_SAVE_REQUEST';\nexport const LOCATION_SAVE_SUCCESS = 'LOCATION_SAVE_SUCCESS';\nexport const LOCATION_SAVE_FAIL = 'LOCATION_SAVE_FAIL';\n\nexport const LOCATION_DELETE_REQUEST = 'LOCATION_DELETE_REQUEST';\nexport const LOCATION_DELETE_SUCCESS = 'LOCATION_DELETE_SUCCESS';\nexport const LOCATION_DELETE_FAIL = 'LOCATION_DELETE_FAIL';\n\nexport const LOCATION_FILTER_REQUEST = 'LOCATION_FILTER_REQUEST';\nexport const LOCATION_FILTER_SUCCESS = 'LOCATION_FILTER_SUCCESS';\nexport const LOCATION_FILTER_FAIL = 'LOCATION_FILTER_FAIL';","import {LOCATION_LIST_REQUEST, \n LOCATION_LIST_SUCCESS, \n LOCATION_LIST_FAIL,\n LOCATION_DETAILS_REQUEST,\n LOCATION_DETAILS_SUCCESS,\n LOCATION_DETAILS_FAIL,\n LOCATION_SAVE_REQUEST,\n LOCATION_SAVE_SUCCESS,\n LOCATION_SAVE_FAIL,\n LOCATION_FILTER_REQUEST,\n LOCATION_FILTER_SUCCESS,\n LOCATION_FILTER_FAIL,\n LOCATION_DELETE_REQUEST,\n LOCATION_DELETE_SUCCESS,\n LOCATION_DELETE_FAIL} from \"../constants/locationConstants\"\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport axios from 'axios';\n\nconst listLocations = () => async (dispatch) => {\ntry {\n dispatch({ type: LOCATION_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/locations\");\n dispatch({ type: LOCATION_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: LOCATION_LIST_FAIL, payload: error.message });\n }\n}\n\nconst detailsLocation = (locationId) => async (dispatch) => {\n try {\n dispatch({type: LOCATION_DETAILS_REQUEST, payload: locationId});\n const {data} = await axios.get( BACKEND_URL + \"/location/\" + locationId);\n dispatch({type: LOCATION_DETAILS_SUCCESS, payload: data});\n } catch (error) {\n dispatch({ type: LOCATION_DETAILS_FAIL, payload: error.message });\n }\n}\n\nconst filterLocations = (country) => async (dispatch) => {\n try {\n dispatch({ type: LOCATION_FILTER_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/locations/\" + country);\n dispatch({ type: LOCATION_FILTER_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: LOCATION_FILTER_FAIL, payload: error.message });\n }\n }\n \nconst saveLocation = (location) => async (dispatch, getState) => {\n try {\n dispatch({ type: LOCATION_SAVE_REQUEST, payload: location });\n const {\n userSignin: { userInfo },\n } = getState();\n if (!location.id) {\n const { data } = await axios.post( BACKEND_URL + \"/location/add\", location, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: LOCATION_SAVE_SUCCESS, payload: data });\n } else {\n const { data } = await axios.put(\n BACKEND_URL + \"/location/update\",\n location,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: LOCATION_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: LOCATION_SAVE_FAIL, payload: error.message });\n }\n};\n\nconst deleteLocation = (locationId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: LOCATION_DELETE_REQUEST, payload: locationId });\n const { data } = await axios.delete( BACKEND_URL + \"/location/delete/\" + locationId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: LOCATION_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: LOCATION_DELETE_FAIL, payload: error.message });\n }\n};\n\nexport { listLocations, detailsLocation, saveLocation, deleteLocation, filterLocations }","import React, { useEffect } from 'react';\nimport {Link} from 'react-router-dom';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { filterLocations } from '../actions/locationActions';\nimport { detailsCountry } from '../actions/countryActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport parse from 'html-react-parser';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, META_TITLE, GA_ID } from '../constants/generalConstants';\n\nfunction LocationScreen( props ) {\n\n const locationFilter = useSelector(state => state.locationFilter);\n const {locations, loading, error} = locationFilter;\n const countryDetails = useSelector(state => state.countryDetails);\n const {country, loadingCountry, errorCountry} = countryDetails;\n const dispatch = useDispatch();\n const parse = require('html-react-parser');\n\n useEffect(() => {\n if (props.match.params.lang != props.language) { props.handleSetLanguage(props.match.params.lang) }\n dispatch(detailsCountry(props.match.params.country));\n dispatch(filterLocations(props.match.params.country));\n \n return () => {\n\n };\n }, [])\n\n function ScrollToTopOnMount() {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n \n return null;\n }\n\n const linkList = loading?
     
    :\n error?
    {error}
    :\n !locations?
    No locations...
    :\n locations.map((location) => {\n return (\n
  • \n {props.language==\"en\"?\n

    {props.language==\"en\"? location.metaName : location.metaNameEs}

    \n
    {props.language==\"en\"? location.description : location.descriptionEs}
    \n
     
    \n
    \n \n

    {props.language==\"en\"? \"Read more\" : \"Leer más\"}

    \n
    \n
    \n
  • \n );\n });\n\n const articlePic = loadingCountry? {SITE_NAME}:\n errorCountry? {SITE_NAME}:\n !country? {SITE_NAME}:\n props.language === \"en\"?\n {country.imageAlt}:\n {country.imageAltEs};\n\n const article = loadingCountry?
     
    :\n errorCountry?
    {error}
    :\n !country?
     
    :\n props.language === \"en\"?\n parse(String(country.article)):\n parse(String(country.articleEs));\n\n const metas = loadingCountry? {META_TITLE}:\n errorCountry? {META_TITLE}:\n !country? {META_TITLE}:\n props.language === \"en\"?\n \n \n \n { country.metaName }\n \n ;\n ;\n ;\n \n ;\n ;\n :\n \n \n \n { country.metaNameEs }\n \n ;\n ;\n ;\n \n ;\n ;\n \n\nReactGA.initialize(GA_ID);\n\n return (\n
    \n { metas }\n \n
    \n { articlePic }\n { article }\n
    \n \n\n
    \n );\n\n};\nexport default LocationScreen;","export const ATTRACTION_LIST_REQUEST = 'ATTRACTION_LIST_REQUEST';\nexport const ATTRACTION_LIST_SUCCESS = 'ATTRACTION_LIST_SUCCESS';\nexport const ATTRACTION_LIST_FAIL = 'ATTRACTION_LIST_FAIL';\n\nexport const ATTRACTION_DETAILS_REQUEST = 'ATTRACTION_DETAILS_REQUEST';\nexport const ATTRACTION_DETAILS_SUCCESS = 'ATTRACTION_DETAILS_SUCCESS';\nexport const ATTRACTION_DETAILS_FAIL = 'ATTRACTION_DETAILS_FAIL';\n\nexport const ATTRACTION_SAVE_REQUEST = 'ATTRACTION_SAVE_REQUEST';\nexport const ATTRACTION_SAVE_SUCCESS = 'ATTRACTION_SAVE_SUCCESS';\nexport const ATTRACTION_SAVE_FAIL = 'ATTRACTION_SAVE_FAIL';\n\nexport const ATTRACTION_DELETE_REQUEST = 'ATTRACTION_DELETE_REQUEST';\nexport const ATTRACTION_DELETE_SUCCESS = 'ATTRACTION_DELETE_SUCCESS';\nexport const ATTRACTION_DELETE_FAIL = 'ATTRACTION_DELETE_FAIL';\n\nexport const ATTRACTION_FILTER_REQUEST = 'ATTRACTION_FILTER_REQUEST';\nexport const ATTRACTION_FILTER_SUCCESS = 'ATTRACTION_FILTER_SUCCESS';\nexport const ATTRACTION_FILTER_FAIL = 'ATTRACTION_FILTER_FAIL';","import {\n ATTRACTION_LIST_REQUEST, \n ATTRACTION_LIST_SUCCESS, \n ATTRACTION_LIST_FAIL, \n ATTRACTION_DETAILS_REQUEST, \n ATTRACTION_DETAILS_SUCCESS, \n ATTRACTION_DETAILS_FAIL,\n ATTRACTION_SAVE_REQUEST,\n ATTRACTION_SAVE_SUCCESS,\n ATTRACTION_SAVE_FAIL,\n ATTRACTION_FILTER_REQUEST,\n ATTRACTION_FILTER_SUCCESS,\n ATTRACTION_FILTER_FAIL,\n ATTRACTION_DELETE_SUCCESS,\n ATTRACTION_DELETE_FAIL,\n ATTRACTION_DELETE_REQUEST,\n} from \"../constants/attractionConstants\"\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport axios from 'axios';\n\nconst listAttractions = () => async (dispatch, getState) => {\ntry {\n dispatch({ type: ATTRACTION_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/attractions\");\n dispatch({ type: ATTRACTION_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: ATTRACTION_LIST_FAIL, payload: error.message });\n }\n}\n\nconst filterAttractions = (location) => async (dispatch) => {\n try {\n dispatch({ type: ATTRACTION_FILTER_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/attractions/\" + location);\n dispatch({ type: ATTRACTION_FILTER_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: ATTRACTION_FILTER_FAIL, payload: error.message });\n }\n }\n\nconst detailsAttraction = (attractionId) => async (dispatch) => {\n try {\n dispatch({type: ATTRACTION_DETAILS_REQUEST, payload: attractionId});\n const {data} = await axios.get( BACKEND_URL + \"/attraction/\" + attractionId);\n dispatch({type: ATTRACTION_DETAILS_SUCCESS, payload: data});\n } catch (error) {\n dispatch({ type: ATTRACTION_DETAILS_FAIL, payload: error.message });\n }\n}\n\nconst saveAttraction = (attraction) => async (dispatch, getState) => {\n try {\n dispatch({ type: ATTRACTION_SAVE_REQUEST, payload: attraction });\n const {\n userSignin: { userInfo },\n } = getState();\n if (!attraction.id) {\n const { data } = await axios.post( BACKEND_URL + \"/attraction/add\", attraction, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ATTRACTION_SAVE_SUCCESS, payload: data });\n } else {\n const { data } = await axios.put(\n BACKEND_URL + \"/attraction/update\",\n attraction,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: ATTRACTION_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: ATTRACTION_SAVE_FAIL, payload: error.message });\n }\n};\n\nconst deleteAttraction = (attractionId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: ATTRACTION_DELETE_REQUEST, payload: attractionId });\n const { data } = await axios.delete( BACKEND_URL + \"/attraction/delete/\" + attractionId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ATTRACTION_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: ATTRACTION_DELETE_FAIL, payload: error.message });\n }\n};\n\nexport { listAttractions, detailsAttraction, deleteAttraction, saveAttraction, filterAttractions }","import React, { useEffect } from 'react';\nimport {Link} from 'react-router-dom';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { filterAttractions } from '../actions/attractionActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport parse from 'html-react-parser';\nimport MetaTags from 'react-meta-tags';\nimport { detailsLocation } from '../actions/locationActions';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, META_TITLE, META_DESCRIPTION, GA_ID } from '../constants/generalConstants';\n\nfunction ActivityScreen( props ) {\n\n const attractionFilter = useSelector(state => state.attractionFilter);\n const {attractions, loading, error} = attractionFilter;\n const locationDetails = useSelector(state => state.locationDetails);\n const {location, loadingLocation, errorLocation} = locationDetails;\n const dispatch = useDispatch();\n const parse = require('html-react-parser');\n\n useEffect(() => {\n if (props.match.params.lang != props.language) { props.handleSetLanguage(props.match.params.lang) }\n dispatch(detailsLocation(props.match.params.location));\n dispatch(filterAttractions(props.match.params.location));\n \n return () => {\n\n };\n }, [])\n\n function ScrollToTopOnMount() {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n \n return null;\n }\n\n const capitalize = (s) => {\n if (typeof s !== 'string') return ''\n return s.charAt(0).toUpperCase() + s.slice(1)\n }\n\n const linkList = loading?
     
    :\n error?
    {error}
    :\n !attractions?
    No attractions
    :\n attractions.map((activity) => {\n return (\n
  • \n {props.language==\"en\"?\n

    {props.language==\"en\"? activity.metaName : activity.metaNameEs}

    \n
    {props.language==\"en\"? activity.description : activity.descriptionEs}
    \n
     
    \n
    \n

    ${activity.price} USD

    \n \n

    {props.language==\"en\"? \"Info & Booking\" : \"Info & Reservas\"}

    \n
    \n
    \n
  • \n );\n });\n\n const articlePic = loadingLocation? {SITE_NAME}:\n errorLocation? {SITE_NAME}:\n !location? {SITE_NAME}:\n props.language === \"en\"?\n {location.imageAlt}:\n {location.imageAltEs};\n\n const article = loadingLocation?
     
    :\n errorLocation?
    {error}
    :\n !location?
     
    :\n props.language === \"en\"?\n parse(String(location.article)):\n parse(String(location.articleEs));\n\n const metas = loadingLocation? {META_TITLE}:\n errorLocation? {META_TITLE}:\n !location? {META_TITLE}:\n props.language === \"en\"?\n \n \n \n { location.metaName }\n \n ;\n ;\n ;\n \n ;\n ;\n :\n \n \n \n { location.metaNameEs }\n \n ;\n ;\n ;\n \n ;\n ;\n \n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n { metas }\n \n
    \n { articlePic }\n { article }\n
    \n \n
    \n );\n\n};\nexport default ActivityScreen;","import React, { useEffect, useState } from 'react';\nimport {Link} from 'react-router-dom';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { detailsAttraction } from '../actions/attractionActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { filterTips } from '../actions/tipActions';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport DayPicker from 'react-day-picker';\nimport { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport dateFnsFormat from 'date-fns/format';\nimport dateFnsParse from 'date-fns/parse';\nimport logo from '../resources/logo192.png';\nimport {\n filterShortTips,\n } from '../actions/tipActions';\nimport Flickity from 'react-flickity-component';\nimport { SITE_NAME, SITE_URL, META_TITLE, META_DESCRIPTION, GA_ID } from '../constants/generalConstants';\nimport { GoogleMap, LoadScript, Marker } from '@react-google-maps/api';\n\nfunction AttractionScreen(props) {\n let content = {\n\n English: {\n location : \"Location\",\n status : \"Status\",\n available : \"Available\",\n notAvailable : \"Not available for that date...\",\n howMany : \"How many people are coming?\",\n bookingDate : \"Booking date\",\n bookNow : \"Book Now!\",\n guidedBy : \"Guided by\",\n reviewsFrom : \"Reviews from guests and hosts\",\n price : \"Price\",\n places : \"places left...\",\n tips : \"Other activities to do there\",\n },\n \n Español: {\n location : \"Ubicación\",\n status : \"Estado\",\n available : \"Disponible\",\n notAvailable : \"No disponible para ésa fecha...\",\n howMany : \"Cuántas personas vienen?\",\n bookingDate : \"Fecha de reserva\",\n bookNow : \"Reserva ahora!\",\n guidedBy : \"Guiado por\",\n reviewsFrom : \"Reviews de huespedes y anfitriones\",\n price : \"Precio\",\n places : \"lugares libres...\",\n tips : \"Otras actividades para hacer allí\",\n }\n \n }; \n \n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const [selectedDay, setSelectedDay] = useState(new Date());\n const [qty, setQty] = useState(1);\n const attractionDetails = useSelector(state => state.attractionDetails);\n const {attraction, loading, error} = attractionDetails;\n const tipFilter = useSelector(state => state.tipFilter);\n const {tips, loadingTips, errorTips} = tipFilter;\n const dispatch = useDispatch();\n const parse = require('html-react-parser');\n const shortTipFilter = useSelector((state) => state.shortTipFilter);\n const { loading: loadingShortTips, tips: shortTips, error: errorShortTips } = shortTipFilter;\n\n useEffect(() => {\n if (props.match.params.lang != props.language) { props.handleSetLanguage(props.match.params.lang) }\n dispatch(detailsAttraction(props.match.params.attraction));\n dispatch(filterTips(props.match.params.attraction));\n dispatch(filterShortTips(props.match.params.attraction));\n\n return () => {\n\n };\n }, []);\n\n const handleAddToCart = () =>{\n if (DateUtils.isDate(selectedDay) && DateUtils.isFutureDay(selectedDay)) {\n props.history.push(\"/\" + props.language + \"/cart/\" + props.match.params.attraction + \"?qty=\" + qty + \"=\" + `${dateFnsFormat(selectedDay, FORMAT)}`)\n } else {\n alert(\"Please, select a valid booking date!\");\n }\n };\n\n function ScrollToTopOnMount() {\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n \n return null;\n }\n\n const article = loading?
    Loading attraction...
    :\n error?
    {error}
    :\n !attraction?
    Attraction not found...
    :\n props.language === \"en\"?\n parse(String(attraction.article)):\n parse(String(attraction.articleEs));\n\n const articlePic = loading? {SITE_NAME}:\n error? {SITE_NAME}:\n !attraction.image? {SITE_NAME}:\n props.language === \"en\"?\n {attraction.imageAlt}:\n {attraction.imageAltEs};\n\n const linkList = loading?
    Loading...
    :\n error?
    {error}
    :\n !tips?
    No tips...
    :\n tips.map((tip) => {\n return (\n
  • \n
    \n {tip.imageAlt}\n
    \n

    {tip.metaName}

    \n
    \n
    {tip.description}
    \n
     
    \n
     
    \n
    \n \n

    Read more

    \n
    \n
    \n
    \n
  • \n );\n });\n\n const mapStyles = { \n height: \"80vh\",\n width: \"100%\"};\n \n const Map = !attraction?
     
    :\n attraction.latPos?\n
    \n

    {content.location}:

    \n \n \n \n \n \n
    \n :\n
     
    \n\n function addDays(date, days) {\n const copy = new Date(Number(date))\n copy.setDate(date.getDate() + days)\n return copy\n }\n \n const date = new Date();\n const newDate = addDays(date, 2);\n const FORMAT = 'dd/MM/yyyy';\n\n function parseDate(str, format, locale) {\n const parsed = dateFnsParse(str, format, new Date(), { locale });\n if (DateUtils.isDate(parsed)) {\n return parsed;\n }\n return undefined;\n }\n \n function formatDate(date, format, locale) {\n return dateFnsFormat(date, format, { locale });\n }\n \n const metas = loading? {META_TITLE}:\n error? {META_TITLE}:\n !attraction? {META_TITLE}:\n props.language === \"en\"?\n \n \n \n { attraction.metaName }\n \n ;\n ;\n ;\n \n ;\n ;\n :\n \n \n \n { attraction.metaNameEs }\n \n ;\n ;\n ;\n \n ;\n ;\n \n\n const flickityOptions = {\n initialIndex: 2,\n adaptiveHeight: true,\n wrapAround: true,\n pageDots: true,\n prevNextButtons: true,\n pageDots: false,\n autoPlay: 10000,\n }\n\n ReactGA.initialize(GA_ID);\n\n return
    \n\n { metas }\n { loading?
    {SITE_NAME}
    :\n error?
    {error}
    :\n (\n
    \n
    \n { articlePic }\n { article }\n
    \n\n
    \n
    \n
      \n
    • \n {\n props.language === \"en\"?\n

      {attraction.metaName}

      :\n

      {attraction.metaNameEs}

      \n }\n
    • \n
    • \n

      {content.price}: ${attraction.price} USD

      \n
    • \n
    • \n {content.status}: {attraction.maxUsersDay > 0 ? content.available: content.notAvailable}\n
    • \n
    • \n

      {content.howMany} ({attraction.maxUsersDay} {content.places})

      \n \n\n

      {content.bookingDate}:

      \n setSelectedDay(day)}\n />\n\n
    • \n\n
    • \n {\n attraction.maxUsersDay > 0 &&
      \n }\n
    • \n\n
    \n
    \n
    \n
    \n {\n !attraction?
     
    :\n
    \n
    \n \n
    \n
    \n }\n
    \n
    \n\n )\n }\n\n {shortTips!=null? \n (\n
    \n

    {content.reviewsFrom}

    \n \n {shortTips.map((shortTip) => (\n
    \n {shortTip.title}/\n\n

    {shortTip.title} ({shortTip.author})

    \n
    \n ))}\n \n
    \n\n ) : \n
     
    \n }\n\n
    \n { Map }\n
    \n
    \n}\n\nexport default AttractionScreen;","export const CART_ADD_ITEM = 'CART_ADD_ITEM';\nexport const CART_REMOVE_ITEM = 'CART_REMOVE_ITEM';\nexport const CART_SAVE_BOOKING = 'CART_SAVE_BOOKING';\nexport const CART_SAVE_PAYMENT = 'CART_SAVE_PAYMENT';\nexport const CART_EMPTY = 'CART_EMPTY';","import axios from \"axios\";\nimport Cookie from \"js-cookie\";\nimport { CART_ADD_ITEM, CART_REMOVE_ITEM, CART_SAVE_BOOKING, CART_SAVE_PAYMENT, CART_EMPTY } from \"../constants/cartConstants\";\nimport { BACKEND_URL } from \"../constants/generalConstants\"\n\nconst addToCart = (attractionId, qty, date) => async (dispatch, getState) =>{\n\n try {\n const { data } = await axios.get( BACKEND_URL + \"/attraction/\" + attractionId);\n dispatch({type: CART_ADD_ITEM, payload:{\n attraction: data.id,\n name: data.name,\n path: data.path,\n image: data.image,\n price: data.price,\n countInStock: data.countInStock,\n qty,\n date\n }});\n const { cart: { cartItems } } = getState();\n Cookie.set(\"cartItems\", JSON.stringify(cartItems));\n\n } catch (error) {\n\n }\n}\n\nconst removeFromCart = (attractionId) => (dispatch, getState) =>{\n dispatch({type: CART_REMOVE_ITEM, payload: attractionId});\n\n const { cart: { cartItems } } = getState();\n Cookie.set(\"cartItems\", JSON.stringify(cartItems));\n}\n\nconst saveBooking = (data) => (dispatch) => {\n dispatch({ type: CART_SAVE_BOOKING, payload: data });\n }\n\nconst savePayment = (data) => (dispatch) => {\n dispatch({ type: CART_SAVE_PAYMENT, payload: data });\n}\n\nconst emptyCart = () => (dispatch) => {\n Cookie.remove(\"cartItems\");\n dispatch({ type: CART_EMPTY })\n }\n\nexport { addToCart, removeFromCart, saveBooking, savePayment, emptyCart };","import React, { useEffect } from 'react'\nimport { addToCart, removeFromCart } from '../actions/cartActions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction CartScreen(props) {\n\n let content = {\n\n English: {\n title : \"Booking cart in Comparte Stereo\",\n description : \"List of ATTRACTIONS for booking.\",\n bookingCart : \"Booking Cart\",\n price : \"Price\",\n empty : \"Cart is empty\",\n people : \"People\",\n date : \"Booking date:\",\n delete : \"Delete\",\n proceed : \"Proceed to Checkout\",\n },\n \n Español: {\n title : \"Lista de reservas en Comparte Stereo\",\n description : \"Lista de attracciones para reservar.\",\n bookingCart : \"Lista de reservas\",\n price : \"Precio\",\n empty : \"Lista vacía\",\n people : \"Personas\",\n date : \"Fecha de la reserva:\",\n delete : \"Borrar\",\n proceed : \"Proceder al Checkout\",\n }\n \n }; \n \n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español); \n\n const cart = useSelector(state => state.cart);\n\n const { cartItems } = cart;\n\n const attractionId = props.match.params.id;\n const qty = props.location.search ? Number(props.location.search.split(\"=\")[1]) : 1;\n const date = props.location.search ? String(props.location.search.split(\"=\")[2]) : 1;\n const dispatch = useDispatch();\n\n const removeFromCartHandler = (attractionId) => {\n dispatch(removeFromCart(attractionId));\n }\n\n useEffect(() =>{\n if(attractionId){\n dispatch(addToCart(attractionId, qty, date));\n }\n }, [])\n\n const checkoutHandler = () =>{\n props.history.push('/' + props.language + '/signin?redirect=/' + props.language + '/booking');\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {content.title}\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n
      \n
    • \n

      \n {content.bookingCart}\n

      \n
      \n {content.price}\n
      \n
    • \n {\n cartItems.length === 0 ?\n
      \n {content.empty}\n
      \n :\n cartItems.map( item =>\n
    • \n
      \n \"attraction\"\n
      \n\n
      \n
      \n \n {item.name}\n \n
      \n
      \n {content.people}:\n \n {content.date}\n { item.date }\n \n
      \n
      \n
      \n ${item.price}\n
      \n
    • \n )\n }\n\n
    \n
    \n\n
    \n

    \n Subtotal ( {cartItems.reduce((a, c) => a + c.qty, 0)} {content.people})\n :\n $ {cartItems.reduce((a, c) => a + c.price * c.qty, 0)}\n

    \n \n
    \n
    \n
    \n )\n\n}\n\nexport default CartScreen;","export const USER_SIGNIN_REQUEST = 'USER_SIGNIN_REQUEST';\nexport const USER_SIGNIN_SUCCESS = 'USER_SIGNIN_SUCCESS';\nexport const USER_SIGNIN_FAIL = 'USER_SIGNIN_FAIL';\n\nexport const USER_UPDATE_REQUEST = 'USER_UPDATE_REQUEST';\nexport const USER_UPDATE_SUCCESS = 'USER_UPDATE_SUCCESS';\nexport const USER_UPDATE_FAIL = 'USER_UPDATE_FAIL';\n\nexport const USER_REGISTER_REQUEST = 'USER_REGISTER_REQUEST';\nexport const USER_REGISTER_SUCCESS = 'USER_REGISTER_SUCCESS';\nexport const USER_REGISTER_FAIL = 'USER_REGISTER_FAIL';\n\nexport const USER_LOGOUT = 'USER_LOGOUT';\n\nexport const USER_REMEMBER_REQUEST = 'USER_REMEMBER_REQUEST';\nexport const USER_REMEMBER_SUCCESS = 'USER_REMEMBER_SUCCESS';\nexport const USER_REMEMBER_FAIL = 'USER_REMEMBER_FAIL';\n\nexport const USER_DELETE_REQUEST = 'USER_DELETE_REQUEST';\nexport const USER_DELETE_SUCCESS = 'USER_DELETE_SUCCESS';\nexport const USER_DELETE_FAIL = 'USER_DELETE_FAIL';\n\nexport const USER_CONTACT_REQUEST = 'USER_CONTACT_REQUEST';\nexport const USER_CONTACT_SUCCESS = 'USER_CONTACT_SUCCESS';\nexport const USER_CONTACT_FAIL = 'USER_CONTACT_FAIL';\n\nexport const USER_LIST_REQUEST = 'USER_LIST_REQUEST';\nexport const USER_LIST_SUCCESS = 'USER_LIST_SUCCESS';\nexport const USER_LIST_FAIL = 'USER_LIST_FAIL';","import Axios from \"axios\";\nimport Cookie from 'js-cookie';\nimport {\n USER_SIGNIN_REQUEST, USER_SIGNIN_SUCCESS,\n USER_SIGNIN_FAIL, USER_REGISTER_REQUEST,\n USER_REGISTER_SUCCESS, \n USER_REGISTER_FAIL, \n USER_LOGOUT, \n USER_UPDATE_REQUEST, \n USER_UPDATE_SUCCESS, \n USER_UPDATE_FAIL,\n USER_REMEMBER_REQUEST,\n USER_REMEMBER_SUCCESS,\n USER_REMEMBER_FAIL,\n USER_DELETE_FAIL,\n USER_DELETE_SUCCESS,\n USER_DELETE_REQUEST,\n USER_CONTACT_FAIL,\n USER_CONTACT_SUCCESS,\n USER_CONTACT_REQUEST,\n USER_LIST_REQUEST,\n USER_LIST_SUCCESS,\n USER_LIST_FAIL\n} from \"../constants/userConstants\";\nimport { BACKEND_URL } from \"../constants/generalConstants\"\n\nconst update = ({ email, name, password, role }) => async (dispatch, getState) => {\n const { userSignin: { userInfo } } = getState();\n dispatch({ type: USER_UPDATE_REQUEST, payload: { email, name, password, role } });\n try {\n const { data } = await Axios.put( BACKEND_URL + \"/user/update\",\n { email, name, password, role }, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: USER_UPDATE_SUCCESS, payload: data });\n Cookie.set('userInfo', JSON.stringify(data));\n } catch (error) {\n dispatch({ type: USER_UPDATE_FAIL, payload: error.message });\n }\n}\n\nconst deleteUser = (email) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: USER_DELETE_REQUEST, payload: email });\n const { data } = await Axios.delete( BACKEND_URL + \"/user/delete/\" + email, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: USER_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: USER_DELETE_FAIL, payload: error.message });\n }\n};\n\nconst signin = (email, password) => async (dispatch) => {\n dispatch({ type: USER_SIGNIN_REQUEST, payload: { email, password } });\n try {\n const { data } = await Axios.post( BACKEND_URL + \"/users/signin\", { email, password });\n dispatch({ type: USER_SIGNIN_SUCCESS, payload: data });\n Cookie.set('userInfo', JSON.stringify(data));\n } catch (error) {\n dispatch({ type: USER_SIGNIN_FAIL, payload: error.message });\n }\n}\n\nconst remember = (email) => async (dispatch) => {\n dispatch({ type: USER_REMEMBER_REQUEST, payload: { email } });\n try {\n const { data } = await Axios.post( BACKEND_URL + \"/users/validate\", { email });\n dispatch({ type: USER_REMEMBER_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: USER_REMEMBER_FAIL, payload: error.message });\n }\n}\n\nconst contact = (email, name, message) => async (dispatch) => {\n dispatch({ type: USER_CONTACT_REQUEST, payload: { email, name, message } });\n try {\n const { data } = await Axios.post( BACKEND_URL + \"/contact\", { email, name, message });\n dispatch({ type: USER_CONTACT_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: USER_CONTACT_FAIL, payload: error.message });\n }\n}\n\nconst register = (name, email, password) => async (dispatch) => {\n dispatch({ type: USER_REGISTER_REQUEST, payload: { name, email, password } });\n try {\n const { data } = await Axios.post( BACKEND_URL + \"/users/register\", { name, email, password });\n dispatch({ type: USER_REGISTER_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: USER_REGISTER_FAIL, payload: error.message });\n }\n}\n\nconst logout = () => (dispatch) => {\n Cookie.remove(\"userInfo\");\n dispatch({ type: USER_LOGOUT })\n}\n\nconst listUsers = () => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n\n dispatch({ type: USER_LIST_REQUEST });\n const { data } = await Axios.get( BACKEND_URL + \"/users\", {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: USER_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: USER_LIST_FAIL, payload: error.message });\n }\n }\n\nexport { signin, register, logout, update, remember, deleteUser, listUsers, contact };","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { signin } from '../actions/userActions';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction SigninScreen(props) {\n\n let content = {\n\n English: {\n title : \"Sign in to ATTRACTIONS TIPS\",\n description : \"Sign in to book ATTRACTIONS or post TIPS of places of interest.\",\n signIn : \"Sign-In\",\n email : \"Email\",\n password : \"Password\",\n forgotPassword : \"Forgot password?\",\n signInButton : \"Sign In\",\n new : \"New in Comparte Stereo?\",\n create : \"Create your Comparte Stereo account\",\n\n },\n \n Español: {\n title : \"Entrar en Comparte Stereo\",\n description : \"Regístrate para hacer reservas o unirte como artista o emprendedor.\",\n signIn : \"Entrar\",\n email : \"Email\",\n password : \"Contraseña\",\n forgotPassword : \"Olvidó la contraseña?\",\n signInButton : \"Entrar\",\n new : \"Nuevo en Comparte Stereo?\",\n create : \"Crea tu cuenta en Comparte Stereo\",\n\n }\n \n }; \n\n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState(props.match.params.token);\n const userSignin = useSelector(state => state.userSignin);\n const { loading, userInfo, error } = userSignin;\n const dispatch = useDispatch();\n const redirect = props.location.search ? props.location.search.split(\"=\")[1] : '/';\n\n useEffect(() => {\n if (userInfo) {\n props.history.push(redirect);\n }\n return () => {\n //\n };\n }, [userInfo]);\n\n const submitHandler = (e) => {\n e.preventDefault();\n if (email != '') {\n dispatch(signin(email, password));\n }\n }\n \n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {content.title}\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n
      \n
    • \n

      {content.signIn}

      \n
    • \n
    • \n {loading &&
      Loading...
      }\n {error &&
      User or password not valid...
      }\n
    • \n
    • \n \n setEmail(e.target.value)}>\n \n
    • \n
    • \n \n setPassword(e.target.value)}>\n \n {content.forgotPassword}\n
    • \n
    • \n \n
    • \n
    • \n {content.new}\n
    • \n
    • \n {content.create}\n
    • \n
    \n
    \n
    \n
    \n )\n \n}\n\nexport default SigninScreen;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport { register, logout } from '../actions/userActions';\nimport { RECAPTCHA_KEY } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction RegisterScreen(props) {\n\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [rePassword, setRePassword] = useState('');\n const [isVerified, setIsVerified] = useState(false);\n const userRegister = useSelector(state => state.userRegister);\n const { loading, userInfo, error } = userRegister;\n const dispatch = useDispatch();\n\n const redirect = props.location.search ? props.location.search.split(\"=\")[1] : '/';\n useEffect(() => {\n if (userInfo) {\n dispatch(logout());\n props.history.push(redirect);\n }\n return () => {\n //\n };\n }, [userInfo]);\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n if (name && email) {\n if (password == rePassword) {\n if (isVerified) {\n dispatch(register(name, email, password));\n alert(\"An e-mail has been sent with a link to confirm your account. Just log in with the password provided.\")\n }else {\n alert(\"Please verify you are a human!\");\n }\n } else {\n alert(\"Check the password!\")\n }\n } else {\n alert(\"Please fill out your information!\")\n }\n\n }\n\n function onChange(value) {\n if (value) {\n setIsVerified(true);\n } else {\n setIsVerified(false);\n }\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Join ATTRACTIONS TIPS. Create your account.\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n
      \n
    • \n

      Crear una cuenta

      \n
    • \n
    • \n {loading &&
      Enviando email...
      }\n {error &&
      {error}
      }\n
    • \n
    • \n \n setName(e.target.value)}>\n \n
    • \n
    • \n \n setEmail(e.target.value)}>\n \n
    • \n
    • \n \n setPassword(e.target.value)}>\n \n
    • \n
    • \n \n setRePassword(e.target.value)}>\n \n
    • \n
    • \n Recibirás un email con un link para confirmar tu cuenta...\n \n
    • \n
    • \n Ya tienes una cuenta?\n Ingresar\n\n
    • \n
    • \n \n
    • \n
    \n
    \n
    \n
    \n )\n \n}\nexport default RegisterScreen;","import React from 'react';\nfunction CheckoutSteps(props) {\n let content = {\n\n English: {\n signin : \"Signin\",\n booking : \"Booking\",\n payment : \"Payment\",\n placeOrder : \"Done\",\n },\n\n Español: {\n signin : \"Registro\",\n booking : \"Reservar\",\n payment : \"Pagar\",\n placeOrder : \"Finalizar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n return
    \n
    {content.signin}
    \n
    {content.booking}
    \n
    {content.payment}
    \n
    {content.placeOrder}
    \n
    \n}\n\nexport default CheckoutSteps;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { saveBooking } from '../actions/cartActions';\nimport CheckoutSteps from '../components/CheckoutSteps';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction BookingScreen(props) {\n\n let content = {\n\n English: {\n details : \"Booking details\",\n contactNumber : \"Contact number\",\n nationality : \"Nationality\",\n groupDetails : \"Group details: Name, age, and weight of the people who will take the activity\",\n name : \"Name\",\n continue : \"Continue\",\n },\n\n Español: {\n details : \"Detalles de la reserva\",\n contactNumber : \"Número de contacto\",\n nationality : \"Nacionalidad\",\n groupDetails : \"Detalles del grupo: Nombre, edad y peso de las personas que harán la actividad\",\n name : \"Nombre\",\n continue : \"Continuar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [bookingName, setBookingName] = useState('');\n const [contactNumber, setContactNumber] = useState('');\n const [groupDetails, setGroupDetails] = useState('');\n const [nationality, setNationality] = useState('');\n\n const dispatch = useDispatch();\n\n const submitHandler = (e) => {\n e.preventDefault();\n dispatch(saveBooking({ bookingName, contactNumber, groupDetails, nationality }));\n props.history.push('/' + props.language + '/' + 'payment');\n }\n\n ReactGA.initialize(GA_ID);\n\n return
    \n \n
    \n
    \n
      \n
    • \n

      {content.details}

      \n
    • \n\n
    • \n \n setBookingName(e.target.value)}>\n \n
    • \n
    • \n \n setContactNumber(e.target.value)}>\n \n
    • \n
    • \n \n setNationality(e.target.value)}>\n \n
    • \n
    • \n \n \n
    • \n\n\n
    • \n \n
    • \n\n
    \n
    \n
    \n
    \n\n}\nexport default BookingScreen;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { savePayment } from '../actions/cartActions';\nimport CheckoutSteps from '../components/CheckoutSteps';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction PaymentScreen(props) {\n let content = {\n\n English: {\n payment : \"Payment\",\n continue : \"Continue\",\n },\n\n Español: {\n payment : \"Forma de pago\",\n continue : \"Continuar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [paymentMethod, setPaymentMethod] = useState('');\n\n const dispatch = useDispatch();\n\n const submitHandler = (e) => {\n e.preventDefault();\n dispatch(savePayment({ paymentMethod }));\n props.history.push('/' + props.language + '/' + 'placeorder');\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n
    \n
    \n
      \n
    • \n

      {content.payment}

      \n
    • \n\n
    • \n
      \n setPaymentMethod(e.target.value)}\n >\n \n
      \n
    • \n\n
    • \n \n
    • \n
    \n
    \n
    \n
    \n );\n}\nexport default PaymentScreen;","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport CheckoutSteps from '../components/CheckoutSteps';\nimport { createOrder } from '../actions/orderActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport { logout } from '../actions/userActions';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction PlaceOrderScreen(props) {\n\n let content = {\n\n English: {\n details : \"Booking details\",\n payment : \"Payment\",\n paymentMethod : \"Payment Method\",\n cart : \"Booking Cart\",\n name : \"Name\",\n contactNumber : \"Contact number\",\n nationality : \"Nationality\",\n groupDetails : \"Group details\",\n date : \"Booking date\",\n people : \"People\",\n placeOrder : \"Place booking\",\n summary : \"Order Summary\",\n total : \"Order Total\",\n price : \"Price each\",\n },\n\n Español: {\n details : \"Detalles de la reserva\",\n payment : \"Pago\",\n paymentMethod : \"Método de pago\",\n cart : \"Lista de reserva\",\n name : \"Nombre\",\n contactNumber : \"Número de contacto\",\n nationality : \"Nacionalidad\",\n groupDetails : \"Detalles del grupo\",\n date : \"Fecha de reserva\",\n people : \"Personas\",\n placeOrder : \"Confirmar reserva\",\n summary : \"Resumen de la reserva\",\n total : \"Total\",\n price : \"Precio cada uno\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const cart = useSelector(state => state.cart);\n const orderCreate = useSelector(state => state.orderCreate);\n var { loading, success, error, order } = orderCreate;\n const userSignin = useSelector(state=>state.userSignin);\n const {userInfo} = userSignin;\n\n const { cartItems, booking, payment } = cart;\n if (!booking.bookingName || !booking.contactNumber) {\n props.history.push(\"/booking\");\n } else if (!payment.paymentMethod) {\n props.history.push(\"/payment\");\n }\n const itemsPrice = cartItems.reduce((a, c) => a + c.price * c.qty, 0);\n const bookingPrice = 0;\n const taxPrice = 0;\n const totalPrice = itemsPrice + bookingPrice + taxPrice;\n\n const dispatch = useDispatch();\n\n const placeOrderHandler = () => {\n if (userInfo){\n // create an order\n var date = new Date();\n var id = date.getTime();\n var idString = id.toString(); \n var bookingName = booking.bookingName \n var contactNumber = booking.contactNumber \n var nationality = booking.nationality\n var groupDetails = booking.groupDetails \n var paymentMethod = payment.paymentMethod\n var isDelivered = false\n var deliveredAt = \"\"\n var isPaid = false\n var paidAt = \"\"\n var owner = \"\"\n\n dispatch(createOrder({\n id,\n idString,\n owner,\n bookingName, \n contactNumber,\n nationality,\n groupDetails, \n paymentMethod,\n itemsPrice,\n bookingPrice,\n taxPrice,\n totalPrice,\n isDelivered,\n deliveredAt,\n isPaid,\n paidAt,\n orderItems: cartItems\n }));\n } else {\n props.history.push('/' + props.language + \"/signin?redirect=placeorder\");\n }\n }\n\n useEffect(() => {\n if (success) {\n props.history.push('/' + props.language + '/order/' + order.Id);\n } \n if (error) {\n error = !error;\n dispatch(logout());\n alert('There was a problem with the order placement!');\n props.history.push('/' + props.language + '/cart');\n }\n\n return () => {\n //\n };\n }, [success, error]);\n\n ReactGA.initialize(GA_ID);\n\n return
    \n \n
    \n
    \n
    \n

    \n {content.details}\n

    \n
    \n {content.name}: {cart.booking.bookingName} // {content.contactNumber}: {cart.booking.contactNumber} // \n {content.nationality}: {cart.booking.nationality} // {content.groupDetails}: {cart.booking.groupDetails}.\n
    \n
    \n
    \n

    {content.payment}

    \n
    \n {content.paymentMethod}: {cart.payment.paymentMethod}\n
    \n
    \n
    \n
      \n
    • \n

      \n {content.cart}\n

      \n
      \n {content.price}\n
      \n
    • \n {\n cartItems.length === 0 ?\n
      \n Cart is empty\n
      \n :\n cartItems.map(item =>\n
    • \n
      \n \"attraction\"\n
      \n
      \n
      \n \n {item.name}\n \n
      \n
      \n {content.date}: {item.date}\n
      \n
      \n {content.people}: {item.qty}\n
      \n
      \n
      \n ${item.price}\n
      \n
    • \n )\n }\n
    \n
    \n
    \n
      \n
    • \n \n
    • \n
    • \n
      {content.total}
      \n
      ${totalPrice} USD
      \n
    • \n
    \n\n\n\n
    \n\n \n
    \n\n
    \n
    \n\n}\n\nexport default PlaceOrderScreen;","import Axios from \"axios\";\nimport {\n ORDER_CREATE_REQUEST, ORDER_CREATE_SUCCESS, ORDER_CREATE_FAIL,\n ORDER_DETAILS_REQUEST, ORDER_DETAILS_SUCCESS, ORDER_DETAILS_FAIL, ORDER_PAY_REQUEST, ORDER_PAY_SUCCESS, ORDER_PAY_FAIL, MY_ORDER_LIST_REQUEST, MY_ORDER_LIST_SUCCESS, MY_ORDER_LIST_FAIL, ORDER_DELETE_REQUEST, ORDER_DELETE_SUCCESS, ORDER_DELETE_FAIL, ORDER_LIST_REQUEST, ORDER_LIST_SUCCESS, ORDER_LIST_FAIL\n} from \"../constants/orderConstants\";\nimport { BACKEND_URL } from \"../constants/generalConstants\"\n\nconst createOrder = (order) => async (dispatch, getState) => {\n try {\n dispatch({ type: ORDER_CREATE_REQUEST, payload: order });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.post( BACKEND_URL + \"/order/add\", order, {\n headers: \n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ORDER_CREATE_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: ORDER_CREATE_FAIL, payload: error.message });\n }\n}\n\nconst listMyOrders = () => async (dispatch, getState) => {\n try {\n dispatch({ type: MY_ORDER_LIST_REQUEST });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.get( BACKEND_URL + \"/orders/mine\", {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: MY_ORDER_LIST_SUCCESS, payload: data })\n } catch (error) {\n dispatch({ type: MY_ORDER_LIST_FAIL, payload: error.message });\n }\n}\n\nconst listOrders = () => async (dispatch, getState) => {\n\n try {\n dispatch({ type: ORDER_LIST_REQUEST });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.get( BACKEND_URL + \"/orders\", {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ORDER_LIST_SUCCESS, payload: data })\n } catch (error) {\n dispatch({ type: ORDER_LIST_FAIL, payload: error.message });\n }\n}\n\nconst detailsOrder = (orderId) => async (dispatch, getState) => {\n try {\n dispatch({ type: ORDER_DETAILS_REQUEST, payload: orderId });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.get( BACKEND_URL + \"/order/\" + orderId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ORDER_DETAILS_SUCCESS, payload: data })\n } catch (error) {\n dispatch({ type: ORDER_DETAILS_FAIL, payload: error.message });\n }\n}\n\nconst payOrder = (order, paymentResult) => async (dispatch, getState) => {\n try {\n dispatch({ type: ORDER_PAY_REQUEST, payload: paymentResult });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.put( BACKEND_URL + \"/payorder/\" + order.idString, paymentResult, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ORDER_PAY_SUCCESS, payload: data })\n } catch (error) {\n dispatch({ type: ORDER_PAY_FAIL, payload: error.message });\n }\n}\n\nconst deleteOrder = (orderId) => async (dispatch, getState) => {\n try {\n dispatch({ type: ORDER_DELETE_REQUEST, payload: orderId });\n const { userSignin: { userInfo } } = getState();\n const { data } = await Axios.delete( BACKEND_URL + \"/order/delete/\" + orderId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ORDER_DELETE_SUCCESS, payload: data })\n } catch (error) {\n dispatch({ type: ORDER_DELETE_FAIL, payload: error.message });\n }\n}\nexport { createOrder, detailsOrder, payOrder, listMyOrders, listOrders, deleteOrder };","export const ORDER_CREATE_REQUEST = 'ORDER_CREATE_REQUEST';\nexport const ORDER_CREATE_SUCCESS = 'ORDER_CREATE_SUCCESS';\nexport const ORDER_CREATE_FAIL = 'ORDER_CREATE_FAIL';\n\nexport const ORDER_DETAILS_REQUEST = 'ORDER_DETAILS_REQUEST';\nexport const ORDER_DETAILS_SUCCESS = 'ORDER_DETAILS_SUCCESS';\nexport const ORDER_DETAILS_FAIL = 'ORDER_DETAILS_FAIL';\n\nexport const MY_ORDER_LIST_REQUEST = 'MY_ORDER_LIST_REQUEST';\nexport const MY_ORDER_LIST_SUCCESS = 'MY_ORDER_LIST_SUCCESS';\nexport const MY_ORDER_LIST_FAIL = 'MY_ORDER_LIST_FAIL';\n\nexport const ORDER_LIST_REQUEST = 'ORDER_LIST_REQUEST';\nexport const ORDER_LIST_SUCCESS = 'ORDER_LIST_SUCCESS';\nexport const ORDER_LIST_FAIL = 'ORDER_LIST_FAIL';\n\nexport const ORDER_PAY_REQUEST = 'ORDER_PAY_REQUEST';\nexport const ORDER_PAY_SUCCESS = 'ORDER_PAY_SUCCESS';\nexport const ORDER_PAY_FAIL = 'ORDER_PAY_FAIL';\n\nexport const ORDER_DELETE_REQUEST = 'ORDER_DELETE_REQUEST';\nexport const ORDER_DELETE_SUCCESS = 'ORDER_DELETE_SUCCESS';\nexport const ORDER_DELETE_FAIL = 'ORDER_DELETE_FAIL';","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { createOrder, detailsOrder, payOrder } from '../actions/orderActions';\nimport { emptyCart } from '../actions/cartActions';\nimport { IMAGES_URL, SITE_URL } from '../constants/generalConstants';\nimport { PAYPAL_ID } from '../constants/generalConstants';\nimport { PAYU_MERCHANT_ID, PAYU_ACCOUNT_ID, PAYU_API_KEY, PAYU_URL, PAYU_CONFIRMATION_URL } from '../constants/generalConstants';\n\nimport ReactGA from 'react-ga4';\nimport { PayPalButton } from \"react-paypal-button-v2\";\nimport Countdown from 'react-countdown';\nimport { GA_ID } from '../constants/generalConstants';\nimport CheckoutSteps from '../components/CheckoutSteps';\n\nfunction OrderScreen(props) {\n\n let content = {\n\n English: {\n details : \"Booking details\",\n payment : \"Payment\",\n paymentMethod : \"Payment Method\",\n cart : \"Booking\",\n name : \"Name\",\n contactNumber : \"Contact number\",\n nationality : \"Nationality\",\n groupDetails : \"Group details\",\n date : \"Booking date\",\n people : \"People\",\n placeOrder : \"Place booking\",\n summary : \"Order Summary\",\n total : \"Order Total\",\n price : \"Price each\",\n paid : \"Paid\",\n notPaid : \"Not paid\",\n payPayU : \"Pay with PayU\",\n },\n\n Español: {\n details : \"Detalles de la reserva\",\n payment : \"Pago\",\n paymentMethod : \"Método de pago\",\n cart : \"Lista de reserva\",\n name : \"Nombre\",\n contactNumber : \"Número de contacto\",\n nationality : \"Nacionalidad\",\n groupDetails : \"Detalles del grupo\",\n date : \"Fecha de reserva\",\n people : \"Personas\",\n placeOrder : \"Confirmar reserva\",\n summary : \"Resumen de la reserva\",\n total : \"Total\",\n price : \"Precio cada uno\",\n paid : \"Pagado\",\n notPaid : \"No pagado\",\n payPayU : \"Pagar con PayU\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [payPalReady, setPayPalReady] = useState(false);\n const orderPay = useSelector(state => state.orderPay);\n const { loading: loadingPay, success: successPay, error: errorPay } = orderPay;\n const orderDetails = useSelector(state => state.orderDetails);\n const { loading, order, error } = orderDetails;\n const dispatch = useDispatch();\n const userSignin = useSelector(state => state.userSignin);\n const { userInfo } = userSignin;\n\n useEffect(() => {\n if (successPay) {\n dispatch(emptyCart());\n props.history.push(\"/\");\n alert(\"Your booking was successful!\");\n } else {\n dispatch(detailsOrder(props.match.params.id));\n }\n if (errorPay) {\n alert(\"Payment failed!\");\n }\n return () => {\n };\n }, [successPay, errorPay]);\n\n const handleSuccessPayment = (details, data) => {\n dispatch(payOrder(order, data));\n }\n\n const buttonReady = () => {\n setPayPalReady(true);\n\n }\n\n const Completionist = () => {\n window. location. reload(false);\n };\n\n var md5 = require(\"md5\");\n\n ReactGA.initialize(GA_ID);\n\n return loading ?
    Loading ...
    : error ?
    {error}
    :\n\n
    \n \n
    \n
    \n
    \n

    \n {content.details}\n

    \n
    \n {content.name}: {order.bookingName} -- {content.contactNumber}: {order.contactNumber} -- \n {content.nationality}: {order.nationality}, -- {content.groupDetails}: {order.groupDetails}.\n
    \n
    \n\n
    \n
      \n
    • \n

      \n {content.cart}\n

      \n
      \n {content.price}\n
      \n
    • \n {\n order.orderItems.length === 0 ?\n
      \n Cart is empty\n
      \n :\n order.orderItems.map(item =>\n
    • \n
      \n \"attraction\"\n
      \n
      \n
      \n \n {item.name}\n \n\n
      \n
      \n {content.date}: {item.date}\n
      \n
      \n {content.people}: {item.qty}\n
      \n
      \n
      \n ${item.price}\n
      \n
    • \n )\n }\n
    \n \n
    \n
    \n
    \n

    {content.payment}

    \n
    \n {content.paymentMethod}: {order.paymentMethod}\n
    \n
    \n {order.isPaid ? content.paid : content.notPaid}\n
    \n
    \n\n
      \n
    • \n {order.isPaid ? {content.paid}... :\n order.paymentMethod === 'PayPal' ?\n {\n alert(\"Transaction completed by \" + details.payer.name.given_name);\n handleSuccessPayment(details, data);\n }}\n catchError={(err) => {\n alert(\"Catch Error in transaction: \" + err);\n }}\n onError={(err) => {\n alert(\"On Error in transaction: \" + err);\n }}\n onButtonReady={() => buttonReady()}\n options={{\n clientId: PAYPAL_ID\n }}\n />:\n loading?
      Loading...
      :\n error?
      error...
      :\n !order?
      No order...
      :\n
      \n \n \n item.name + \" -- \" + item.date + \" -- \") + content.name + \": \" + order.bookingName + \" -- \" + content.contactNumber + \": \" + order.contactNumber + \" -- \" + content.nationality + \": \" + order.nationality + \" -- \" + content.groupDetails + \": \" + order.groupDetails} >\n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n }\n
    • \n\n
    • \n
      Total
      \n
      ${order.totalPrice} USD
      \n
    • \n
    \n\n
    \n
    \n\n
    \n
    \n}\n\nexport default OrderScreen;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { listOrders, deleteOrder } from '../actions/orderActions';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction OrdersScreen(props) {\n\n const orderList = useSelector(state => state.orderList);\n const { loading, orders, error } = orderList;\n\n const orderDelete = useSelector(state => state.orderDelete);\n const { loading: loadingDelete, success: successDelete, error: errorDelete } = orderDelete;\n\n const dispatch = useDispatch();\n\n const calcDate = (unixTime) => {\n var numberUnixTime = parseInt(unixTime);\n var dateResult = new Date(numberUnixTime);\n var dateText = dateResult.toLocaleString();\n return dateText;\n }\n\n useEffect(() => {\n dispatch(listOrders());\n return () => {\n //\n };\n }, [successDelete]);\n\n const deleteHandler = (order) => {\n dispatch(deleteOrder(order.idString));\n }\n\n ReactGA.initialize(GA_ID);\n\n return loading ?
    Loading...
    :\n error ?
    {error}
    :\n orders != 'No orders' ?\n (\n
    \n\n
    \n

    Orders

    \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {orders.map(order => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
    IDDATETOTALUSERPAIDPAID ATDELIVEREDDELIVERED ATACTIONS
    {order.idString}{ calcDate(order.idString) }{order.totalPrice}{order.owner}{order.isPaid.toString()}{order.paidAt}{order.isDelivered.toString()}{order.deliveredAt}\n Details\n {' '}\n \n
    \n\n
    \n
    \n ) :\n
    No Orders
    \n}\nexport default OrdersScreen;","import React, { useState, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { logout, update } from '../actions/userActions';\nimport { listMyOrders } from '../actions/orderActions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\nimport axios from 'axios';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport { IMAGES_URL } from '../constants/generalConstants';\n\nfunction ProfileScreen(props) {\n let content = {\n\n English: {\n userProfile : \"User Profile\",\n name : \"Name\",\n picture : \"Picture\",\n name : \"Name\",\n email : \"Email\",\n imagePlaceholder : \"Take it with your camera, or upload a file...\",\n update : \"Update\",\n logout : \"Logout\",\n password : \"Password\",\n },\n\n Español: {\n userProfile : \"Perfil de usuario\",\n name : \"Nombre\",\n picture : \"Imagen\",\n name : \"Nombre\",\n email : \"Email\",\n imagePlaceholder : \"Tómala con tu cámara, o sube un archivo...\",\n sendMessage : \"Enviar mensaje...\",\n update : \"Actualizar\",\n logout : \"Salir\",\n password : \"Contraseña\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [name, setName] = useState('');\n const [password, setPassword] = useState('');\n const [email, setEmail] = useState('');\n const [role, setRole] = useState('');\n const [webSite, setWebSite] = useState('');\n const [image, setImage] = useState('');\n const [imageAlt, setImageAlt] = useState('');\n const [uploading, setUploading] = useState(false);\n const dispatch = useDispatch();\n\n const userSignin = useSelector(state => state.userSignin);\n const { userInfo } = userSignin;\n const handleLogout = () => {\n dispatch(logout());\n props.history.push(\"/\");\n }\n const submitHandler = (e) => {\n e.preventDefault();\n dispatch(update({ email, name, password, role, webSite, image, imageAlt }))\n }\n\n const calcDate = (unixTime) => {\n var numberUnixTime = parseInt(unixTime);\n var dateResult = new Date(numberUnixTime);\n var dateText = dateResult.toLocaleString();\n return dateText;\n }\n\n const userUpdate = useSelector(state => state.userUpdate);\n const { loading, success, error } = userUpdate;\n\n const myOrderList = useSelector(state => state.myOrderList);\n const { loading: loadingOrders, orders, error: errorOrders } = myOrderList;\n useEffect(() => {\n if (userInfo) {\n setEmail(userInfo.email);\n setName(userInfo.name);\n setPassword(userInfo.password);\n }\n dispatch(listMyOrders());\n return () => {\n\n };\n }, [userInfo])\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n ReactGA.initialize(GA_ID);\n\n return
    \n
    \n
    \n
    \n
      \n
    • \n

      {content.userProfile}

      \n
    • \n
    • \n {loading &&
      Loading...
      }\n {error &&
      {error}
      }\n {success &&
      Profile Saved Successfully.
      }\n
    • \n
    • \n \n setName(e.target.value)}>\n \n
    • \n
    • \n \n setEmail(e.target.value)}>\n \n
    • \n
    • \n \n setWebSite(e.target.value)}>\n \n
    • \n
    • \n
      \n {!image ?   : \n
      \n \"Tip\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n }\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n\n
    • \n \n setPassword(e.target.value)}>\n \n
    • \n\n
    • \n \n
    • \n
    • \n \n
    • \n\n
    \n
    \n
    \n
    \n
    \n

    Bookings

    \n {\n loadingOrders ?
    Loading...
    :\n errorOrders ?
    Please, log out and log in again.
    :\n !orders ?
    No bookings...
    :\n \n \n \n \n \n \n \n \n \n \n { orders.map(order => \n \n \n \n \n )}\n \n
    DATETOTALSTATUSACTIONS
    { calcDate(order.idString) }{ order.totalPrice }{ order.isPaid ? \"Paid\" : \"Not Paid\" }\n DETAILS\n
    \n }\n
    \n {userInfo.role!=\"admin\"?
     
    :\n
    \n \n
    \n }\n
    \n}\n\nexport default ProfileScreen;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport { remember } from '../actions/userActions';\nimport { RECAPTCHA_KEY } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction RememberScreen(props) {\n\n let content = {\n\n English: {\n title : \"Forgotten password at ATTRACTIONS TIPS\",\n description : \"Receive an email with a temporary password to access the site.\",\n buttonSend : \"Send an email with a link to sign in\",\n email : \"Email\",\n passwordUpdate : \"Password update\",\n },\n\n Español: {\n title : \"Contraseña olvidada de ATTRACTIONS TIPS\",\n description : \"Recibe un email con una contraseña temporal para acceder al sitio.\",\n buttonSend : \"Enviar un email con un link para ingresar\",\n email : \"Email\",\n passwordUpdate : \"Actualizar Contraseña\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [email, setEmail] = useState('');\n const [isVerified, setIsVerified] = useState(false);\n const dispatch = useDispatch();\n\n const submitHandler = (e) => {\n if (email) {\n if (isVerified) {\n e.preventDefault();\n dispatch(remember(email));\n alert(\"Message sent... Please check out your email to follow the sign-in link!\");\n props.history.push(\"/\");\n } else {\n alert(\"Please verify you are a human!\");\n }\n } else {\n alert(\"Please, enter the Email!\");\n }\n }\n\n function onChange(value) {\n if (value) {\n setIsVerified(true);\n } else {\n setIsVerified(false);\n }\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {content.title}\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n
      \n
    • \n

      {content.passwordUpdate}

      \n
    • \n
    • \n \n setEmail(e.target.value)}>\n \n
    • \n
    • \n \n
    • \n\n
    \n \n \n
    \n
    \n )\n \n}\nexport default RememberScreen;","export const ACTIVITY_LIST_REQUEST = 'ACTIVITY_LIST_REQUEST';\nexport const ACTIVITY_LIST_SUCCESS = 'ACTIVITY_LIST_SUCCESS';\nexport const ACTIVITY_LIST_FAIL = 'ACTIVITY_LIST_FAIL';\n\nexport const ACTIVITY_SAVE_REQUEST = 'ACTIVITY_SAVE_REQUEST';\nexport const ACTIVITY_SAVE_SUCCESS = 'ACTIVITY_SAVE_SUCCESS';\nexport const ACTIVITY_SAVE_FAIL = 'ACTIVITY_SAVE_FAIL';\n\nexport const ACTIVITY_DELETE_REQUEST = 'ACTIVITY_DELETE_REQUEST';\nexport const ACTIVITY_DELETE_SUCCESS = 'ACTIVITY_DELETE_SUCCESS';\nexport const ACTIVITY_DELETE_FAIL = 'ACTIVITY_DELETE_FAIL';","import {ACTIVITY_LIST_REQUEST, \n ACTIVITY_LIST_SUCCESS, \n ACTIVITY_LIST_FAIL,\n ACTIVITY_SAVE_REQUEST,\n ACTIVITY_SAVE_SUCCESS,\n ACTIVITY_SAVE_FAIL,\n ACTIVITY_DELETE_REQUEST,\n ACTIVITY_DELETE_SUCCESS,\n ACTIVITY_DELETE_FAIL} from \"../constants/activityConstants\"\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport axios from 'axios';\n\nconst listActivities = () => async (dispatch) => {\ntry {\n dispatch({ type: ACTIVITY_LIST_REQUEST });\n const { data } = await axios.get( BACKEND_URL + \"/activities\");\n dispatch({ type: ACTIVITY_LIST_SUCCESS, payload: data })\n }\n catch (error) {\n dispatch({ type: ACTIVITY_LIST_FAIL, payload: error.message });\n }\n}\n\nconst saveActivity = (activity) => async (dispatch, getState) => {\n try {\n dispatch({ type: ACTIVITY_SAVE_REQUEST, payload: activity });\n const {\n userSignin: { userInfo },\n } = getState();\n if (!activity.name) {\n const { data } = await axios.post( BACKEND_URL + \"/activity/add\", activity, {\n headers: \n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ACTIVITY_SAVE_SUCCESS, payload: data });\n } else {\n const { data } = await axios.put(\n BACKEND_URL + \"/activity/update\",\n activity,\n {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n }\n );\n dispatch({ type: ACTIVITY_SAVE_SUCCESS, payload: data });\n }\n } catch (error) {\n dispatch({ type: ACTIVITY_SAVE_FAIL, payload: error.message });\n }\n};\n\nconst deleteActivity = (activityId) => async (dispatch, getState) => {\n try {\n const {\n userSignin: { userInfo },\n } = getState();\n dispatch({ type: ACTIVITY_DELETE_REQUEST, payload: activityId });\n const { data } = await axios.delete( BACKEND_URL + \"/activity/delete/\" + activityId, {\n headers:\n { Authorization: 'Bearer ' + userInfo.token + \" \" + userInfo.email + \" \" + userInfo.role },\n });\n dispatch({ type: ACTIVITY_DELETE_SUCCESS, payload: data, success: true });\n } catch (error) {\n dispatch({ type: ACTIVITY_DELETE_FAIL, payload: error.message });\n }\n};\n\nexport { listActivities, saveActivity, deleteActivity }","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveAttraction,\n listAttractions,\n deleteAttraction,\n} from '../actions/attractionActions';\nimport {\n listUsers,\n} from '../actions/userActions';\nimport { listCountries } from '../actions/countryActions';\nimport { listActivities } from '../actions/activityActions';\nimport { filterLocations } from '../actions/locationActions';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport ReactGA from 'react-ga4';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction AttractionsScreen(props) {\n\n let content = {\n\n English: {\n attractions : \"Attractions\",\n createAttraction : \"Create Attraction\",\n activity : \"Activity\",\n country : \"Country\",\n location : \"Location\",\n edit : \"Edit\",\n name : \"Name\",\n owner : \"Owner\",\n chooseUser : \"Choose an User\",\n title : \"Title\",\n description : \"Description\",\n image : \"Image\",\n imageAlt : \"Image Alt\",\n article : \"Article\",\n create : \"Create\",\n update : \"Update\",\n back : \"Back\",\n delete : \"Delete\",\n activityBy : \"Activity by\",\n price : \"Price\",\n maxUsers : \"Max users per day\",\n },\n\n Español: {\n attractions : \"Atracciones\",\n createAttraction : \"Crear Atracción\",\n activity : \"Actividad\",\n country : \"País\",\n location : \"Locación\",\n edit : \"Editar\",\n name : \"Nombre\",\n owner : \"Propietario\",\n chooseUser : \"Escoge un ususario\",\n title : \"Título\",\n description : \"Descripción\",\n image : \"Imagen\",\n imageAlt : \"Imagen Alt\",\n article : \"Artículo\",\n create : \"Crear\",\n update : \"Actualizar\",\n back : \"Atrás\",\n delete : \"Borrar\",\n activityBy : \"Actividad por\",\n price : \"Precio\",\n maxUsers : \"Max usuarios por día\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [country, setCountry] = useState('');\n const [parent, setParent] = useState('');\n const [activityBy, setActivityBy] = useState('');\n const [name, setName] = useState('');\n const [metaName, setMetaName] = useState('');\n const [metaNameEs, setMetaNameEs] = useState('');\n const [activity, setActivity] = useState('');\n const [videoUrl, setVideoUrl] = useState('');\n const [siteUrl, setSiteUrl] = useState('');\n const [image, setImage] = useState('');\n const [imageAlt, setImageAlt] = useState('');\n const [imageAltEs, setImageAltEs] = useState('');\n const [price, setPrice] = useState('');\n const [description, setDescription] = useState('');\n const [descriptionEs, setDescriptionEs] = useState('');\n const [article, setArticle] = useState('');\n const [articleEs, setArticleEs] = useState('');\n const [owner, setOwner] = useState('');\n const [maxUsersDay, setMaxUsersDay] = useState('');\n const [latPos, setLatPos] = useState('init');\n const [longPos, setLongPos] = useState('init');\n\n const [uploading, setUploading] = useState(false);\n const attractionList = useSelector((state) => state.attractionList);\n const { loading, attractions, error } = attractionList;\n const countryList = useSelector((state) => state.countryList);\n const { loadingCountries, countries, errorCountries } = countryList;\n const locationFilter = useSelector(state => state.locationFilter);\n const {locations, loadingLocations, errorLocations} = locationFilter;\n const activityList = useSelector((state) => state.activityList);\n const { loadingActivities, activities, errorActivities } = activityList;\n const userList = useSelector((state) => state.userList);\n const { loadingUsers, users, errorUsers } = userList;\n\n const attractionSave = useSelector((state) => state.attractionSave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = attractionSave;\n\n const attractionDelete = useSelector((state) => state.attractionDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = attractionDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listAttractions());\n dispatch(listCountries());\n dispatch(listActivities());\n dispatch(listUsers());\n reloadLocations(country);\n\n if (country != '') {\n dispatch(filterLocations(country));\n }\n\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (attraction) => {\n setModalVisible(true);\n setParent(attraction.parent);\n setCountry(attraction.country);\n setActivityBy(attraction.activityBy);\n setName(attraction.name);\n setMetaName(attraction.metaName);\n setMetaNameEs(attraction.metaNameEs);\n setActivity(attraction.activity);\n setVideoUrl(attraction.videoUrl);\n setSiteUrl(attraction.siteUrl);\n setImage(attraction.image);\n setImageAlt(attraction.imageAlt);\n setImageAltEs(attraction.imageAltEs);\n setPrice(attraction.price);\n setDescription(attraction.description);\n setDescriptionEs(attraction.descriptionEs);\n setMaxUsersDay(attraction.maxUsersDay);\n setArticle(attraction.article);\n setArticleEs(attraction.articleEs);\n setOwner(attraction.owner);\n setLatPos(attraction.latPos);\n setLongPos(attraction.longPos);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n var id = name.replace(/\\s/g, '-') ;\n var result = id.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g,'') ;\n id = result.toLowerCase();\n id = id.replace('ñ', 'n') ;\n\n var path = '/' + country.toLowerCase() + '/' + parent.toLowerCase() + '/' + id;\n\n dispatch(\n saveAttraction({\n id,\n parent,\n country,\n path,\n name,\n metaName,\n metaNameEs,\n activity,\n activityBy,\n siteUrl,\n videoUrl,\n image,\n imageAlt,\n imageAltEs,\n price,\n description,\n descriptionEs,\n article,\n articleEs,\n maxUsersDay,\n owner,\n latPos,\n longPos,\n })\n );\n };\n\n const deleteHandler = (attraction) => {\n dispatch(deleteAttraction(attraction.id));\n };\n\n const reloadLocations = (country) => {\n setCountry(country)\n dispatch(filterLocations(country));\n setParent()\n };\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n const editorConfiguration = {\n heading: {\n options: [\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\n ]\n },\n\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n
    \n

    {content.attractions}

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      {content.createAttraction}

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n
    • \n \n {users!=null? \n (\n \n ) :\n
      No Users...
      }\n
    • \n
    • \n \n {activities!=null? \n (\n \n ) :\n
      No Activities
      }\n
    • \n
    • \n \n {countries!=null? \n (\n \n ) :\n
      No Countries
      }\n
    • \n
    • \n \n {locations!=null? \n (\n \n ) :\n
      No Locations
      }\n
    • \n
    • \n \n setName(e.target.value)}\n >\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setMetaName(e.target.value)}\n >\n
    • \n :
    • \n \n setMetaNameEs(e.target.value)}\n >\n
    • \n }\n\n {\n props.language === \"en\"\n ?
    • \n \n setDescription(e.target.value)}\n >\n
    • \n :
    • \n \n setDescriptionEs(e.target.value)}\n >\n
    • \n }\n
    • \n \n setActivityBy(e.target.value)}>\n \n
    • \n
    • \n \n setSiteUrl(e.target.value)}>\n \n
    • \n
    • \n \n setVideoUrl(e.target.value)}>\n \n
    • \n
    • \n
      \n {!image ?   : \n
      \n \"Attraction\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n }\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setImageAlt(e.target.value)}\n >\n
    • \n :
    • \n \n setImageAltEs(e.target.value)}\n >\n
    • \n }\n
    • \n \n setPrice(e.target.value)}\n >\n
    • \n
    • \n \n setMaxUsersDay(e.target.value)}\n >\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n {\n const data = editor.getData();\n setArticle(data);\n } }\n />\n
    • \n :
    • \n \n {\n const data = editor.getData();\n setArticleEs(data);\n } }\n />\n
    • \n }\n
    • \n \n setLatPos(e.target.value)}\n >\n
    • \n
    • \n \n setLongPos(e.target.value)}\n >\n
    • \n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n {content.back}\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n attractions != null ?\n (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {attractions.map((attraction) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
    {content.name}{content.activity}{content.country}{content.location}{content.price}{content.owner}
    {attraction.name}{attraction.activity}{attraction.country}{attraction.parent}{attraction.price}{attraction.owner}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + attraction.name + \"?\")) deleteHandler(attraction)} }\n >\n Delete\n \n
    \n
    \n ) :\n
    No Attractions
    \n }\n
    \n\n );\n}\n\nexport default AttractionsScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n update,\n listUsers,\n deleteUser,\n} from '../actions/userActions';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction UsersScreen(props) {\n const [modalVisible, setModalVisible] = useState(false);\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [role, setRole] = useState('');\n const userList = useSelector((state) => state.userList);\n const { loading, users, error } = userList;\n\n const userSave = useSelector((state) => state.userUpdate);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = userSave;\n\n const userDelete = useSelector((state) => state.userDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = userDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listUsers());\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (user) => {\n setModalVisible(true);\n setName(user.name);\n setEmail(user.email);\n setPassword(user.password);\n setRole(user.role);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n dispatch(\n update({\n name,\n email,\n password,\n role,\n })\n );\n dispatch(listUsers());\n setModalVisible(false);\n };\n\n const deleteHandler = (user) => {\n dispatch(deleteUser(user.email));\n dispatch(listUsers());\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n
    \n

    Users

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      {email ? 'Update User' : 'Create User'}

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n\n
    • \n \n setName(e.target.value)}\n >\n
    • \n
    • \n \n setEmail(e.target.value)}\n >\n
    • \n
    • \n \n setPassword(e.target.value)}\n >\n
    • \n
    • \n \n setRole(e.target.value)}\n >\n
    • \n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n Back\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n !users?
    No users
    :\n\n (\n
    \n \n \n \n \n \n \n \n \n \n \n {users.map((user) => (\n \n \n \n \n \n \n \n ))}\n \n
    NameEmailPasswordRole
    {user.name}{user.email}{user.password}{user.role}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + user.name + \"?\")) deleteHandler(user)} }\n >\n Delete\n \n
    \n
    \n \n )\n }\n
    \n\n );\n}\n\nexport default UsersScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveActivity,\n listActivities,\n deleteActivity,\n} from '../actions/activityActions';\nimport ReactGA from 'react-ga4';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction ActivitiesScreen(props) {\n const [modalVisible, setModalVisible] = useState(false);\n const [name, setName] = useState('');\n const [uploading, setUploading] = useState(false);\n const activityList = useSelector((state) => state.activityList);\n const { loading, activities, error } = activityList;\n\n const activitySave = useSelector((state) => state.activitySave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = activitySave;\n\n const activityDelete = useSelector((state) => state.activityDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = activityDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listActivities());\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (country) => {\n setModalVisible(true);\n setName(country.name);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n dispatch(\n saveActivity({\n name,\n })\n );\n };\n\n const deleteHandler = (activity) => {\n dispatch(deleteActivity(activity.name)); \n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n
    \n

    Activities

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      Create Activity

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n\n
    • \n \n setName(e.target.value)}\n >\n
    • \n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n Back\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n activities!=null? \n (\n
    \n \n \n \n \n \n \n \n {activities.map((activity) => (\n \n \n \n \n ))}\n \n
    Name
    {activity.name}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + activity.name + \"?\")) deleteHandler(activity)}}\n >\n Delete\n \n
    \n
    \n ) :\n
    No Activities
    \n }\n
    \n\n );\n}\n\nexport default ActivitiesScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveCountry,\n listCountries,\n deleteCountry,\n} from '../actions/countryActions';\nimport {\n listUsers,\n} from '../actions/userActions';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport ReactGA from 'react-ga4';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction CountriesScreen(props) {\n let content = {\n\n English: {\n countries : \"Countries\",\n createCountry : \"Create Country\",\n edit : \"Edit\",\n name : \"Name\",\n owner : \"Owner\",\n chooseUser : \"Choose an User\",\n title : \"Title\",\n description : \"Description\",\n image : \"Image\",\n imageAlt : \"Image Alt\",\n article : \"Article\",\n create : \"Create\",\n update : \"Update\",\n back : \"Back\",\n delete : \"Delete\",\n },\n\n Español: {\n countries : \"Países\",\n createCountry : \"Crear País\",\n edit : \"Editar\",\n name : \"Nombre\",\n owner : \"Propietario\",\n chooseUser : \"Escoge un ususario\",\n title : \"Título\",\n description : \"Descripción\",\n image : \"Imagen\",\n imageAlt : \"Imagen Alt\",\n article : \"Artículo\",\n create : \"Crear\",\n update : \"Actualizar\",\n back : \"Atrás\",\n delete : \"Borrar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [id, setId] = useState('');\n const [parent, setParent] = useState('');\n const [name, setName] = useState('');\n const [metaName, setMetaName] = useState('');\n const [metaNameEs, setMetaNameEs] = useState('');\n const [image, setImage] = useState('');\n const [imageAlt, setImageAlt] = useState('');\n const [imageAltEs, setImageAltEs] = useState('');\n const [description, setDescription] = useState('');\n const [descriptionEs, setDescriptionEs] = useState('');\n const [article, setArticle] = useState('');\n const [articleEs, setArticleEs] = useState('');\n const [owner, setOwner] = useState('');\n const [uploading, setUploading] = useState(false);\n const countryList = useSelector((state) => state.countryList);\n const { loading, countries, error } = countryList;\n const userList = useSelector((state) => state.userList);\n const { loadingUsers, users, errorUsers } = userList;\n\n const countrySave = useSelector((state) => state.countrySave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = countrySave;\n\n const countryDelete = useSelector((state) => state.countryDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = countryDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listCountries());\n dispatch(listUsers());\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (country) => {\n setModalVisible(true);\n setParent(country.parent);\n setName(country.name);\n setMetaName(country.metaName);\n setMetaNameEs(country.metaNameEs);\n setImage(country.image);\n setImageAlt(country.imageAlt);\n setImageAltEs(country.imageAltEs);\n setDescription(country.description);\n setDescriptionEs(country.descriptionEs);\n setArticle(country.article);\n setArticleEs(country.articleEs);\n setOwner(country.owner);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n var parent = \"null\";\n var id = name.replace(/\\s/g, '-') ;\n var result = id.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g,'') ;\n id = result.toLowerCase();\n id = id.replace('ñ', 'n') ;\n\n dispatch(\n saveCountry({\n id,\n parent,\n name,\n metaName,\n metaNameEs,\n image,\n imageAlt,\n imageAltEs,\n description,\n descriptionEs,\n article,\n articleEs,\n owner,\n })\n );\n };\n\n const deleteHandler = (country) => {\n dispatch(deleteCountry(country.id)); \n };\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n const editorConfiguration = {\n heading: {\n options: [\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\n ]\n },\n\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n
    \n

    {content.countries}

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      {content.createCountry}

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n
    • \n \n {users!=null? \n (\n \n ) :\n
      No Countries
      }\n
    • \n
    • \n \n setName(e.target.value)}\n >\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setMetaName(e.target.value)}\n >\n
    • \n :
    • \n \n setMetaNameEs(e.target.value)}\n >\n
    • \n }\n\n {\n props.language === \"en\"\n ?
    • \n \n setDescription(e.target.value)}\n >\n
    • \n :
    • \n \n setDescriptionEs(e.target.value)}\n >\n
    • \n }\n\n
    • \n
      \n {!image ?   : \n
      \n \"Country\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n }\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setImageAlt(e.target.value)}\n >\n
    • \n :
    • \n \n setImageAltEs(e.target.value)}\n >\n
    • \n }\n {\n props.language === \"en\"\n ?
    • \n \n {\n const data = editor.getData();\n setArticle(data);\n } }\n />\n
    • \n :
    • \n \n {\n const data = editor.getData();\n setArticleEs(data);\n } }\n />\n
    • \n }\n\n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n {content.back}\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n countries!=null? \n (\n
    \n \n \n \n \n \n \n \n \n \n {countries.map((country) => (\n \n \n {\n props.language === \"en\"\n ? \n : \n }\n \n \n \n ))}\n \n
    {content.name}{content.description}{content.owner}
    {country.name}{country.name}{country.description}{country.descriptionEs}{country.owner}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + country.name + \"?\")) deleteHandler(country)}}\n >\n {content.delete}\n \n
    \n
    \n ) :\n
    No Countries
    \n }\n
    \n\n );\n}\n\nexport default CountriesScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveLocation,\n listLocations,\n deleteLocation,\n} from '../actions/locationActions';\nimport {\n listCountries,\n} from '../actions/countryActions';\nimport {\n listUsers,\n} from '../actions/userActions';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport ReactGA from 'react-ga4';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { GA_ID } from '../constants/generalConstants';\n\nfunction LocationsScreen(props) {\n\n let content = {\n\n English: {\n locations : \"Locations\",\n createLocation : \"Create Location\",\n country : \"Country\",\n edit : \"Edit\",\n name : \"Name\",\n owner : \"Owner\",\n chooseUser : \"Choose an User\",\n title : \"Title\",\n description : \"Description\",\n image : \"Image\",\n imageAlt : \"Image Alt\",\n article : \"Article\",\n create : \"Create\",\n update : \"Update\",\n back : \"Back\",\n delete : \"Delete\",\n },\n\n Español: {\n locations : \"Locaciones\",\n createLocation : \"Crear Locación\",\n country : \"País\",\n edit : \"Editar\",\n name : \"Nombre\",\n owner : \"Propietario\",\n chooseUser : \"Escoge un ususario\",\n title : \"Título\",\n description : \"Descripción\",\n image : \"Imagen\",\n imageAlt : \"Imagen Alt\",\n article : \"Artículo\",\n create : \"Crear\",\n update : \"Actualizar\",\n back : \"Atrás\",\n delete : \"Borrar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [parent, setParent] = useState('');\n const [name, setName] = useState('');\n const [metaName, setMetaName] = useState('');\n const [metaNameEs, setMetaNameEs] = useState('');\n const [image, setImage] = useState('');\n const [imageAlt, setImageAlt] = useState('');\n const [imageAltEs, setImageAltEs] = useState('');\n const [description, setDescription] = useState('');\n const [descriptionEs, setDescriptionEs] = useState('');\n const [article, setArticle] = useState('');\n const [articleEs, setArticleEs] = useState('');\n const [owner, setOwner] = useState('');\n const [uploading, setUploading] = useState(false);\n const locationList = useSelector((state) => state.locationList);\n const { loading, locations, error } = locationList;\n const countryList = useSelector((state) => state.countryList);\n const { loadingCountries, countries, errorCountries } = countryList;\n const userList = useSelector((state) => state.userList);\n const { loadingUsers, users, errorUsers } = userList;\n\n const locationSave = useSelector((state) => state.locationSave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = locationSave;\n\n const locationDelete = useSelector((state) => state.locationDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = locationDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listLocations());\n dispatch(listCountries());\n dispatch(listUsers());\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (location) => {\n setModalVisible(true);\n setParent(location.parent);\n setName(location.name);\n setMetaName(location.metaName);\n setMetaNameEs(location.metaNameEs);\n setImage(location.image);\n setImageAlt(location.imageAlt);\n setImageAltEs(location.imageAltEs);\n setDescription(location.description);\n setDescriptionEs(location.descriptionEs);\n setArticle(location.article);\n setArticleEs(location.articleEs);\n setOwner(location.owner);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n var id = name.replace(/\\s/g, '-') ;\n var result = id.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g,'') ;\n id = result.toLowerCase();\n id = id.replace('ñ', 'n') ;\n\n dispatch(\n saveLocation({\n id,\n parent,\n name,\n metaName,\n metaNameEs,\n image,\n imageAlt,\n imageAltEs,\n description,\n descriptionEs,\n article,\n articleEs,\n owner,\n })\n );\n };\n\n const deleteHandler = (location) => {\n dispatch(deleteLocation(location.id));\n };\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n const editorConfiguration = {\n heading: {\n options: [\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\n ]\n },\n\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n
    \n

    {content.locations}

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      {content.createLocation}

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n\n
    • \n \n {users!=null? \n (\n \n ) :\n
      No Users
      }\n
    • \n
    • \n \n {countries!=null? \n (\n \n ) :\n
      No Countries
      }\n
    • \n
    • \n \n setName(e.target.value)}\n >\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setMetaName(e.target.value)}\n >\n
    • \n :
    • \n \n setMetaNameEs(e.target.value)}\n >\n
    • \n }\n\n {\n props.language === \"en\"\n ?
    • \n \n setDescription(e.target.value)}\n >\n
    • \n :
    • \n \n setDescriptionEs(e.target.value)}\n >\n
    • \n }\n
    • \n
      \n {!image ?   : \n
      \n \"Location\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n }\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n\n {\n props.language === \"en\"\n ?
    • \n \n setImageAlt(e.target.value)}\n >\n
    • \n :
    • \n \n setImageAltEs(e.target.value)}\n >\n
    • \n }\n\n {\n props.language === \"en\"\n ?
    • \n \n {\n const data = editor.getData();\n setArticle(data);\n } }\n />\n
    • \n :
    • \n \n {\n const data = editor.getData();\n setArticleEs(data);\n } }\n />\n
    • \n }\n\n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n {content.back}\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n locations!=null? \n (\n
    \n \n \n \n \n \n \n \n \n \n \n {locations.map((location) => (\n \n \n \n {\n props.language === \"en\"\n ? \n : \n }\n \n \n \n ))}\n \n
    {content.name}{content.country}{content.description}{content.owner}
    {location.name}{location.parent}{location.description}{location.descriptionEs}{location.owner}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + location.name + \"?\"))deleteHandler(location)}}\n >\n {content.delete}\n \n
    \n
    \n ) :\n
    No Locations
    \n }\n
    \n\n );\n}\n\nexport default LocationsScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveTip,\n listTips,\n deleteTip,\n} from '../actions/tipActions';\nimport {\n listUsers,\n} from '../actions/userActions';\nimport { listCountries } from '../actions/countryActions';\nimport { listActivities } from '../actions/activityActions';\nimport { filterLocations } from '../actions/locationActions';\nimport { filterAttractions } from '../actions/attractionActions';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport ReactGA from 'react-ga4';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction CreateTipScreen(props) {\n let content = {\n\n English: {\n tips : \"Tips\",\n createTip : \"Create Tip\",\n country : \"Country\",\n location : \"Location\",\n attraction : \"Attraction\",\n activity : \"Activity\",\n edit : \"Edit\",\n name : \"Name\",\n owner : \"Owner\",\n chooseUser : \"Choose an User\",\n title : \"Title\",\n description : \"Description\",\n image : \"Image\",\n imageAlt : \"Image Alt\",\n article : \"Article\",\n create : \"Create\",\n update : \"Update\",\n back : \"Back\",\n delete : \"Delete\",\n },\n\n Español: {\n tips : \"Tips\",\n createTip : \"Crear Tip\",\n country : \"País\",\n location : \"Locación\",\n attraction : \"Atracción\",\n activity : \"Actividad\",\n edit : \"Editar\",\n name : \"Nombre\",\n owner : \"Propietario\",\n chooseUser : \"Escoge un ususario\",\n title : \"Título\",\n description : \"Descripción\",\n image : \"Imagen\",\n imageAlt : \"Imagen Alt\",\n article : \"Artículo\",\n create : \"Crear\",\n update : \"Actualizar\",\n back : \"Atrás\",\n delete : \"Borrar\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [country, setCountry] = useState('');\n const [location, setLocation] = useState('');\n const [parent, setParent] = useState('');\n const [name, setName] = useState('');\n const [metaName, setMetaName] = useState('');\n const [metaNameEs, setMetaNameEs] = useState('');\n const [activity, setActivity] = useState('');\n const [image, setImage] = useState('');\n const [imageAlt, setImageAlt] = useState('');\n const [imageAltEs, setImageAltEs] = useState('');\n const [description, setDescription] = useState('');\n const [descriptionEs, setDescriptionEs] = useState('');\n const [article, setArticle] = useState('');\n const [articleEs, setArticleEs] = useState('');\n const [owner, setOwner] = useState('');\n const [uploading, setUploading] = useState(false);\n const tipList = useSelector((state) => state.tipList);\n const { loading, tips, error } = tipList;\n const countryList = useSelector((state) => state.countryList);\n const { loadingCountries, countries, errorCountries } = countryList;\n const locationFilter = useSelector(state => state.locationFilter);\n const {locations, loadingLocations, errorLocations} = locationFilter;\n const activityList = useSelector((state) => state.activityList);\n const { loadingActivities, activities, errorActivities } = activityList;\n const attractionFilter = useSelector(state => state.attractionFilter);\n const {attractions, loadingAttractions, errorAttractions} = attractionFilter;\n const userList = useSelector((state) => state.userList);\n const { loadingUsers, users, errorUsers } = userList;\n\n const tipSave = useSelector((state) => state.tipSave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = tipSave;\n\n const tipDelete = useSelector((state) => state.tipDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = tipDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n dispatch(listTips());\n dispatch(listCountries());\n dispatch(listActivities());\n dispatch(listUsers());\n reloadLocations(country);\n reloadAttractions(location);\n\n if (country != '') {\n dispatch(filterLocations(country));\n }\n\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (tip) => {\n setModalVisible(true);\n setParent(tip.parent);\n setName(tip.name);\n setActivity(tip.activity);\n setCountry(tip.country);\n setLocation(tip.location);\n setMetaName(tip.metaName);\n setMetaNameEs(tip.metaNameEs);\n setImage(tip.image);\n setImageAlt(tip.imageAlt);\n setImageAltEs(tip.imageAltEs);\n setDescription(tip.description);\n setDescriptionEs(tip.descriptionEs);\n setArticle(tip.article);\n setArticleEs(tip.articleEs);\n setOwner(tip.owner);\n };\n\n const submitHandler = (e) => {\n e.preventDefault();\n\n if (name && parent) {\n var id = name.replace(/\\s/g, '-') ;\n var result = id.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g,'') ;\n id = result.toLowerCase();\n id = id.replace('ñ', 'n') ;\n \n var path = '/' + country.toLowerCase() + '/' + location.toLowerCase() + '/' + parent.toLowerCase() + '/' + id;\n \n dispatch(\n saveTip({\n id: id,\n parent,\n country,\n location,\n path,\n name,\n metaName,\n metaNameEs,\n activity,\n image,\n imageAlt,\n imageAltEs,\n description,\n descriptionEs,\n article,\n articleEs,\n owner,\n })\n );\n } else {\n alert(\"Please, fill out the information!\")\n } \n };\n\n const deleteHandler = (tip) => {\n dispatch(deleteTip(tip.id));\n };\n\n const reloadLocations = (country) => {\n setCountry(country)\n dispatch(filterLocations(country));\n setParent()\n };\n\n const reloadAttractions = (location) => {\n setLocation(location)\n dispatch(filterAttractions(location));\n setParent()\n };\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n const editorConfiguration = {\n heading: {\n options: [\n { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },\n { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },\n { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },\n { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },\n ]\n },\n };\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Create a new ATTRACTION TIP\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n

    {content.tips}

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      {content.createTip}

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n\n
    • \n \n {users!=null? \n (\n \n ) :\n
      No users...
      }\n
    • \n
    • \n \n {activities!=null? \n (\n \n ) :\n
      No Activities
      }\n
    • \n
    • \n \n {countries!=null? \n (\n \n ) :\n
      No Countries
      }\n
    • \n
    • \n \n {locations!=null? \n (\n \n ) :\n
      No Locations
      }\n
    • \n
    • \n \n {attractions!=null? \n (\n \n ) :\n
      No Attractions
      }\n
    • \n
    • \n \n setName(e.target.value)}\n >\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setMetaName(e.target.value)}\n >\n
    • \n :
    • \n \n setMetaNameEs(e.target.value)}\n >\n
    • \n }\n {\n props.language === \"en\"\n ?
    • \n \n setDescription(e.target.value)}\n >\n
    • \n :
    • \n \n setDescriptionEs(e.target.value)}\n >\n
    • \n }\n\n
    • \n
      \n \"Tip\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n {\n props.language === \"en\"\n ?
    • \n \n setImageAlt(e.target.value)}\n >\n
    • \n :
    • \n \n setImageAltEs(e.target.value)}\n >\n
    • \n }\n {\n props.language === \"en\"\n ?
    • \n \n {\n const data = editor.getData();\n setArticle(data);\n } }\n />\n
    • \n :
    • \n \n {\n const data = editor.getData();\n setArticleEs(data);\n } }\n />\n
    • \n }\n\n \n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n {content.back}\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    Loading...
    :\n error?
    {error}
    :\n tips!=null? \n (\n \n \n \n \n \n \n \n \n \n \n \n \n {tips.map((tip) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
    {content.name}{content.activity}{content.country}{content.location}{content.attraction}{content.owner}
    {tip.name}{tip.activity}{tip.country}{tip.location}{tip.parent}{tip.owner}\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + tip.name + \"?\")) deleteHandler(tip)} }\n >\n {content.delete}\n \n
    \n ) : \n
    No Tips
    \n }\n
    \n
    \n );\n}\n\nexport default CreateTipScreen;","import React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport {\n saveShortTip,\n filterAuthorShortTips,\n deleteShortTip,\n} from '../actions/tipActions';\nimport { listAttractions } from '../actions/attractionActions';\nimport { BACKEND_URL } from \"../constants/generalConstants\"\nimport ReactGA from 'react-ga4';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\nimport logo from '../resources/logo192.png';\n\nfunction CreateShortTipScreen(props) {\n const [modalVisible, setModalVisible] = useState(false);\n const [id, setId] = useState('');\n const [parent, setParent] = useState('');\n const [title, setTitle] = useState('');\n const [image, setImage] = useState('');\n const [owner, setOwner] = useState('');\n const [author, setAuthor] = useState('');\n const [newHost, setNewHost] = useState('');\n const [latPos, setLatPos] = useState('init');\n const [longPos, setLongPos] = useState('init');\n\n const [uploading, setUploading] = useState(false);\n\n const shortTipAuthorFilter = useSelector((state) => state.shortTipAuthorFilter);\n const { loading, tips, error } = shortTipAuthorFilter;\n const attractionList = useSelector(state => state.attractionList);\n const {attractions, loadingAttractions, errorAttractions} = attractionList;\n const userSignin = useSelector(state=>state.userSignin);\n const {userInfo} = userSignin;\n\n const shortTipSave = useSelector((state) => state.shortTipSave);\n const {\n loading: loadingSave,\n success: successSave,\n error: errorSave,\n } = shortTipSave;\n\n const shortTipDelete = useSelector((state) => state.shortTipDelete);\n const {\n loading: loadingDelete,\n success: successDelete,\n error: errorDelete,\n } = shortTipDelete;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (successSave) {\n setModalVisible(false);\n }\n if (userInfo) {\n dispatch(filterAuthorShortTips(userInfo.email));\n dispatch(listAttractions());\n } else {\n props.history.push(\"/\");\n }\n\n return () => {\n //\n };\n }, [successSave, successDelete]);\n\n const openModal = (shortTip) => {\n setModalVisible(true);\n setId(shortTip.id);\n setParent(shortTip.parent);\n setTitle(shortTip.title);\n setImage(shortTip.image);\n setOwner(shortTip.owner);\n setAuthor(shortTip.author);\n setNewHost(shortTip.newHost);\n navigator.geolocation.getCurrentPosition(function(position) {\n setLatPos(position.coords.latitude.toString());\n setLongPos(position.coords.longitude.toString());\n });\n };\n\n const submitHandler = (e) => {\n\n if (title && parent && userInfo) {\n var owner = userInfo.email;\n var author = userInfo.name;\n \n dispatch(\n saveShortTip({\n id,\n parent,\n title,\n image,\n owner,\n author,\n newHost,\n latPos,\n longPos,\n })\n );\n } else {\n alert(\"Please, fill out the information!\")\n } \n };\n\n const deleteHandler = (shortTip) => {\n dispatch(deleteShortTip(shortTip.id));\n };\n\n function refreshImage(imgElement, imgURL){ \n var timestamp = new Date().getTime(); \n var el = document.getElementById(imgElement); \n var queryString = \"?t=\" + timestamp;\n el.src = IMAGES_URL + imgURL + queryString; \n } \n\n const rotateCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/cw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const rotateCCWHandler = (image) => {\n axios.post( BACKEND_URL + \"/rotate/ccw/\" + image )\n .then((response) => {\n refreshImage(\"articlePic\", response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const uploadFileHandler = (e) => {\n const file = e.target.files[0];\n const bodyFormData = new FormData();\n bodyFormData.append('image', file);\n setUploading(true);\n axios\n .post( BACKEND_URL + '/upload', bodyFormData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((response) => {\n setImage(response.data);\n setUploading(false);\n })\n .catch((err) => {\n console.log(err);\n setUploading(false);\n });\n };\n\n const calcDate = (unixTime) => {\n var numberUnixTime = parseInt(unixTime);\n var dateResult = new Date(numberUnixTime);\n var dateText = dateResult.toLocaleString();\n return dateText;\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Create a review of our ATTRACTIONS!\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n

    My Reviews

    \n \n
    \n {modalVisible && (\n
    \n
    \n
      \n
    • \n

      Create new Review

      \n
    • \n
    • \n {loadingSave &&
      Loading...
      }\n {errorSave &&
      {errorSave}
      }\n
    • \n\n
    • \n \n {attractions!=null? \n (\n \n ) :\n
      No Attractions
      }\n
    • \n
    • \n
      \n {!image ?   : \n
      \n \"Tip\n { rotateCCWHandler(image) }}>Left\n -Rotate- \n { rotateCWHandler(image) }}>Right\n
      \n }\n
      \n
    • \n
    • \n \n setImage(e.target.value)}\n >\n \n {uploading &&

      Uploading...

      }\n
    • \n
    • \n \n setTitle(e.target.value)}\n >\n
    • \n
    • \n
      \n \n
       
      \n
      \n \n
      \n
       
      \n
      \n \n
      \n\n
      \n
    • \n
    • \n \n
    • \n
    • \n setModalVisible(false)}\n className=\"button secondary\"\n >\n Close\n \n
    • \n
    \n
    \n
    \n )}\n\n { loading?
    \"Attraction
    :\n error?
    {error}
    :\n tips!=null? \n (\n \n \n \n \n \n \n \n \n \n \n {tips.map((shortTip) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
    TitleAttractionAuthorOwner
    \n \"attraction\"\n {shortTip.title}{shortTip.parent}{shortTip.author}{shortTip.owner}{ calcDate(shortTip.id) }\n {' '}\n { if (window.confirm(\"Are you sure to delete \" + shortTip.title + \"?\")) deleteHandler(shortTip)} }\n >\n Delete\n \n
    \n ) : \n
    No Tips
    \n }\n
    \n
    \n );\n}\n\nexport default CreateShortTipScreen;","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport { remember, contact } from '../actions/userActions';\nimport { RECAPTCHA_KEY } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction ContactScreen(props) {\n\n let content = {\n\n English: {\n title : \"Send a message to Comparte Stereo\",\n description : \"Send us a contact message. We will send you back a response.\",\n contactForm : \"Contact Form\",\n name : \"Name\",\n email : \"Email\",\n message : \"Message\",\n sendMessage : \"Send message...\",\n },\n\n Español: {\n title : \"Envía un mensaje a Comparte Stereo\",\n description : \"Envíanos un mensaje de contacto. Te enviaremos una respuesta\",\n contactForm : \"Formulario de contacto\",\n name : \"Nombre\",\n email : \"Email\",\n message : \"Mensaje\",\n sendMessage : \"Enviar mensaje...\",\n }\n\n}; \n\nprops.language === \"en\"\n? (content = content.English)\n: (content = content.Español);\n\n const [email, setEmail] = useState('');\n const [name, setName] = useState('');\n const [message, setMessage] = useState('');\n const [isVerified, setIsVerified] = useState(false);\n const dispatch = useDispatch();\n\n const submitHandler = (e) => {\n if (email && name && message) {\n if (isVerified) {\n e.preventDefault();\n dispatch(contact(email, name, message));\n alert(\"Message sent... We'll send you a response, thank you!\");\n props.history.push(\"/\");\n } else {\n alert(\"Please verify you are a human!\");\n }\n } else {\n alert(\"Please, enter the information!\");\n }\n }\n\n function onChange(value) {\n if (value) {\n setIsVerified(true);\n } else {\n setIsVerified(false);\n }\n }\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {content.title}\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n
    \n
      \n
    • \n

      {content.contactForm}

      \n
    • \n
    • \n \n setName(e.target.value)}\n >\n
    • \n
    • \n \n setEmail(e.target.value)}>\n \n
    • \n
    • \n \n setMessage(e.target.value)}\n >\n
    • \n
    • \n \n
    • \n\n
    \n \n \n
    \n
    \n )\n \n}\nexport default ContactScreen;","import React, { useEffect, useState } from 'react';\nimport {Link} from 'react-router-dom';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { detailsAttraction } from '../actions/attractionActions';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { detailsTip } from '../actions/tipActions';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport DayPicker from 'react-day-picker';\nimport { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport dateFnsFormat from 'date-fns/format';\nimport dateFnsParse from 'date-fns/parse';\nimport { SITE_NAME, SITE_URL, META_TITLE, GA_ID } from '../constants/generalConstants';\n\nfunction TipScreen(props) {\n\n let content = {\n\n English: {\n location : \"Location\",\n status : \"Status\",\n available : \"Available\",\n notAvailable : \"Not available for that date...\",\n howMany : \"How many people are coming?\",\n bookingDate : \"Booking date\",\n bookNow : \"Book Now!\",\n price : \"Price\",\n places : \"places left...\",\n },\n \n Español: {\n location : \"Ubicación\",\n status : \"Estado\",\n available : \"Disponible\",\n notAvailable : \"No disponible para ésa fecha...\",\n howMany : \"Cuántas personas vienen?\",\n bookingDate : \"Fecha de reserva\",\n bookNow : \"Reserva ahora!\",\n price : \"Precio\",\n places : \"lugares libres...\",\n }\n \n }; \n \n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const [selectedDay, setSelectedDay] = useState(new Date());\n const [qty, setQty] = useState(1);\n const tipDetails = useSelector(state => state.tipDetails);\n const {tip, loading, error} = tipDetails;\n const attractionDetails = useSelector(state => state.attractionDetails);\n const {attraction, loading: loadingAttraction, error: errorAttraction} = attractionDetails;\n const dispatch = useDispatch();\n const parse = require('html-react-parser');\n\n useEffect(() => {\n dispatch(detailsTip(props.match.params.tip));\n dispatch(detailsAttraction(props.match.params.attraction));\n\n return () => {\n\n };\n }, []);\n\n const handleAddToCart = () =>{\n if (DateUtils.isDate(selectedDay) && DateUtils.isFutureDay(selectedDay)) {\n props.history.push(\"/cart/\" + props.match.params.attraction + \"?qty=\" + qty + \"=\" + `${dateFnsFormat(selectedDay, FORMAT)}`)\n } else {\n alert(\"Please, select a valid booking date!\");\n }\n };\n\n function addDays(date, days) {\n const copy = new Date(Number(date))\n copy.setDate(date.getDate() + days)\n return copy\n }\n \n const date = new Date();\n const newDate = addDays(date, 2);\n const FORMAT = 'dd/MM/yyyy';\n\n function parseDate(str, format, locale) {\n const parsed = dateFnsParse(str, format, new Date(), { locale });\n if (DateUtils.isDate(parsed)) {\n return parsed;\n }\n return undefined;\n }\n \n function formatDate(date, format, locale) {\n return dateFnsFormat(date, format, { locale });\n }\n \n const article = loading?
     
    :\n error?
    {error}
    :\n !tip?
    Tip not found...
    :\n props.language === \"en\"?\n parse(String(tip.article)):\n parse(String(tip.articleEs));\n\n const articlePic = loading? {SITE_NAME}:\n error? {SITE_NAME}:\n !tip? {SITE_NAME}:\n props.language === \"en\"?\n {tip.imageAlt}:\n {tip.imageAltEs};\n\n const metas = loading? {META_TITLE}:\n error? {META_TITLE}:\n !tip? {META_TITLE}:\n \n { tip.metaName }\n \n ;\n ;\n ;\n \n ;\n \n\n ReactGA.initialize(GA_ID);\n\n return
    \n\n { metas }\n
    \n { articlePic }\n { article }\n
    \n { loadingAttraction?
     
    :\n errorAttraction?
    {error}
    :\n (\n
    \n
    \n
      \n
    • \n {\n props.language === \"en\"?\n

      {attraction.metaName}

      :\n

      {attraction.metaNameEs}

      \n }\n
    • \n
    • \n

      {content.price}: ${attraction.price} USD

      \n
    • \n
    • \n {content.status}: {attraction.maxUsersDay > 0 ? content.available: content.notAvailable}\n
    • \n
    • \n

      {content.howMany} ({attraction.maxUsersDay} {content.places})

      \n \n \n

      {content.bookingDate}:

      \n setSelectedDay(day)}\n />\n \n
    • \n \n
    • \n {\n attraction.maxUsersDay > 0 &&
      \n }\n
    • \n \n
    \n
    \n
    \n )\n }\n\n
    \n}\n\nexport default TipScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction TermsScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Terms and Conditions\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    TERMS AND CONDITIONS -- Comparte Stereo

    \n

    Last updated: January 06, 2021

    \n

    AGREEMENT TO TERMS

    \n

    \n These Terms and Conditions constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and Comparte Stereo (“we,” “us” or “our”), concerning your access to and use of the attractions.tips website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). \n

    \n

    \n You agree that by accessing the Site, you have read, understood, and agree to be bound by all of these Terms and Conditions. If you do not agree with all of these Terms and Conditions, then you are expressly prohibited from using the Site and you must discontinue use immediately.\n

    \n

    \n Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms and Conditions at any time and for any reason. \n

    \n

    \n We will alert you about any changes by updating the “Last updated” date of these Terms and Conditions, and you waive any right to receive specific notice of each such change. \n

    \n

    \n It is your responsibility to periodically review these Terms and Conditions to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms and Conditions by your continued use of the Site after the date such revised Terms and Conditions are posted. \n

    \n

    \n The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. \n

    \n Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. \n

    \n The Site is intended for users who are at least 18 years old. Persons under the age of 18 are not permitted to register for the Site.\n

    \n

    INTELLECTUAL PROPERTY RIGHTS

    \n

    \n Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, foreign jurisdictions, and international conventions. \n

    \n

    The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms and Conditions, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

    \n

    Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

    \n

    USER REPRESENTATIONS

    \n

    By using the Site, you represent and warrant that:

    \n

    (1) all registration information you submit will be true, accurate, current, and complete;

    \n

    (2) you will maintain the accuracy of such information and promptly update such registration information as necessary;

    \n

    (3) you have the legal capacity and you agree to comply with these Terms and Conditions;

    \n

    (4) you are not under the age of 18;

    \n

    (5) not a minor in the jurisdiction in which you reside;

    \n

    (6) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise;

    \n

    (7) you will not use the Site for any illegal or unauthorized purpose;

    \n

    (8) your use of the Site will not violate any applicable law or regulation.

    \n

    If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

    \n

    USER REGISTRATION

    \n

    You may be required to register with the Site. You agree to keep your password confidential and will be responsible for all use of your account and password. We reserve the right to remove, reclaim, or change a username you select if we determine, in our sole discretion, that such username is inappropriate, obscene, or otherwise objectionable.

    \n

    PROHIBITED ACTIVITIES

    \n

    You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

    \n

    As a user of the Site, you agree not to:

    \n

    1. Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.

    \n

    2. Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.

    \n

    3. Use a buying agent or purchasing agent to make purchases on the Site.

    \n

    4. Use the Site to advertise or offer to sell goods and services.

    \n

    5. Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.

    \n

    6. Engage in unauthorized framing of or linking to the Site.

    \n

    7. Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords;

    \n

    8. Make improper use of our support services or submit false reports of abuse or misconduct.

    \n

    9. Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.

    \n

    10. Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.

    \n

    11. Attempt to impersonate another user or person or use the username of another user.

    \n

    12. Sell or otherwise transfer your profile.

    \n

    13. Use any information obtained from the Site in order to harass, abuse, or harm another person.

    \n

    14. Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.

    \n

    15. Decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.

    \n

    16. Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.

    \n

    17. Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.

    \n

    18. Delete the copyright or other proprietary rights notice from any Content.

    \n

    19. Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.

    \n

    20. Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.

    \n

    21. Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).

    \n

    22. Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.

    \n

    23. Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.

    \n

    24. Use the Site in a manner inconsistent with any applicable laws or regulations.

    \n

    USER GENERATED CONTRIBUTIONS

    \n

    The Site may invite you to chat, contribute to, or participate in blogs, message boards, online forums, and other functionality, and may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, \"Contributions\").

    \n

    Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated as non-confidential and non-proprietary. When you create or make available any Contributions, you thereby represent and warrant that:

    \n

    1. The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.

    \n

    2. You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms and Conditions.

    \n

    3. You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms and Conditions.

    \n

    4. Your Contributions are not false, inaccurate, or misleading.

    \n

    5. Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.

    \n

    6. Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).

    \n

    7. Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.

    \n

    8. Your Contributions do not advocate the violent overthrow of any government or incite, encourage, or threaten physical harm against another.

    \n

    9. Your Contributions do not violate any applicable law, regulation, or rule.

    \n

    10. Your Contributions do not violate the privacy or publicity rights of any third party.

    \n

    11. Your Contributions do not contain any material that solicits personal information from anyone under the age of 18 or exploits people under the age of 18 in a sexual or violent manner.

    \n

    12. Your Contributions do not violate any federal or state law concerning child pornography, or otherwise intended to protect the health or well-being of minors.

    \n

    13. Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.

    \n

    14. Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms and Conditions, or any applicable law or regulation.

    \n

    Any use of the Site in violation of the foregoing violates these Terms and Conditions and may result in, among other things, termination or suspension of your rights to use the Site.

    \n

    CONTRIBUTION LICENSE

    \n

    By posting your Contributions to any part of the Site, you automatically grant, and you represent and warrant that you have the right to grant, to us an unrestricted, unlimited, irrevocable, perpetual, non-exclusive, transferable, royalty-free, fully-paid, worldwide right, and license to host, use, copy, reproduce, disclose, sell, resell, publish, broadcast, retitle, archive, store, cache, publicly perform, publicly display, reformat, translate, transmit, excerpt (in whole or in part), and distribute such Contributions (including, without limitation, your image and voice) for any purpose, commercial, advertising, or otherwise, and to prepare derivative works of, or incorporate into other works, such Contributions, and grant and authorize sublicenses of the foregoing. The use and distribution may occur in any media formats and through any media channels.

    \n

    This license will apply to any form, media, or technology now known or hereafter developed, and includes our use of your name, company name, and franchise name, as applicable, and any of the trademarks, service marks, trade names, logos, and personal and commercial images you provide. You waive all moral rights in your Contributions, and you warrant that moral rights have not otherwise been asserted in your Contributions.

    \n

    We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site.

    \n

    You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

    \n

    We have the right, in our sole and absolute discretion, (1) to edit, redact, or otherwise change any Contributions; (2) to re-categorize any Contributions to place them in more appropriate locations on the Site; and (3) to pre-screen or delete any Contributions at any time and for any reason, without notice. We have no obligation to monitor your Contributions.

    \n

    GUIDELINES FOR REVIEWS

    \n

    We may provide you areas on the Site to leave reviews or ratings. When posting a review, you must comply with the following criteria:

    \n

    (1) you should have firsthand experience with the person/entity being reviewed;

    \n

    (2) your reviews should not contain offensive profanity, or abusive, racist, offensive, or hate language;

    \n

    (3) your reviews should not contain discriminatory references based on religion, race, gender, national origin, age, marital status, sexual orientation, or disability;

    \n

    (4) your reviews should not contain references to illegal activity;

    \n

    (5) you should not be affiliated with competitors if posting negative reviews;

    \n

    (6) you should not make any conclusions as to the legality of conduct;

    \n

    (7) you may not post any false or misleading statements;

    \n

    (8) you may not organize a campaign encouraging others to post reviews, whether positive or negative.

    \n

    We may accept, reject, or remove reviews in our sole discretion. We have absolutely no obligation to screen reviews or to delete reviews, even if anyone considers reviews objectionable or inaccurate. Reviews are not endorsed by us, and do not necessarily represent our opinions or the views of any of our affiliates or partners.

    \n

    We do not assume liability for any review or for any claims, liabilities, or losses resulting from any review. By posting a review, you hereby grant to us a perpetual, non-exclusive, worldwide, royalty-free, fully-paid, assignable, and sublicensable right and license to reproduce, modify, translate, transmit by any means, display, perform, and/or distribute all content relating to reviews.

    \n

    MOBILE APPLICATION LICENSE

    \n

    Use License

    \n

    If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms and Conditions.

    \n

    You shall not:

    \n

    (1) decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application;

    \n

    (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application;

    \n

    (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application;

    \n

    (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application;

    \n

    (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended;

    \n

    (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time;

    \n

    (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application;

    \n

    (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail;

    \n

    (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

    \n

    Apple and Android Devices

    \n

    The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site:

    \n

    (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service;

    \n

    (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms and Conditions or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application;

    \n

    (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application;

    \n

    (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties;

    \n

    (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application;

    \n

    (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms and Conditions, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms and Conditions against you as a third-party beneficiary thereof.

    \n

    SUBMISSIONS

    \n

    You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site (\"Submissions\") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you.

    \n

    You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

    \n

    THIRD-PARTY WEBSITES AND CONTENT

    \n

    The Site may contain (or you may be sent via the Site) links to other websites (\"Third-Party Websites\") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties (\"Third-Party Content\").

    \n

    Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content.

    \n

    Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms and Conditions no longer govern.

    \n

    You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party.

    \n

    You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

    \n

    SITE MANAGEMENT

    \n

    We reserve the right, but not the obligation, to:

    \n

    (1) monitor the Site for violations of these Terms and Conditions;

    \n

    (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms and Conditions, including without limitation, reporting such user to law enforcement authorities;

    \n

    (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof;

    \n

    (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems;

    \n

    (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

    \n

    PRIVACY POLICY

    \n

    We care about data privacy and security. Please review our Privacy Policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms and Conditions. Please be advised the Site is hosted in the United States.

    \n

    If you access the Site from the European Union, Asia, or any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you expressly consent to have your data transferred to and processed in the United States.

    \n

    Further, we do not knowingly accept, request, or solicit information from children or knowingly market to children. Therefore, in accordance with the U.S. Children’s Online Privacy Protection Act, if we receive actual knowledge that anyone under the age of 13 has provided personal information to us without the requisite and verifiable parental consent, we will delete that information from the Site as quickly as is reasonably practical.

    \n

    DIGITAL MILLENNIUM COPYRIGHT ACT (DMCA) NOTICE AND POLICY

    \n

    Notifications

    \n

    We respect the intellectual property rights of others. If you believe that any material available on or through the Site infringes upon any copyright you own or control, please immediately notify our Designated Copyright Agent using the contact information provided below (a “Notification”).

    \n

    A copy of your Notification will be sent to the person who posted or stored the material addressed in the Notification. Please be advised that pursuant to federal law you may be held liable for damages if you make material misrepresentations in a Notification. Thus, if you are not sure that material located on or linked to by the Site infringes your copyright, you should consider first contacting an attorney.

    \n

    All Notifications should meet the requirements of DMCA 17 U.S.C. § 512(c)(3) and include the following information:

    \n

    (1) A physical or electronic signature of a person authorized to act on behalf of the owner of an exclusive right that is allegedly infringed;

    \n

    (2) identification of the copyrighted work claimed to have been infringed, or, if multiple copyrighted works on the Site are covered by the Notification, a representative list of such works on the Site;

    \n

    (3) identification of the material that is claimed to be infringing or to be the subject of infringing activity and that is to be removed or access to which is to be disabled, and information reasonably sufficient to permit us to locate the material;

    \n

    (4) information reasonably sufficient to permit us to contact the complaining party, such as an address, telephone number, and, if available, an email address at which the complaining party may be contacted;

    \n

    (5) a statement that the complaining party has a good faith belief that use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law;

    \n

    (6) a statement that the information in the notification is accurate, and under penalty of perjury, that the complaining party is authorized to act on behalf of the owner of an exclusive right that is allegedly infringed upon.

    \n

    Counter Notification

    \n

    If you believe your own copyrighted material has been removed from the Site as a result of a mistake or misidentification, you may submit a written counter notification to travel@attractions.tips using the contact information provided below (a “Counter Notification”).

    \n

    To be an effective Counter Notification under the DMCA, your Counter Notification must include substantially the following:

    \n

    (1) identification of the material that has been removed or disabled and the location at which the material appeared before it was removed or disabled;

    \n

    (2) a statement that you consent to the jurisdiction of the Federal District Court in which your address is located, or if your address is outside the United States, for any judicial district in which we are located;

    \n

    (3) a statement that you will accept service of process from the party that filed the Notification or the party's agent;

    \n

    (4) your name, address, and telephone number;

    \n

    (5) a statement under penalty of perjury that you have a good faith belief that the material in question was removed or disabled as a result of a mistake or misidentification of the material to be removed or disabled;

    \n

    (6) your physical or electronic signature.

    \n

    If you send us a valid, written Counter Notification meeting the requirements described above, we will restore your removed or disabled material, unless we first receive notice from the party filing the Notification informing us that such party has filed a court action to restrain you from engaging in infringing activity related to the material in question.

    \n

    Please note that if you materially misrepresent that the disabled or removed content was removed by mistake or misidentification, you may be liable for damages, including costs and attorney's fees. Filing a false Counter Notification constitutes perjury.

    \n

    \n Designated Copyright Agent

    \n Copyright Agent

    \n Attn: Copyright Agent

    \n travel@attractions.tips

    \n

    \n

    COPYRIGHT INFRINGEMENTS

    \n

    We respect the intellectual property rights of others. If you believe that any material available on or through the Site infringes upon any copyright you own or control, please immediately notify us using the contact information provided below (a “Notification”). A copy of your Notification will be sent to the person who posted or stored the material addressed in the Notification.

    \n

    Please be advised that pursuant to federal law you may be held liable for damages if you make material misrepresentations in a Notification. Thus, if you are not sure that material located on or linked to by the Site infringes your copyright, you should consider first contacting an attorney.

    \n

    TERM AND TERMINATION

    \n

    These Terms and Conditions shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS AND CONDITIONS, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS AND CONDITIONS OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

    \n

    If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party.

    \n

    In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

    \n

    MODIFICATIONS AND INTERRUPTIONS

    \n

    We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time.

    \n

    We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

    \n

    We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors.

    \n

    We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site.

    \n

    Nothing in these Terms and Conditions will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

    \n

    GOVERNING LAW

    \n

    These Terms and Conditions and your use of the Site are governed by and construed in accordance with the laws of the Country of Colombia applicable to agreements made and to be entirely performed within the City/Commonwealth of Medellin, without regard to its conflict of law principles.

    \n

    DISPUTE RESOLUTION

    \n

    To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms and Conditions (each a \"Dispute\" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least 7 days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

    \n

    Binding Arbitration

    \n

    If the Parties are unable to resolve a Dispute through informal negotiations, the Dispute (except those Disputes expressly excluded below) will be finally and exclusively resolved by binding arbitration. YOU UNDERSTAND THAT WITHOUT THIS PROVISION, YOU WOULD HAVE THE RIGHT TO SUE IN COURT AND HAVE A JURY TRIAL.

    \n

    The arbitration shall be commenced and conducted under the Commercial Arbitration Rules of the American Arbitration Association (\"AAA\") and, where appropriate, the AAA’s Supplementary Procedures for Consumer Related Disputes (\"AAA Consumer Rules\"), both of which are available at the AAA website www.adr.org.

    \n

    Your arbitration fees and your share of arbitrator compensation shall be governed by the AAA Consumer Rules and, where appropriate, limited by the AAA Consumer Rules.

    \n

    The arbitration may be conducted in person, through the submission of documents, by phone, or online. The arbitrator will make a decision in writing, but need not provide a statement of reasons unless requested by either Party.

    \n

    The arbitrator must follow applicable law, and any award may be challenged if the arbitrator fails to do so. Except where otherwise required by the applicable AAA rules or applicable law, the arbitration will take place in Medellin City, Colombia.

    \n

    Except as otherwise provided herein, the Parties may litigate in court to compel arbitration, stay proceedings pending arbitration, or to confirm, modify, vacate, or enter judgment on the award entered by the arbitrator.

    \n

    If for any reason, a Dispute proceeds in court rather than arbitration, the Dispute shall be commenced or prosecuted in the city and federal courts located in Medellin City, Colombia, and the Parties hereby consent to, and waive all defenses of lack of personal jurisdiction, and forum non conveniens with respect to venue and jurisdiction in such city and federal courts.

    \n

    Application of the United Nations Convention on Contracts for the International Sale of Goods and the the Uniform Computer Information Transaction Act (UCITA) are excluded from these Terms and Conditions.

    \n

    In no event shall any Dispute brought by either Party related in any way to the Site be commenced more than one year after the cause of action arose. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

    \n

    Restrictions

    \n

    The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

    \n

    Exceptions to Informal Negotiations and Arbitration

    \n

    The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief.

    \n

    If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

    \n

    CORRECTIONS

    \n

    There may be information on the Site that contains typographical errors, inaccuracies, or omissions that may relate to the Site, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

    \n

    DISCLAIMER

    \n

    THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.

    \n

    AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

    \n

    LIMITATIONS OF LIABILITY

    \n

    IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

    \n

    NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE FIRST MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING.

    \n

    INDEMNIFICATION

    \n

    You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) your Contributions; (2) use of the Site; (3) breach of these Terms and Conditions; (4) any breach of your representations and warranties set forth in these Terms and Conditions; (5) your violation of the rights of a third party, including but not limited to intellectual property rights; or (6) any overt harmful act toward any other user of the Site with whom you connected via the Site.

    \n

    Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

    \n

    USER DATA

    \n

    We will maintain certain data that you transmit to the Site for the purpose of managing the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site.

    \n

    You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

    \n

    ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

    \n

    Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing.

    \n

    YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE.

    \n

    You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

    \n

    CALIFORNIA USERS AND RESIDENTS

    \n

    If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

    \n

    MISCELLANEOUS

    \n

    These Terms and Conditions and any policies or operating rules posted by us on the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms and Conditions shall not operate as a waiver of such right or provision.

    \n

    These Terms and Conditions operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control.

    \n

    If any provision or part of a provision of these Terms and Conditions is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms and Conditions and does not affect the validity and enforceability of any remaining provisions.

    \n

    There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms and Conditions or use of the Site. You agree that these Terms and Conditions will not be construed against us by virtue of having drafted them.

    \n

    You hereby waive any and all defenses you may have based on the electronic form of these Terms and Conditions and the lack of signing by the parties hereto to execute these Terms and Conditions.

    \n

    CONTACT US

    \n

    In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

    \n

    \n Comparte Stereo

    \n compartestereo@gmail.com\n

    \n
    \n
    \n )\n\n}\nexport default TermsScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction DisclaimerScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Disclaimer Policy\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    DISCLAIMER -- Comparte Stereo

    \n

    Last updated: January 06, 2021

    \n

    INTRODUCTION

    \n

    The information provided by Comparte Stereo (“we,” “us” or “our”) on compartestereo.com (the “Site”) is for general informational purposes only. All information on the Site is provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability or completeness of any information on the Site.

    \n

    Under no circumstance shall we have any liability to you for any loss or damage of any kind incurred as a result of the use of the site or reliance on any information provided on the site. Your use of the site and your reliance on any information on the site is solely at your own risk.

    \n

    EXTERNAL LINKS DISCLAIMER FOR WEBSITE

    \n

    The Site may contain (or you may be sent through the Site links to other websites or content belonging to or originating from third parties or links to websites and features in banners or other advertising. Such external links are not investigated, monitored, or checked for accuracy, adequacy, validity, reliability, availability or completeness by us.

    \n

    We do not warrant, endorse, guarantee, or assume responsibility for the accuracy or reliability of any information offered by third-party websites linked through the site or any website or feature linked in any banner or other advertising. We will not be a party to or in any way be responsible for monitoring any transaction between you and third-party providers of products or services.

    \n

    AFFILIATES DISCLAIMER FOR WEBSITE

    \n

    The Site may contain links to affiliate websites, and we receive an affiliate commission for any purchases made by you on the affiliate website using such links.

    \n

    TESTIMONIALS DISCLAIMER FOR WEBSITE

    \n

    The Site may contain testimonials by users of our products and/or services. These testimonials reflect the real-life experiences and opinions of such users. However, the experiences are personal to those particular users, and may not necessarily be representative of all users of our products and/or services. We do not claim, and you should not assume, that all users will have the same experiences. Your individual results may vary.

    \n

    The testimonials on the Site are submitted in various forms such as text, audio and/or video, and are reviewed by us before being posted. They appear on the Site verbatim as given by the users, except for the correction of grammar or typing errors. Some testimonials may have been shortened for the sake of brevity where the full testimonial contained extraneous information not relevant to the general public.

    \n

    The views and opinions contained in the testimonials belong solely to the individual user and do not reflect our views and opinions. We are not affiliated with users who provide testimonials, and users are not paid or otherwise compensated for their testimonials.

    \n

    The testimonials on the Site are not intended, nor should they be construed, as claims that our products and/or services can be used to diagnose, treat, mitigate, cure, prevent or otherwise be used for any disease or medical condition. No testimonials have been clinically proven or evaluated.

    \n
    \n
    \n )\n\n}\nexport default DisclaimerScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction PrivacyPolicyScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Privacy Policy\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    PRIVACY POLICY -- Comparte Stereo

    \n

    Last updated: January 6, 2021

    \n

    INTRODUCTION

    \n

    Comparte Stereo (“we” or “us” or “our”) respects the privacy of our users (“user” or “you”). This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you visit our website attractions.tips, including any other media form, media channel, mobile website, or mobile application related or connected thereto (collectively, the “Site”). Please read this privacy policy carefully. If you do not agree with the terms of this privacy policy, please do not access the site.

    \n

    We reserve the right to make changes to this Privacy Policy at any time and for any reason. We will alert you about any changes by updating the “Last Updated” date of this Privacy Policy. Any changes or modifications will be effective immediately upon posting the updated Privacy Policy on the Site, and you waive the right to receive specific notice of each such change or modification.

    \n

    You are encouraged to periodically review this Privacy Policy to stay informed of updates. You will be deemed to have been made aware of, will be subject to, and will be deemed to have accepted the changes in any revised Privacy Policy by your continued use of the Site after the date such revised Privacy Policy is posted.

    \n

    COLLECTION OF YOUR INFORMATION

    \n

    We may collect information about you in a variety of ways. The information we may collect on the Site includes:

    \n

    Personal Data

    \n

    Personally identifiable information, such as your name, shipping address, email address, and telephone number, and demographic information, such as your age, gender, hometown, and interests, that you voluntarily give to us when you register with the Site or when you choose to participate in various activities related to the Site , such as online chat and message boards. You are under no obligation to provide us with personal information of any kind, however your refusal to do so may prevent you from using certain features of the Site.

    \n

    Derivative Data

    \n

    Information our servers automatically collect when you access the Site, such as your IP address, your browser type, your operating system, your access times, and the pages you have viewed directly before and after accessing the Site.

    \n

    Financial Data

    \n

    Financial information, such as data related to your payment method (e.g. valid credit card number, card brand, expiration date) that we may collect when you purchase, order, return, exchange, or request information about our services from the Site. We store only very limited, if any, financial information that we collect. Otherwise, all financial information is stored by our payment processor, Paypal, and you are encouraged to review their privacy policy and contact them directly for responses to your questions.

    \n

    Mobile Device Data

    \n

    Device information, such as your mobile device ID, model, and manufacturer, and information about the location of your device, if you access the Site from a mobile device.

    \n

    USE OF YOUR INFORMATION

    \n

    Having accurate information about you permits us to provide you with a smooth, efficient, and customized experience. Specifically, we may use information collected about you via the Site to:

    \n

    Administer sweepstakes, promotions, and contests.

    \n

    Assist law enforcement and respond to subpoena.

    \n

    Compile anonymous statistical data and analysis for use internally or with third parties.

    \n

    Create and manage your account.

    \n

    Deliver targeted advertising, coupons, newsletters, and other information regarding promotions and the Site to you.

    \n

    Email you regarding your account or order.

    \n

    Fulfill and manage purchases, orders, payments, and other transactions related to the Site.

    \n

    Generate a personal profile about you to make future visits to the Site more personalized.

    \n

    Increase the efficiency and operation of the Site.

    \n

    Monitor and analyze usage and trends to improve your experience with the Site.

    \n

    Notify you of updates to the Site.

    \n

    Offer new products, services, and/or recommendations to you.

    \n

    Perform other business activities as needed.

    \n

    Prevent fraudulent transactions, monitor against theft, and protect against criminal activity.

    \n

    Process payments and refunds.

    \n

    Request feedback and contact you about your use of the Site.

    \n

    Resolve disputes and troubleshoot problems.

    \n

    Respond to product and customer service requests.

    \n

    Send you a newsletter.

    \n

    Solicit support for the Site.

    \n

    DISCLOSURE OF YOUR INFORMATION

    \n

    We may share information we have collected about you in certain situations. Your information may be disclosed as follows:

    \n

    By Law or to Protect Rights

    \n

    If we believe the release of information about you is necessary to respond to legal process, to investigate or remedy potential violations of our policies, or to protect the rights, property, and safety of others, we may share your information as permitted or required by any applicable law, rule, or regulation. This includes exchanging information with other entities for fraud protection and credit risk reduction.

    \n

    Third-Party Service Providers

    \n

    We may share your information with third parties that perform services for us or on our behalf, including payment processing, data analysis, email delivery, hosting services, customer service, and marketing assistance.

    \n

    Marketing Communications

    \n

    With your consent, or with an opportunity for you to withdraw consent, we may share your information with third parties for marketing purposes, as permitted by law.

    \n

    Interactions with Other Users

    \n

    If you interact with other users of the Site, those users may see your name, profile photo, and descriptions of your activity, including sending invitations to other users, chatting with other users, liking posts, following blogs.

    \n

    Online Postings

    \n

    When you post comments, contributions or other content to the Site, your posts may be viewed by all users and may be publicly distributed outside the Site in perpetuity.

    \n

    Third-Party Advertisers

    \n

    We may use third-party advertising companies to serve ads when you visit the Site. These companies may use information about your visits to the Site and other websites that are contained in web cookies in order to provide advertisements about goods and services of interest to you.

    \n

    Affiliates

    \n

    We may share your information with our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include our parent company and any subsidiaries, joint venture partners or other companies that we control or that are under common control with us.

    \n

    Business Partners

    \n

    We may share your information with our business partners to offer you certain products, services or promotions.

    \n

    Other Third Parties

    \n

    We may share your information with advertisers and investors for the purpose of conducting general business analysis. We may also share your information with such third parties for marketing purposes, as permitted by law.

    \n

    Sale or Bankruptcy

    \n

    If we reorganize or sell all or a portion of our assets, undergo a merger, or are acquired by another entity, we may transfer your information to the successor entity. If we go out of business or enter bankruptcy, your information would be an asset transferred or acquired by a third party. You acknowledge that such transfers may occur and that the transferee may decline honor commitments we made in this Privacy Policy.

    \n

    We are not responsible for the actions of third parties with whom you share personal or sensitive data, and we have no authority to manage or control third-party solicitations. If you no longer wish to receive correspondence, emails or other communications from third parties, you are responsible for contacting the third party directly.

    \n

    TRACKING TECHNOLOGIES

    \n

    Cookies and Web Beacons

    \n

    We may use cookies, web beacons, tracking pixels, and other tracking technologies on the Site to help customize the Site and improve your experience. When you access the Site, your personal information is not collected through the use of tracking technology. Most browsers are set to accept cookies by default. You can remove or reject cookies, but be aware that such action could affect the availability and functionality of the Site. You may not decline web beacons. However, they can be rendered ineffective by declining all cookies or by modifying your web browser’s settings to notify you each time a cookie is tendered, permitting you to accept or decline cookies on an individual basis.

    \n

    We may use cookies, web beacons, tracking pixels, and other tracking technologies on the Site to help customize the Site and improve your experience. For more information on how we use cookies, please refer to our Cookie Policy posted on the Site, which is incorporated into this Privacy Policy. By using the Site, you agree to be bound by our Cookie Policy.

    \n

    Website Analytics

    \n

    We may also partner with selected third-party vendors, such as Google Analytics, to allow tracking technologies and remarketing services on the Site through the use of first party cookies and third-party cookies, to, among other things, analyze and track users’ use of the Site, determine the popularity of certain content and better understand online activity. By accessing the Site, you consent to the collection and use of your information by these third-party vendors. You are encouraged to review their privacy policy and contact them directly for responses to your questions. We do not transfer personal information to these third-party vendors. However, if you do not want any information to be collected and used by tracking technologies, you can visit the third-party vendor.

    \n

    You should be aware that getting a new computer, installing a new browser, upgrading an existing browser, or erasing or otherwise altering your browser’s cookies files may also clear certain opt-out cookies, plug-ins, or settings.

    \n

    THIRD-PARTY WEBSITES

    \n

    The Site may contain links to third-party websites and applications of interest, including advertisements and external services, that are not affiliated with us. Once you have used these links to leave the Site, any information you provide to these third parties is not covered by this Privacy Policy, and we cannot guarantee the safety and privacy of your information. Before visiting and providing any information to any third-party websites, you should inform yourself of the privacy policies and practices (if any) of the third party responsible for that website, and should take those steps necessary to, in your discretion, protect the privacy of your information. We are not responsible for the content or privacy and security practices and policies of any third parties, including other sites, services or applications that may be linked to or from the Site.

    \n

    SECURITY OF YOUR INFORMATION

    \n

    We use administrative, technical, and physical security measures to help protect your personal information. While we have taken reasonable steps to secure the personal information you provide to us, please be aware that despite our efforts, no security measures are perfect or impenetrable, and no method of data transmission can be guaranteed against any interception or other type of misuse. Any information disclosed online is vulnerable to interception and misuse by unauthorized parties. Therefore, we cannot guarantee complete security if you provide personal information.

    \n

    POLICY FOR CHILDREN

    \n

    We do not knowingly solicit information from or market to children under the age of 13. If you become aware of any data we have collected from children under age 13, please contact us using the contact information provided below.

    \n

    CONTROLS FOR DO-NOT-TRACK FEATURES

    \n

    Most web browsers and some mobile operating systems include a Do-Not-Track (“DNT”) feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. No uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this Privacy Policy./Most web browsers and some mobile operating systems include a Do-Not-Track (“DNT”) feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. If you set the DNT signal on your browser, we will respond to such DNT browser signals.

    \n

    OPTIONS REGARDING YOUR INFORMATION

    \n

    Account Information

    \n

    You may at any time review or change the information in your account or terminate your account by:

    \n

    - Logging into your account settings and updating your account

    \n

    - Contacting us using the contact information provided below

    \n

    Upon your request to terminate your account, we will deactivate or delete your account and information from our active databases. However, some information may be retained in our files to prevent fraud, troubleshoot problems, assist with any investigations, enforce our Terms of Use and/or comply with legal requirements.

    \n

    Emails and Communications

    \n

    If you no longer wish to receive correspondence, emails, or other communications from us, you may opt-out by:

    \n

    - Contacting us using the contact information provided below

    \n

    If you no longer wish to receive correspondence, emails, or other communications from third parties, you are responsible for contacting the third party directly.

    \n

    CALIFORNIA PRIVACY RIGHTS

    \n

    California Civil Code Section 1798.83, also known as the “Shine The Light” law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

    \n

    If you are under 18 years of age, reside in California, and have a registered account with the Site, you have the right to request removal of unwanted data that you publicly post on the Site. To request removal of such data, please contact us using the contact information provided below, and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Site, but please be aware that the data may not be completely or comprehensively removed from our systems.

    \n

    CONTACT US

    \n

    If you have questions or comments about this Privacy Policy, please contact us at:

    \n

    \n Comparte Stereo

    \n compartestereo@gmail.com\n

    \n\n
    \n
    \n )\n\n}\nexport default PrivacyPolicyScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction CookiePolicyScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Cookie Policy\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    COOKIE POLICY -- Comparte Stereo

    \n

    Last updated: January 06, 2021

    \n

    INTRODUCTION

    \n

    Comparte Stereo (“we” or “us” or “our”) may use cookies, web beacons, tracking pixels, and other tracking technologies when you visit our website compartestereo.com, including any other media form, media channel, mobile website, or mobile application related or connected thereto (collectively, the “Site”) to help customize the Site and improve your experience.

    \n

    We reserve the right to make changes to this Cookie Policy at any time and for any reason. We will alert you about any changes by updating the “Last Updated” date of this Cookie Policy. Any changes or modifications will be effective immediately upon posting the updated Cookie Policy on the Site, and you waive the right to receive specific notice of each such change or modification.

    \n

    You are encouraged to periodically review this Cookie Policy to stay informed of updates. You will be deemed to have been made aware of, will be subject to, and will be deemed to have accepted the changes in any revised Cookie Policy by your continued use of the Site after the date such revised Cookie Policy is posted.

    \n

    USE OF COOKIES

    \n

    A “cookie” is a string of information which assigns you a unique identifier that we store on your computer. Your browser then provides that unique identifier to use each time you submit a query to the Site. We use cookies on the Site to, among other things, keep track of services you have used, record registration information, record your user preferences, keep you logged into the Site, facilitate purchase procedures, and track the pages you visit. Cookies help us understand how the Site is being used and improve your user experience.

    \n

    TYPES OF COOKIES

    \n

    The following types of cookies may be used when you visit the Site:

    \n

    Analytics Cookies

    \n

    Analytics cookies monitor how users reached the Site, and how they interact with and move around once on the Site. These cookies let us know what features on the Site are working the best and what features on the Site can be improved.

    \n

    Our Cookies

    \n

    Our cookies are “first-party cookies”, and can be either permanent or temporary. These are necessary cookies, without which the Site won't work properly or be able to provide certain features and functionalities. Some of these may be manually disabled in your browser, but may affect the functionality of the Site.

    \n

    Personalization Cookies

    \n

    Personalization cookies are used to recognize repeat visitors to the Site. We use these cookies to record your browsing history, the pages you have visited, and your settings and preferences each time you visit the Site.

    \n

    Security Cookies

    \n

    Security cookies help identify and prevent security risks. We use these cookies to authenticate users and protect user data from unauthorized parties.

    \n

    Site Management Cookies

    \n

    Site management cookies are used to maintain your identity or session on the Site so that you are not logged off unexpectedly, and any information you enter is retained from page to page. These cookies cannot be turned off individually, but you can disable all cookies in your browser.

    \n

    Third-Party Cookies

    \n

    Third-party cookies may be place on your computer when you visit the Site by companies that run certain services we offer. These cookies allow the third parties to gather and track certain information about you. These cookies can be manually disabled in your browser.

    \n

    CONTROL OF COOKIES

    \n

    Most browsers are set to accept cookies by default. However, you can remove or reject cookies in your browser’s settings. Please be aware that such action could affect the availability and functionality of the Site.

    \n

    For more information on how to control cookies, check your browser or device’s settings for how you can control or reject cookies, or visit the following links:

    \n

    \n Apple Safari

    \n Google Chrome

    \n Microsoft Edge

    \n Microsoft Internet Explorer

    \n Mozilla Firefox

    \n Opera

    \n Android (Chrome)

    \n Blackberry

    \n Iphone or Ipad (Chrome)

    \n Iphone or Ipad (Safari)

    \n

    \n

    OTHER TRACKING TECHNOLOGIES

    \n

    In addition to cookies, we may use web beacons, pixel tags, and other tracking technologies on the Site to help customize the Site and improve your experience. A “web beacon” or “pixel tag” is tiny object or image embedded in a web page or email. They are used to track the number of users who have visited particular pages and viewed emails, and acquire other statistical data. They collect only a limited set of data, such as a cookie number, time and date of page or email view, and a description of the page or email on which they reside. Web beacons and pixel tags cannot be declined. However, you can limit their use by controlling the cookies that interact with them.

    \n

    PRIVACY POLICY

    \n

    For more information about how we use information collected by cookies and other tracking technologies, please refer to our Privacy Policy on the Site. This Cookie Policy is part of and is incorporated into our Privacy Policy. By using the Site, you agree to be bound by this Cookie Policy and our Privacy Policy.

    \n

    CONTACT US

    \n

    If you have questions or comments about this Cookie Policy, please contact us at:

    \n

    \n Comparte Stereo

    \n compartestereo@gmail.com\n

    \n
    \n
    \n )\n\n}\nexport default CookiePolicyScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction ReturnPolicyScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Return Policy\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    RETURN POLICY -- Comparte Stereo

    \n

    Last updated: January 06, 2021

    \n

    Thank you for your booking. We hope you are happy with your booking. However, if you are not completely satisfied with your booking for any reason, you may cancel it for a full refund. Please see below for more information on our return policy.

    \n

    CANCELLATIONS

    \n

    All booking cancellations must be before 2 days to the activity date or it would be placed automatically if the booked activity can not be done because of safety reasons or the activity operator has a last-minute major problem and the service is not available.

    \n

    CANCELLATION PROCESS

    \n

    To cancel a booking, please email customer service at travel@attractions.tips to obtain a cancellation and a refund.

    \n

    REFUNDS

    \n

    After receiving your request, please allow at least 2 days to process your booking cancellation. Refunds may take 1-2 billing cycles to appear on your credit card statement, depending on your credit card company. We will notify you by email when your cancellation has been processed.

    \n

    QUESTIONS

    \n

    If you have any questions concerning our return policy, please contact us at:

    \n

    compartestereo@gmail.com

    \n
    \n
    \n )\n\n}\nexport default ReturnPolicyScreen;","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, GA_ID } from '../constants/generalConstants';\n\nfunction PolicyScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n Policy\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n

    Our Policy:

    \n

    Terms of Use



    \n

    Privacy Policy



    \n

    Cookie Policy



    \n

    Disclaimer



    \n

    Return Policy



    \n
    \n
    \n )\n\n}\nexport default PolicyScreen;","import React, { useEffect, useState } from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport { detailsShortTip } from '../actions/tipActions';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { detailsAttraction } from '../actions/attractionActions';\nimport DayPicker from 'react-day-picker';\nimport { DateUtils } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport dateFnsFormat from 'date-fns/format';\nimport dateFnsParse from 'date-fns/parse';\nimport { SITE_NAME, META_TITLE, GA_ID } from '../constants/generalConstants';\n\nfunction ShortTipScreen(props) {\n let content = {\n\n English: {\n location : \"Location\",\n status : \"Status\",\n available : \"Available\",\n notAvailable : \"Not available for that date...\",\n howMany : \"How many people are coming?\",\n bookingDate : \"Booking date\",\n bookNow : \"Book Now!\",\n price : \"Price\",\n places : \"places left...\",\n },\n \n Español: {\n location : \"Ubicación\",\n status : \"Estado\",\n available : \"Disponible\",\n notAvailable : \"No disponible para ésa fecha...\",\n howMany : \"Cuántas personas vienen?\",\n bookingDate : \"Fecha de reserva\",\n bookNow : \"Reserva ahora!\",\n price : \"Precio\",\n places : \"lugares libres...\",\n }\n \n }; \n \n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const [isNewAttraction, setIsNewAttraction] = useState(true);\n const [selectedDay, setSelectedDay] = useState(new Date());\n const [qty, setQty] = useState(1);\n const shortTipDetails = useSelector(state => state.shortTipDetails);\n const {shortTip, loading, error} = shortTipDetails;\n const attractionDetails = useSelector(state => state.attractionDetails);\n const {attraction, loading: loadingAttraction, error: errorAttraction} = attractionDetails;\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(detailsShortTip(props.match.params.id));\n if (props.match.params.attraction != \"new-attraction\") {\n dispatch(detailsAttraction(props.match.params.attraction));\n setIsNewAttraction(false);\n }\n return () => {\n\n };\n }, []);\n\n const articlePic = loading? {SITE_NAME}:\n error? {SITE_NAME}:\n !shortTip? {SITE_NAME}:\n {shortTip.title}\n\n const metas = loading? {META_TITLE}:\n error? {META_TITLE}:\n !shortTip?{META_TITLE}:\n !attraction?{META_TITLE}:\n \n { shortTip.title } | {attraction.name}\n \n ;\n ;\n ;\n \n ;\n \n\n const handleAddToCart = () =>{\n if (DateUtils.isDate(selectedDay) && DateUtils.isFutureDay(selectedDay)) {\n props.history.push(\"/cart/\" + props.match.params.attraction + \"?qty=\" + qty + \"=\" + `${dateFnsFormat(selectedDay, FORMAT)}`)\n } else {\n alert(\"Please, select a valid booking date!\");\n }\n };\n\n function addDays(date, days) {\n const copy = new Date(Number(date))\n copy.setDate(date.getDate() + days)\n return copy\n }\n\n const date = new Date();\n const newDate = addDays(date, 2);\n const FORMAT = 'dd/MM/yyyy';\n\n function parseDate(str, format, locale) {\n const parsed = dateFnsParse(str, format, new Date(), { locale });\n if (DateUtils.isDate(parsed)) {\n return parsed;\n }\n return undefined;\n }\n \n function formatDate(date, format, locale) {\n return dateFnsFormat(date, format, { locale });\n }\n\n ReactGA.initialize(GA_ID);\n\n return
    \n\n { metas }\n
    \n { articlePic }\n
     
    \n {\n loading?
     
    \n :\n

    { shortTip.title }

    \n }\n
    \n\n { loadingAttraction?
     
    :\n errorAttraction?
    {error}
    :\n isNewAttraction?
     
    :\n
    \n
    \n
      \n
    • \n {\n props.language === \"en\"?\n

      {attraction.metaName}

      :\n

      {attraction.metaNameEs}

      \n }\n
    • \n
    • \n

      {content.price}: ${attraction.price} USD

      \n
    • \n
    • \n {content.status}: {attraction.maxUsersDay > 0 ? content.available: content.notAvailable}\n
    • \n
    • \n

      {content.howMany} ({attraction.maxUsersDay} {content.places})

      \n \n\n

      {content.bookingDate}:

      \n setSelectedDay(day)}\n />\n\n
    • \n\n
    • \n {\n attraction.maxUsersDay > 0 &&
      \n }\n
    • \n\n
    \n
    \n
    \n }\n
    \n}\n\nexport default ShortTipScreen;","import React, { useEffect } from 'react';\nimport {Link} from 'react-router-dom';\nimport { IMAGES_URL } from '../constants/generalConstants';\nimport ReactGA from 'react-ga4';\nimport MetaTags from 'react-meta-tags';\nimport logo from '../resources/logo192.png';\nimport { SITE_NAME, SITE_URL, META_TITLE, META_DESCRIPTION, GA_ID } from '../constants/generalConstants';\n\nfunction NotFoundScreen({ props }) {\n\n ReactGA.initialize(GA_ID);\n\n return (\n
    \n \n {META_TITLE}\n \n ;\n ;\n ;\n \n ;\n ;\n \n
    \n \"Attraction\n

    The page you're looking for doesn't exist!

    \n
    \n
    \n )\n\n}\nexport default NotFoundScreen;","import React, { useEffect, useState } from 'react';\nimport CheckoutSteps from '../components/CheckoutSteps';\nimport { PAYU_MERCHANT_ID, PAYU_API_KEY } from '../constants/generalConstants';\n\nfunction ResponseScreen(props) {\n let content = {\n\n English: {\n description : \"Description\",\n paymentResult : \"Payment Result\",\n paymentMethod : \"Payment Method\",\n cart : \"Booking\",\n name : \"Name\",\n contactNumber : \"Contact number\",\n nationality : \"Nationality\",\n details : \"Description\",\n date : \"Booking date\",\n thanks : \"Thanks for placing your booking!\",\n placeOrder : \"Place booking\",\n summary : \"Order Summary\",\n total : \"Order Total\",\n price : \"Price each\",\n paid : \"Paid\",\n notPaid : \"Not paid\",\n payPayU : \"Pay with PayU\",\n },\n \n Español: {\n description : \"Descripcion\",\n paymentResult : \"Resultado del Pago\",\n paymentMethod : \"Método de pago\",\n cart : \"Lista de reserva\",\n name : \"Nombre\",\n contactNumber : \"Número de contacto\",\n nationality : \"Nacionalidad\",\n details : \"Descripcion\",\n date : \"Fecha de reserva\",\n thanks : \"Gracias por reservar!\",\n placeOrder : \"Confirmar reserva\",\n summary : \"Resumen de la reserva\",\n total : \"Total\",\n price : \"Precio cada uno\",\n paid : \"Pagado\",\n notPaid : \"No pagado\",\n payPayU : \"Pagar con PayU\",\n }\n \n }; \n \n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n \n let payUresponse = {\n merchantId : props.location.search? String(props.location.search.split(\"&\")[0].split(\"=\")[1]): \"\",\n referenceCode : props.location.search? String(props.location.search.split(\"&\")[8].split(\"=\")[1]): \"\",\n tx_value : props.location.search? String(props.location.search.split(\"&\")[28].split(\"=\")[1]): \"\",\n currency : props.location.search? String(props.location.search.split(\"&\")[30].split(\"=\")[1]): \"\",\n transactionState : props.location.search? String(props.location.search.split(\"&\")[5].split(\"=\")[1]): \"\",\n\n description : props.location.search? String(props.location.search.split(\"&\")[11].split(\"=\")[1]): \"\",\n signature : props.location.search? String(props.location.search.split(\"&\")[19].split(\"=\")[1]): \"\",\n\n status : props.location.search? String(props.location.search.split(\"&\")[7].split(\"=\")[1]): \"\",\n referenceValue : props.location.search? String(props.location.search.split(\"&\")[8].split(\"=\")[1]): \"\",\n date : props.location.search? String(props.location.search.split(\"&\")[42].split(\"=\")[1]): \"\",\n }\n\n var md5 = require(\"md5\");\n\n useEffect(() => {\n if (props.match.path == \"/:lang/response/:id\" && payUresponse.signature == md5(PAYU_API_KEY + \"~\" + PAYU_MERCHANT_ID + \"~\" + payUresponse.referenceCode + \"~\" + payUresponse.tx_value + \"~USD\" + \"~\" + payUresponse.transactionState)); {\n alert(\"PayU payment: \" + payUresponse.status + \", for booking: \" + payUresponse.referenceValue + \"... Value: \" + payUresponse.tx_value + \" \" + payUresponse.currency + \"... Date: \" + payUresponse.date);\n }\n return () => {\n };\n }, []);\n \n return payUresponse.status == \"APPROVED\"?
    \n \n
    \n

    \n {content.thanks}\n

    \n

    \n {content.paymentResult}: {payUresponse.status}\n

    \n

    \n {content.details}\n

    \n

    \n {decodeURIComponent(payUresponse.description)}\n

    \n
    \n
    :\n
    \n \n
    \n

    \n {content.paymentResult}: {payUresponse.status}\n

    \n

    \n {content.details}\n

    \n

    \n {decodeURIComponent(payUresponse.description)}\n

    \n
    \n
    \n}\n\nexport default ResponseScreen;\n","import React from 'react';\nimport Drawer from '@material-ui/core/Drawer';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport ShoppingCart from '@material-ui/icons/ShoppingCart';\nimport Mail from '@material-ui/icons/Mail';\nimport PostAdd from '@material-ui/icons/PostAdd';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport Cancel from '@material-ui/icons/Cancel';\nimport enFlag from '../resources/gb.png';\n\nfunction SideDrawer(props) {\n\n let content = {\n\n English: {\n signIn : \"Sign In\",\n contactUs : \"Contact us!\",\n bookingCart : \"Booking Cart\",\n myReviews : \"My Reviews\",\n },\n \n Español: {\n signIn : \"Entrar\",\n contactUs : \"Contáctanos!\",\n bookingCart : \"Reservas\",\n myReviews : \"Mis Reviews\",\n }\n \n }; \n\n props.language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n const userSignin = useSelector(state=>state.userSignin);\n const {userInfo} = userSignin;\n\n return (\n props.onClose(false)} \n >\n\n \n props.onClose(false)}>\n <>-----------\n \n <>-----------\n \n \n \n {\n userInfo ? props.onClose(false)}>  {userInfo.name}\n :\n props.onClose(false)}>  {content.signIn}\n }\n \n \n \n props.onClose(false)}>  {content.contactUs}\n \n \n \n props.onClose(false)}>  {content.bookingCart}\n \n \n {\n userInfo ? \n :\n

     

    \n }\n {\n userInfo ? props.onClose(false)}>  {content.myReviews}\n :\n

     

    \n }\n
    \n
    \n\n\n \n );\n};\n\nexport default SideDrawer;","import React from 'react';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport { useSelector } from 'react-redux';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Link } from 'react-router-dom';\n\nfunction UserAvatar(props) {\n const userSignin = useSelector(state=>state.userSignin);\n const {userInfo} = userSignin;\n\n return (\n !userInfo ?   :\n \n \n \n \n\n \n )\n}\n\nexport default UserAvatar;\n","import React, { Component } from 'react';\nimport { Link } from 'react-router-dom';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport IconButton from '@material-ui/core/IconButton';\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\nimport logo from '../resources/Logo Comparte Stereo 120.png';\nimport SideDrawer from './SideDrawer';\nimport UserAvatar from './UserAvatar';\n\nclass Header extends Component {\n\n state = {\n drawerOpen: false,\n headerShow: false\n }\n\n componentDidMount() {\n window.addEventListener('scroll', this.handleScroll)\n }\n\n handleScroll = () => {\n if (window.scrollY > 100) {\n this.setState({\n headerShow : true\n })\n } else {\n this.setState({\n headerShow : false\n }) \n }\n\n }\n\n toggleDrawer = (value) => {\n this.setState({\n drawerOpen: value\n })\n }\n\n render() {\n return (\n \n\n \n
    \n \"Logo\n
    \n\n \n\n this.toggleDrawer(true)}\n >\n \n \n\n this.toggleDrawer(false)}\n >\n \n\n
    \n\n \n );\n }\n\n}\n\nexport default Header;\n","import { List, ListItem } from \"@material-ui/core\";\nimport React from \"react\";\nimport enFlag from '../resources/gb.png';\nimport coFlag from '../resources/co.png';\nimport frFlag from '../resources/fr.png';\n\nfunction LanguageSelector(props) {\n return (\n\n
    \n props.handleSetLanguage(e.target.value)}\n >\n \n \n \n
    \n\n );\n}\n\nexport default LanguageSelector;","import React, { useState } from 'react';\nimport { BrowserRouter, Route, Switch, Redirect, useParams, Link } from 'react-router-dom'\nimport './App.css';\nimport HomeScreen from './screens/HomeScreen';\nimport LocationScreen from './screens/LocationScreen';\nimport ActivityScreen from './screens/ActivityScreen';\nimport AttractionScreen from './screens/AttractionScreen';\nimport CartScreen from './screens/CartScreen';\nimport SigninScreen from './screens/SigninScreen';\nimport RegisterScreen from './screens/RegisterScreen';\nimport BookingScreen from './screens/BookingScreen';\nimport PaymentScreen from './screens/PaymentScreen';\nimport PlaceOrderScreen from './screens/PlaceOrderScreen';\nimport OrderScreen from './screens/OrderScreen';\nimport OrdersScreen from './screens/OrdersScreen';\nimport ProfileScreen from './screens/ProfileScreen';\nimport RememberScreen from './screens/RememberScreen';\nimport AttractionsScreen from './screens/AttractionsScreen';\nimport UsersScreen from './screens/UsersScreen';\nimport ActivitiesScreen from './screens/ActivitiesScreen';\nimport CountriesScreen from './screens/CountriesScreen';\nimport LocationsScreen from './screens/LocationsScreen';\nimport CreateTipScreen from './screens/CreateTipScreen';\nimport CreateShortTipScreen from './screens/CreateShortTipScreen';\nimport ContactScreen from './screens/ContactScreen';\nimport TipScreen from './screens/TipScreen';\nimport TermsScreen from './screens/TermsScreen';\nimport DisclaimerScreen from './screens/DisclaimerScreen';\nimport PrivacyPolicyScreen from './screens/PrivacyScreen';\nimport CookiePolicyScreen from './screens/CookieScreen';\nimport ReturnPolicyScreen from './screens/ReturnPolicyScreen';\nimport PolicyScreen from './screens/PolicyScreen';\nimport ShortTipScreen from './screens/ShortTipScreen';\nimport NotFoundScreen from './screens/NotFoundScreen';\nimport ResponseScreen from './screens/ResponseScreen';\nimport Header from './components/Header';\nimport IdleTimer from 'react-idle-timer';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { logout } from './actions/userActions';\nimport logo from './resources/Logo Comparte Stereo 96.png';\nimport CookieConsent from \"react-cookie-consent\";\nimport LanguageSelector from './components/LanguageSelector';\nimport ReactHlsPlayer from \"react-hls-player\";\n\nfunction App() {\n let languageStoredInLocalStorage = localStorage.getItem(\"language\");\n let [language, setLanguage] = useState(\"es\");\n\n let content = {\n\n English: {\n ourPolicy : \"Our Policy\",\n becomeAhost : \"Become a Host!\",\n },\n \n Español: {\n ourPolicy : \"Términos y Condiciones\",\n becomeAhost : \"Únete y comparte!\",\n }\n \n }; \n\n language === \"en\"\n ? (content = content.English)\n : (content = content.Español);\n\n\n const userSignin = useSelector(state=>state.userSignin);\n const {userInfo} = userSignin;\n const dispatch = useDispatch();\n\n const onIdle = () => {\n if (userInfo){\n dispatch(logout());\n }\n }\n\n function storeLanguageInLocalStorage(language) {\n localStorage.setItem(\"language\", language);\n window.location.assign('/' + language + '/' + window.location.pathname.split('/').slice(2).join('/') )\n }\n \n var userLanguage = window.navigator.userLanguage || window.navigator.language;\n\n return (\n
    \n\n \n onIdle({}) }\n timeout={ 1000 * 60 * 15 }>\n \n \n Este sitio usa cookies para mejorar la experiencia de usuario...{\" \"}\n \n
    \n {\n setLanguage(language);\n storeLanguageInLocalStorage(language);\n }}\n />\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n

    Regístrate y cuéntanos sobre tu emprendimiento

    \n

    {content.becomeAhost}

    \n
    \n

    {content.ourPolicy}



    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n

    Disfruta nuestra música online

    \n
    \n \n
    \n
    \n \"Attraction

    \n © 2024\n
    \n
    \n
    \n\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import { createStore, combineReducers, applyMiddleware, compose } from 'redux';\nimport thunk from 'redux-thunk';\nimport Cookie from 'js-cookie';\nimport { \n attractionListReducer, \n attractionDetailsReducer, \n attractionSaveReducer, \n attractionDeleteReducer,\n attractionFilterReducer,\n} from './reducers/attractionReducers';\nimport { \n tipListReducer, \n tipDetailsReducer, \n tipSaveReducer, \n tipDeleteReducer,\n tipFilterReducer,\n shortTipListReducer, \n shortTipDetailsReducer, \n shortTipSaveReducer, \n shortTipDeleteReducer,\n shortTipFilterReducer,\n shortTipAuthorFilterReducer,\n} from './reducers/tipReducers';\nimport { \n locationListReducer,\n locationDetailsReducer,\n locationDeleteReducer, \n locationSaveReducer, \n locationFilterReducer,\n} from './reducers/locationReducers';\nimport { countryListReducer,\n countryDetailsReducer,\n countryDeleteReducer, \n countrySaveReducer \n} from './reducers/countryReducers';\nimport { activityListReducer, \n activityDeleteReducer, \n activitySaveReducer \n} from './reducers/activityReducers';\nimport { cartReducer } from './reducers/cartReducers';\nimport { userSigninReducer, \n userRegisterReducer, \n userUpdateReducer, \n userDeleteReducer, \n userListReducer \n} from './reducers/userReducers';\nimport {\n orderCreateReducer,\n orderDetailsReducer,\n orderPayReducer,\n myOrderListReducer,\n orderListReducer,\n orderDeleteReducer,\n} from './reducers/orderReducers';\n\nconst cartItems = Cookie.getJSON(\"cartItems\") || [];\nconst userInfo = Cookie.getJSON('userInfo') || null;\n\nconst initialState = { \n cart: { cartItems, booking: {}, payment: {} },\n userSignin: { userInfo },\n};\n\nconst reducer = combineReducers({\n attractionList: attractionListReducer,\n attractionDetails: attractionDetailsReducer,\n attractionSave: attractionSaveReducer,\n attractionDelete: attractionDeleteReducer,\n attractionFilter: attractionFilterReducer,\n tipList: tipListReducer,\n tipDetails: tipDetailsReducer,\n tipSave: tipSaveReducer,\n tipDelete: tipDeleteReducer,\n tipFilter: tipFilterReducer,\n shortTipList: shortTipListReducer,\n shortTipDetails: shortTipDetailsReducer,\n shortTipSave: shortTipSaveReducer,\n shortTipDelete: shortTipDeleteReducer,\n shortTipFilter: shortTipFilterReducer,\n shortTipAuthorFilter: shortTipAuthorFilterReducer,\n locationList: locationListReducer,\n locationDetails: locationDetailsReducer,\n locationFilter: locationFilterReducer,\n locationDelete: locationDeleteReducer,\n locationSave: locationSaveReducer,\n countryList: countryListReducer,\n countryDetails: countryDetailsReducer,\n countryDelete: countryDeleteReducer,\n countrySave: countrySaveReducer,\n activityList: activityListReducer,\n activityDelete: activityDeleteReducer,\n activitySave: activitySaveReducer,\n cart: cartReducer,\n userSignin: userSigninReducer,\n userRegister: userRegisterReducer,\n userUpdate: userUpdateReducer,\n userDelete: userDeleteReducer,\n userList: userListReducer,\n orderCreate: orderCreateReducer,\n orderDetails: orderDetailsReducer,\n orderPay: orderPayReducer,\n myOrderList: myOrderListReducer,\n orderList: orderListReducer,\n orderDelete: orderDeleteReducer,\n})\n\nconst composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nconst store = createStore(reducer, initialState, composeEnhancer(applyMiddleware(thunk)));\nexport default store;","import { \n ATTRACTION_LIST_REQUEST, \n ATTRACTION_LIST_SUCCESS, \n ATTRACTION_LIST_FAIL, \n ATTRACTION_DETAILS_REQUEST, \n ATTRACTION_DETAILS_SUCCESS, \n ATTRACTION_DETAILS_FAIL,\n ATTRACTION_SAVE_REQUEST,\n ATTRACTION_SAVE_SUCCESS,\n ATTRACTION_SAVE_FAIL,\n ATTRACTION_FILTER_REQUEST,\n ATTRACTION_FILTER_SUCCESS,\n ATTRACTION_FILTER_FAIL,\n ATTRACTION_DELETE_REQUEST,\n ATTRACTION_DELETE_SUCCESS,\n ATTRACTION_DELETE_FAIL,\n} from \"../constants/attractionConstants\";\n\nfunction attractionListReducer(state= {attractions:[]}, action){\n\n switch (action.type) {\n case ATTRACTION_LIST_REQUEST:\n return {loading: true};\n case ATTRACTION_LIST_SUCCESS:\n return {loading: false, attractions: action.payload}\n case ATTRACTION_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction attractionFilterReducer(state= {attractions:[]}, action){\n\n switch (action.type) {\n case ATTRACTION_FILTER_REQUEST:\n return {loading: true};\n case ATTRACTION_FILTER_SUCCESS:\n return {loading: false, attractions: action.payload}\n case ATTRACTION_FILTER_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction attractionDetailsReducer(state = { attraction: {} }, action) {\n\n switch (action.type) {\n case ATTRACTION_DETAILS_REQUEST:\n return { loading: true };\n case ATTRACTION_DETAILS_SUCCESS:\n return { loading: false, attraction: action.payload };\n case ATTRACTION_DETAILS_FAIL:\n return { loading: false, error: action.payload }\n default:\n return state;\n }\n }\n\nfunction attractionDeleteReducer(state = { attraction: {} }, action) {\n switch (action.type) {\n case ATTRACTION_DELETE_REQUEST:\n return { loading: true };\n case ATTRACTION_DELETE_SUCCESS:\n return { loading: false, attraction: action.payload, success: true };\n case ATTRACTION_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n\nfunction attractionSaveReducer(state = { attraction: {} }, action) {\n switch (action.type) {\n case ATTRACTION_SAVE_REQUEST:\n return { loading: true };\n case ATTRACTION_SAVE_SUCCESS:\n return { loading: false, success: true, attraction: action.payload };\n case ATTRACTION_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n\nexport {attractionListReducer, attractionDetailsReducer, attractionDeleteReducer, attractionSaveReducer, attractionFilterReducer}","import { \n TIP_LIST_REQUEST, \n TIP_LIST_SUCCESS, \n TIP_LIST_FAIL, \n TIP_DETAILS_REQUEST, \n TIP_DETAILS_SUCCESS, \n TIP_DETAILS_FAIL,\n TIP_SAVE_REQUEST,\n TIP_SAVE_SUCCESS,\n TIP_SAVE_FAIL,\n TIP_DELETE_REQUEST,\n TIP_DELETE_SUCCESS,\n TIP_DELETE_FAIL,\n TIP_FILTER_REQUEST,\n TIP_FILTER_SUCCESS,\n TIP_FILTER_FAIL,\n SHORT_TIP_LIST_REQUEST, \n SHORT_TIP_LIST_SUCCESS, \n SHORT_TIP_LIST_FAIL, \n SHORT_TIP_DETAILS_REQUEST, \n SHORT_TIP_DETAILS_SUCCESS, \n SHORT_TIP_DETAILS_FAIL,\n SHORT_TIP_SAVE_REQUEST,\n SHORT_TIP_SAVE_SUCCESS,\n SHORT_TIP_SAVE_FAIL,\n SHORT_TIP_DELETE_REQUEST,\n SHORT_TIP_DELETE_SUCCESS,\n SHORT_TIP_DELETE_FAIL,\n SHORT_TIP_FILTER_REQUEST,\n SHORT_TIP_FILTER_SUCCESS,\n SHORT_TIP_FILTER_FAIL,\n SHORT_TIP_AUTHOR_FILTER_REQUEST,\n SHORT_TIP_AUTHOR_FILTER_SUCCESS,\n SHORT_TIP_AUTHOR_FILTER_FAIL,\n } from \"../constants/tipConstants\";\n \n function tipListReducer(state= {tips:[]}, action){\n \n switch (action.type) {\n case TIP_LIST_REQUEST:\n return {loading: true};\n case TIP_LIST_SUCCESS:\n return {loading: false, tips: action.payload}\n case TIP_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n }\n \n function tipFilterReducer(state= {tips:[]}, action){\n\n switch (action.type) {\n case TIP_FILTER_REQUEST:\n return {loading: true};\n case TIP_FILTER_SUCCESS:\n return {loading: false, tips: action.payload}\n case TIP_FILTER_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n }\n \n function tipDetailsReducer(state = { tip: {} }, action) {\n \n switch (action.type) {\n case TIP_DETAILS_REQUEST:\n return { loading: true };\n case TIP_DETAILS_SUCCESS:\n return { loading: false, tip: action.payload };\n case TIP_DETAILS_FAIL:\n return { loading: false, error: action.payload }\n default:\n return state;\n }\n }\n \n function tipDeleteReducer(state = { tip: {} }, action) {\n switch (action.type) {\n case TIP_DELETE_REQUEST:\n return { loading: true };\n case TIP_DELETE_SUCCESS:\n return { loading: false, tip: action.payload, success: true };\n case TIP_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n }\n \n function tipSaveReducer(state = { tip: {} }, action) {\n switch (action.type) {\n case TIP_SAVE_REQUEST:\n return { loading: true };\n case TIP_SAVE_SUCCESS:\n return { loading: false, success: true, tip: action.payload };\n case TIP_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n }\n\n function shortTipListReducer(state= {tips:[]}, action){\n \n switch (action.type) {\n case SHORT_TIP_LIST_REQUEST:\n return {loading: true};\n case SHORT_TIP_LIST_SUCCESS:\n return {loading: false, tips: action.payload}\n case SHORT_TIP_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n }\n\n function shortTipFilterReducer(state= {tips:[]}, action){\n\n switch (action.type) {\n case SHORT_TIP_FILTER_REQUEST:\n return {loading: true};\n case SHORT_TIP_FILTER_SUCCESS:\n return {loading: false, tips: action.payload}\n case SHORT_TIP_FILTER_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n }\n\n function shortTipAuthorFilterReducer(state= {tips:[]}, action){\n\n switch (action.type) {\n case SHORT_TIP_AUTHOR_FILTER_REQUEST:\n return {loading: true};\n case SHORT_TIP_AUTHOR_FILTER_SUCCESS:\n return {loading: false, tips: action.payload}\n case SHORT_TIP_AUTHOR_FILTER_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n }\n\n function shortTipDetailsReducer(state = { shortTip: {} }, action) {\n\n switch (action.type) {\n case SHORT_TIP_DETAILS_REQUEST:\n return { loading: true };\n case SHORT_TIP_DETAILS_SUCCESS:\n return { loading: false, shortTip: action.payload };\n case SHORT_TIP_DETAILS_FAIL:\n return { loading: false, error: action.payload }\n default:\n return state;\n }\n }\n\n function shortTipDeleteReducer(state = { tip: {} }, action) {\n switch (action.type) {\n case SHORT_TIP_DELETE_REQUEST:\n return { loading: true };\n case SHORT_TIP_DELETE_SUCCESS:\n return { loading: false, tip: action.payload, success: true };\n case SHORT_TIP_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n }\n\n function shortTipSaveReducer(state = { tip: {} }, action) {\n switch (action.type) {\n case SHORT_TIP_SAVE_REQUEST:\n return { loading: true };\n case SHORT_TIP_SAVE_SUCCESS:\n return { loading: false, success: true, tip: action.payload };\n case SHORT_TIP_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n }\n\n export {tipListReducer, tipDetailsReducer, tipDeleteReducer, tipSaveReducer, tipFilterReducer, shortTipListReducer, shortTipDetailsReducer, shortTipDeleteReducer, shortTipSaveReducer, shortTipFilterReducer, shortTipAuthorFilterReducer}","import { LOCATION_LIST_REQUEST, \n LOCATION_LIST_SUCCESS, \n LOCATION_LIST_FAIL,\n LOCATION_DETAILS_REQUEST, \n LOCATION_DETAILS_SUCCESS, \n LOCATION_DETAILS_FAIL, \n LOCATION_DELETE_REQUEST, \n LOCATION_DELETE_SUCCESS, \n LOCATION_DELETE_FAIL, \n LOCATION_SAVE_REQUEST, \n LOCATION_SAVE_SUCCESS, \n LOCATION_SAVE_FAIL,\n LOCATION_FILTER_REQUEST, \n LOCATION_FILTER_SUCCESS, \n LOCATION_FILTER_FAIL,\n} from \"../constants/locationConstants\";\n\nfunction locationListReducer(state= {locations:[]}, action){\n\n switch (action.type) {\n case LOCATION_LIST_REQUEST:\n return {loading: true};\n case LOCATION_LIST_SUCCESS:\n return {loading: false, locations: action.payload}\n case LOCATION_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction locationDetailsReducer(state = { location: {} }, action) {\n\n switch (action.type) {\n case LOCATION_DETAILS_REQUEST:\n return { loading: true };\n case LOCATION_DETAILS_SUCCESS:\n return { loading: false, location: action.payload };\n case LOCATION_DETAILS_FAIL:\n return { loading: false, error: action.payload }\n default:\n return state;\n }\n}\n\nfunction locationFilterReducer(state= {locations:[]}, action){\n\n switch (action.type) {\n case LOCATION_FILTER_REQUEST:\n return {loading: true};\n case LOCATION_FILTER_SUCCESS:\n return {loading: false, locations: action.payload}\n case LOCATION_FILTER_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction locationDeleteReducer(state = { location: {} }, action) {\n switch (action.type) {\n case LOCATION_DELETE_REQUEST:\n return { loading: true };\n case LOCATION_DELETE_SUCCESS:\n return { loading: false, location: action.payload, success: true };\n case LOCATION_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n \nfunction locationSaveReducer(state = { location: {} }, action) {\n switch (action.type) {\n case LOCATION_SAVE_REQUEST:\n return { loading: true };\n case LOCATION_SAVE_SUCCESS:\n return { loading: false, success: true, location: action.payload };\n case LOCATION_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n\nexport {locationListReducer, locationDetailsReducer, locationDeleteReducer, locationSaveReducer, locationFilterReducer}","import { COUNTRY_LIST_REQUEST, \n COUNTRY_LIST_SUCCESS, \n COUNTRY_LIST_FAIL,\n COUNTRY_DETAILS_REQUEST, \n COUNTRY_DETAILS_SUCCESS, \n COUNTRY_DETAILS_FAIL,\n COUNTRY_DELETE_REQUEST, \n COUNTRY_DELETE_SUCCESS, \n COUNTRY_DELETE_FAIL, \n COUNTRY_SAVE_REQUEST, \n COUNTRY_SAVE_SUCCESS, \n COUNTRY_SAVE_FAIL } from \"../constants/countryConstants\";\n\nfunction countryListReducer(state= {countries:[]}, action){\n\n switch (action.type) {\n case COUNTRY_LIST_REQUEST:\n return {loading: true};\n case COUNTRY_LIST_SUCCESS:\n return {loading: false, countries: action.payload}\n case COUNTRY_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction countryDetailsReducer(state = { country: {} }, action) {\n\n switch (action.type) {\n case COUNTRY_DETAILS_REQUEST:\n return { loading: true };\n case COUNTRY_DETAILS_SUCCESS:\n return { loading: false, country: action.payload };\n case COUNTRY_DETAILS_FAIL:\n return { loading: false, error: action.payload }\n default:\n return state;\n }\n}\n\nfunction countryDeleteReducer(state = { country: {} }, action) {\n switch (action.type) {\n case COUNTRY_DELETE_REQUEST:\n return { loading: true };\n case COUNTRY_DELETE_SUCCESS:\n return { loading: false, country: action.payload, success: true };\n case COUNTRY_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n \nfunction countrySaveReducer(state = { country: {} }, action) {\n switch (action.type) {\n case COUNTRY_SAVE_REQUEST:\n return { loading: true };\n case COUNTRY_SAVE_SUCCESS:\n return { loading: false, success: true, country: action.payload };\n case COUNTRY_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n \nexport {countryListReducer, countryDetailsReducer, countryDeleteReducer, countrySaveReducer}","import { ACTIVITY_LIST_REQUEST, ACTIVITY_LIST_SUCCESS, ACTIVITY_LIST_FAIL, ACTIVITY_DELETE_REQUEST, ACTIVITY_DELETE_SUCCESS, ACTIVITY_DELETE_FAIL, ACTIVITY_SAVE_REQUEST, ACTIVITY_SAVE_SUCCESS, ACTIVITY_SAVE_FAIL } from \"../constants/activityConstants\";\n\nfunction activityListReducer(state= {activities:[]}, action){\n\n switch (action.type) {\n case ACTIVITY_LIST_REQUEST:\n return {loading: true};\n case ACTIVITY_LIST_SUCCESS:\n return {loading: false, activities: action.payload}\n case ACTIVITY_LIST_FAIL:\n return {loading: false, error: action.payload}\n default:\n return state;\n }\n}\n\nfunction activityDeleteReducer(state = { activity: {} }, action) {\n switch (action.type) {\n case ACTIVITY_DELETE_REQUEST:\n return { loading: true };\n case ACTIVITY_DELETE_SUCCESS:\n return { loading: false, activity: action.payload, success: true };\n case ACTIVITY_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n \nfunction activitySaveReducer(state = { activity: {} }, action) {\n switch (action.type) {\n case ACTIVITY_SAVE_REQUEST:\n return { loading: true };\n case ACTIVITY_SAVE_SUCCESS:\n return { loading: false, success: true, activity: action.payload };\n case ACTIVITY_SAVE_FAIL:\n return { loading: false, error: action.payload };\n default:\n return state;\n }\n}\n \nexport {activityListReducer, activityDeleteReducer, activitySaveReducer}","import { CART_ADD_ITEM, CART_REMOVE_ITEM, CART_SAVE_BOOKING, CART_SAVE_PAYMENT, CART_EMPTY } from \"../constants/cartConstants\";\n\nfunction cartReducer(state = { cartItems: [] }, action){\n switch(action.type){\n case CART_ADD_ITEM:\n const item = action.payload;\n const attraction = state.cartItems.find(x=> x.attraction === item.attraction);\n if (attraction){\n return {\n cartItems: \n state.cartItems.map(x=>x.attraction===attraction.attraction? item: x)\n };\n }\n return {cartItems: [...state.cartItems, item] };\n case CART_REMOVE_ITEM:\n return { cartItems: state.cartItems.filter(x => x.attraction !== action.payload) };\n case CART_SAVE_BOOKING:\n return { ...state, booking: action.payload };\n case CART_SAVE_PAYMENT:\n return { ...state, payment: action.payload };\n case CART_EMPTY:\n return {};\n default: \n return state;\n }\n}\n\nexport { cartReducer }","import { USER_SIGNIN_REQUEST, USER_SIGNIN_SUCCESS, USER_SIGNIN_FAIL, USER_REGISTER_REQUEST, USER_REGISTER_SUCCESS, USER_REGISTER_FAIL, USER_LOGOUT, USER_UPDATE_REQUEST, USER_UPDATE_SUCCESS, USER_UPDATE_FAIL, USER_DELETE_REQUEST, USER_DELETE_SUCCESS, USER_DELETE_FAIL, USER_LIST_REQUEST, USER_LIST_SUCCESS, USER_LIST_FAIL } from \"../constants/userConstants\";\n\nfunction userSigninReducer(state = {}, action) {\n switch (action.type) {\n case USER_SIGNIN_REQUEST:\n return { loading: true };\n case USER_SIGNIN_SUCCESS:\n return { loading: false, userInfo: action.payload };\n case USER_SIGNIN_FAIL:\n return { loading: false, error: action.payload };\n case USER_LOGOUT:\n return {};\n default: return state;\n }\n}\n\nfunction userUpdateReducer(state = {}, action) {\n switch (action.type) {\n case USER_UPDATE_REQUEST:\n return { loading: true };\n case USER_UPDATE_SUCCESS:\n return { loading: false, userInfo: action.payload };\n case USER_UPDATE_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n}\n\nfunction userDeleteReducer(state = {}, action) {\n switch (action.type) {\n case USER_DELETE_REQUEST:\n return { loading: true };\n case USER_DELETE_SUCCESS:\n return { loading: false, userInfo: action.payload };\n case USER_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n}\n\nfunction userListReducer(state = {users:[]}, action) {\n switch (action.type) {\n case USER_LIST_REQUEST:\n return { loading: true };\n case USER_LIST_SUCCESS:\n return { loading: false, users: action.payload };\n case USER_LIST_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n}\n\nfunction userRegisterReducer(state = {}, action) {\n switch (action.type) {\n case USER_REGISTER_REQUEST:\n return { loading: true };\n case USER_REGISTER_SUCCESS:\n return { loading: false, userInfo: action.payload };\n case USER_REGISTER_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n}\nexport {\n userSigninReducer, userRegisterReducer, userUpdateReducer, userDeleteReducer, userListReducer\n}","import {\n ORDER_CREATE_REQUEST, ORDER_CREATE_SUCCESS, ORDER_CREATE_FAIL,\n ORDER_DETAILS_REQUEST, ORDER_DETAILS_SUCCESS, ORDER_DETAILS_FAIL,\n ORDER_PAY_REQUEST, ORDER_PAY_SUCCESS, ORDER_PAY_FAIL,\n MY_ORDER_LIST_REQUEST, MY_ORDER_LIST_SUCCESS, MY_ORDER_LIST_FAIL,\n ORDER_LIST_REQUEST, ORDER_LIST_SUCCESS, ORDER_LIST_FAIL, ORDER_DELETE_REQUEST, ORDER_DELETE_SUCCESS, ORDER_DELETE_FAIL\n } from \"../constants/orderConstants\";\n \n\n function orderCreateReducer(state = {}, action) {\n switch (action.type) {\n case ORDER_CREATE_REQUEST:\n return { loading: true };\n case ORDER_CREATE_SUCCESS:\n return { loading: false, success: true, order: action.payload };\n case ORDER_CREATE_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n \n \n function orderDetailsReducer(state = {\n order: {\n orderItems: [],\n booking: {},\n payment: {}\n }\n }, action) {\n switch (action.type) {\n case ORDER_DETAILS_REQUEST:\n return { loading: true };\n case ORDER_DETAILS_SUCCESS:\n return { loading: false, order: action.payload };\n case ORDER_DETAILS_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n \n \n function myOrderListReducer(state = {\n orders: []\n }, action) {\n switch (action.type) {\n case MY_ORDER_LIST_REQUEST:\n return { loading: true };\n case MY_ORDER_LIST_SUCCESS:\n return { loading: false, orders: action.payload };\n case MY_ORDER_LIST_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n \n function orderListReducer(state = {\n orders: []\n }, action) {\n switch (action.type) {\n case ORDER_LIST_REQUEST:\n return { loading: true };\n case ORDER_LIST_SUCCESS:\n return { loading: false, orders: action.payload };\n case ORDER_LIST_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n \n function orderPayReducer(state = {\n order: {\n orderItems: [],\n booking: {},\n payment: {}\n }\n }, action) {\n switch (action.type) {\n case ORDER_PAY_REQUEST:\n return { loading: true };\n case ORDER_PAY_SUCCESS:\n return { loading: false, success: true };\n case ORDER_PAY_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n \n function orderDeleteReducer(state = {\n order: {\n orderItems: [],\n booking: {},\n payment: {}\n }\n }, action) {\n switch (action.type) {\n case ORDER_DELETE_REQUEST:\n return { loading: true };\n case ORDER_DELETE_SUCCESS:\n return { loading: false, success: true };\n case ORDER_DELETE_FAIL:\n return { loading: false, error: action.payload };\n default: return state;\n }\n }\n export {\n orderCreateReducer, orderDetailsReducer,\n orderPayReducer, myOrderListReducer, orderListReducer, orderDeleteReducer\n }","import React from 'react';\nimport { Provider } from 'react-redux';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport store from './store';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/Logo Comparte Stereo 300.47fc83e3.png\";","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}