{"version":3,"sources":["i18n.js","contexts/authContext.js","components/easterhunt/IntroDialog.jsx","components/common/Loading.jsx","components/easterhunt/SvgLoader.jsx","hooks/useWindowDimensions.js","components/easterhunt/PlayControls.jsx","components/easterhunt/FinishDashboard.jsx","pages/easter_hunt.jsx","pages/users.jsx","services/authentication.js","pages/login.style.js","pages/login.jsx","shared/Devices.js","components/birthday/AnimatedPicture.jsx","components/common/styles.jsx","components/svgs/Cake.js","components/birthday/PanelStyles.jsx","components/svgs/Netherlands.js","components/birthday/BikeAnimation.jsx","components/birthday/CakeAnimation.jsx","pages/firstBirthday.jsx","components/pixi/Transition.jsx","hooks/usePixiCanvasSize.js","components/pixi/Baby.jsx","components/event/EventTimer.jsx","pages/event.jsx","pages/aboutUs.jsx","components/pixi/GameBoard.jsx","components/pixi/Game.jsx","components/pixi/StartHelp.jsx","hooks/useWindowOrientation.js","contexts/appContext.js","pages/playGame.jsx","pages/pageNotFound.style.js","pages/pageNotFound.jsx","components/SideMenu.jsx","components/common/ScrollToTop.jsx","components/ProtectedRoute.jsx","components/MenuBar.jsx","App.js","reportWebVitals.js","index.js"],"names":["i18n","use","initReactI18next","init","resources","en","translation","Loading","Help","Skip","OSP","Username","Password","SignIn","Logout","YouFound","Eggs","HaveYou","HaveYou_pural","FinishedMsg","attention","level1","level2","level3","level4","level5","level6","level7","level8","level9","Level","Score","CurrentPsw","NewPsw","RepeatPsw","Update","UpdatePsw","EasterHunt","FirstBirthday","AboutUs","Administration","NoDataEvent","EventTooLate","CallingEvent","AlmostEvent","MinutesToEvent","HoursToEvent","DaysToEvent","Day","Day_plural","Hour","Hour_plural","Minute","Minute_plural","Second","Second_plural","TimeLeft","Birthday","Header","Pane1","Title","Msg","Pane2","Pane3","Pane4","Pane5","JoinPane","Banner","Btn","Game1","Points","YouLoose","YouWin","PlayAgain","GoBack","Level1Msg","SoundOn","RotateDevice","ClickStart","LoadingAssets","PlayWithBaby","es","lng","keySeparator","interpolation","escapeValue","initialState","isAuth","usrAttr","AuthContext","createContext","AuthCtxProvider","props","useState","authState","setAuthState","Provider","value","children","Transition","React","forwardRef","ref","Slide","direction","IntroDialog","open","setOpen","text","t","useTranslation","handleClose","Dialog","TransitionComponent","keepMounted","onClose","aria-labelledby","aria-describedby","DialogTitle","id","DialogContent","DialogContentText","style","display","margin","src","alt","width","height","DialogActions","Button","onClick","color","size","Container","Spinner","Label","styled","div","CircularProgress","h1","defaultProps","SvgLoader","map","msg","showHelp","onSuccess","svgRef","createRef","eggElement","eggClicked","setEggClicked","isLoaded","setLoaded","helpElement","setHelpElement","eggClickHandler","setProperty","setTimeout","useEffect","opacity","data","onLoad","current","contentDocument","querySelector","addEventListener","hEl","readyToGo","getWindowDimensions","window","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","removeEventListener","useStyles","makeStyles","root","bottom","position","PlayControls","score","level","onHelp","onSkip","classes","setValue","BottomNavigation","onChange","event","newValue","showLabels","className","BottomNavigationAction","label","icon","maxWidth","paddingTop","media","FinishDashboard","onRestart","useContext","Card","CardActionArea","CardMedia","image","title","CardContent","Typography","gutterBottom","variant","component","toString","name","profile","relationship","haveYou","count","CardActions","levels","img","needHelp","askHelp","points","status","setStatus","isFinished","setFinished","addPoint","val","length","flexGrow","to","getModalStyle","top","left","transform","padding","cognitoUser","theme","paper","backgroundColor","palette","background","border","boxShadow","shadows","spacing","emptyUser","Attributes","Name","Value","Users","modalStyle","users","setUsers","ready","setReady","cisp","setCisp","updated","setUpdated","updateUser","setUpdateUser","openDialog","setOpenDialog","handleCloseDialog","isConfirmed","deleteUser","handleOpen","user","undefined","AWS","config","region","Logins","process","token","credentials","CognitoIdentityCredentials","IdentityPoolId","refresh","error","console","log","CognitoIdentityServiceProvider","updateUserAttributes","params","UserAttributes","UserPoolId","adminUpdateUserAttributes","err","stack","createUser","TemporaryPassword","tmpPsw","adminCreateUser","username","adminDeleteUser","listUsers","promise","then","Row","openRow","setOpenRow","TableRow","TableCell","IconButton","aria-label","align","scope","handleOpenDialog","paddingBottom","colSpan","Collapse","in","timeout","unmountOnExit","Box","a","JSON","parse","Object","keys","k","paddingLeft","TableContainer","Paper","Table","TableBody","u","Modal","onSubmit","preventDefault","attributes","notMutableAttr","target","elements","forEach","includes","push","flexDirection","TextField","defaultValue","multiline","rows","type","backgroundImage","backgroundRepeat","grey","backgroundSize","backgroundPosition","alignItems","logoSmall","avatar","secondary","main","form","marginTop","submit","modal","cookieStorage","AmazonCognitoIdentity","domain","secure","expires","parseInt","poolData","ClientId","Storage","userPool","Copyright","Link","href","Date","getFullYear","Login","email","setEmail","password","setPassword","newPassword1","setNewPassword1","newPassword2","setNewPassword2","openModal","setOpenModal","session","setSession","newPswError","setNewPswError","doLogin","Promise","resolve","reject","authenticationDetails","userData","Pool","authenticateUser","result","idToken","getIdToken","getJwtToken","getUserAttributes","res","alert","message","stringify","locale","find","i","onFailure","newPasswordRequired","reqAttr","email_verified","reason","Session","auth","changeLanguage","handleOpenModal","Grid","container","CssBaseline","item","xs","sm","md","elevation","square","noValidate","required","fullWidth","autoComplete","autoFocus","e","mt","newPassword","completeNewPasswordChallenge","DoUserPswChallenge","Devices","mobileS","mobileM","mobileL","tablet","laptop","laptopL","desktop","desktopL","MovingImage","frames","AnimatedPicture","trigger","offset","setOffset","frameCount","imageRef","useCallback","node","getBoundingClientRect","start","end","scrub","ease","Page","SvgCake","SvgCakeRoot","SvgCakePath","SvgCakePiece","SvgCakeTarget","xmlns","viewBox","d","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","strokeOpacity","mixBlendMode","fillOpacity","strokeMiterlimit","strokeDasharray","x","y","displayName","Panel","bkgColor","PageHeader","GameHeader","TextBox","p","maxWidthLandscape","BigTextBox","JoinButton","button","SvgNetherlands","SvgNetherlandsRoot","SvgNetherlandsLandscape","SvgNetherlandsFiets","SvgNetherlandsFrontWheel","SvgNetherlandsBackWheel","SvgNetherlandsPedals","TweenPortrait","TweenLandscape","BikeAnimation","PlayState","stop","nlState","setNlState","onToggle","s","isActive","play","restartReverse","playState","rotation","transformOrigin","xPercent","CakeAnimation","active","cakeState","setCakeState","stopEnd","from","attr","motionPath","path","alignOrigin","stagger","duration","history","useHistory","cakeReady","setCakeReady","playAnimation","setPlayAnimation","gsap","registerPlugin","MotionPathPlugin","zIndex","justifyContent","textAlign","repeat","yoyo","fontSize","paddingRight","scale","onMouseOver","onMouseLeave","endTrigger","pin","isDone","progress","setProgress","setActive","app","useApp","useTick","delta","newProgress","Math","round","draw","g","renderer","view","clientWidth","clientHeight","clear","beginFill","moveTo","lineTo","min","max","endFill","usePixiCanvasSize","setWidth","setHeight","playerSheet","w","h","ssheet","PIXI","idle","crawling","lying","Baby","initX","initY","action","onLocked","hit","textures","setTextures","deltaX","setDeltaX","clicked","setClicked","setPlay","loop","setLoop","mirror","setMirror","centered","setCentered","animSpeed","setAnimSpeed","setPosition","tint","setTint","myself","useRef","counter","setCounter","spriteWidth","getBounds","newPosition","c","setCrawling","dir","animationSpeed","anchor","interactive","isPlaying","pointerdown","timeThresholds","EventTimer","h2","startTime","onTime","setMessage","timeLeft","setTimeLeft","setBkgColor","updateTimer","canvasSize","setCanvasSize","isResized","setResized","userClicked","setUserClicked","newSize","debouncedHandleResize","fn","ms","timer","_","clearTimeout","apply","arguments","debounce","checkMeetingTime","diff","seconds","Number","floor","m","secondsToMessage","clearInterval","setInterval","options","renderOnComponentChange","fontFamily","wordWrap","wordWrapWidth","toolbarButtons","CallContainer","Event","useParams","eventData","setEventData","isCallReady","setIsCallReady","setJitsiApi","roomName","loadingComponent","prejoinPageEnabled","isAdmin","onAPILoad","JitsiMeetAPI","executeCommand","containerStyle","dateTime","GameHelp","btnOkTxt","onOkClick","btnOutTxt","onOutClick","lineStyle","drawRoundedRect","drawB1","drawB2","click","touchstart","babyDim","enemyTypes","Game","onExit","onLoaded","setAction","bkgX","setBkgX","groundY","setGroundY","setScale","characterLocked","setCharacterLocked","enemyX","setEnemyX","Array","sprite","random","sound","randomSprite","key","enemiesSrcs","enemies","setEnemies","setHit","setPoints","lives","setLives","gameOver","setGameOver","ended","setEnd","damagers","setDamagers","startedMoving","setStartedMoving","sounds","setSounds","loader","containerRef","add","load","loose","win","music","volume","singleInstance","filter","visible","some","damage","myIdx","indexOf","l","soundName","abs","newPoints","idx","handleLeft","handleRight","handleKeyUp","handleStop","handleKeyDown","keyCode","handleTouchEnd","handleTouchStart","touches","clientX","tilePosition","tileScale","cos","GameBoard","StartHelp","orientation","setOrientation","useDeviceOrientation","timeoutRef","showMessage","setShowMessage","rotateIsDone","setRotateIsDone","displayTopBar","AppContext","AppCtxProvider","appState","setAppState","hideTopBar","showTopBar","PlayGame","handle","useFullScreenHandle","messageDone","setMessageDone","assetsReady","setAssetsReady","setKey","enter","catch","exit","Wrapper","PageNotFound","list","SideMenu","openMenu","setMenuOpen","navigateTo","url","Drawer","role","List","ListItem","ListItemIcon","ListItemText","primary","Divider","ScrollToTop","pathname","useLocation","scrollTo","ProtectedRoute","render","createElement","menuButton","marginRight","sectionDesktop","breakpoints","up","sectionMobile","MenuBar","onMenuOpen","anchorEl","setAnchorEl","mobileMoreAnchorEl","setMobileMoreAnchorEl","isMenuOpen","Boolean","isMobileMenuOpen","handleProfileMenuOpen","currentTarget","handleMobileMenuClose","menuId","renderMenu","anchorOrigin","vertical","horizontal","MenuItem","globalSignOut","ok","mobileMenuId","renderMobileMenu","aria-controls","aria-haspopup","AppBar","Toolbar","edge","Select","labelId","language","lan","grow","App","drawerOpen","setDrawerOpen","getCurrentUser","getSession","Error","finally","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.4cbf3d68.chunk.js","sourcesContent":["import i18n from 'i18next'\r\nimport { initReactI18next } from 'react-i18next'\r\n\r\n// the translations\r\n// (tip move them in a JSON file and import them)\r\nconst resources = {\r\n en: {\r\n translation: {\r\n Loading: 'Loading...',\r\n Help: 'Help',\r\n Skip: 'Skip',\r\n OSP: 'One Sock Pirates',\r\n Username: 'Username',\r\n Password: 'Password',\r\n SignIn: 'Sign In',\r\n Logout: 'Logout',\r\n YouFound: 'You found ',\r\n Eggs: ' easter eggs!',\r\n HaveYou: 'have you',\r\n HaveYou_pural: 'have you',\r\n FinishedMsg:\r\n 'Arturo is delighted to {{haveYou}} as a {{relationship}}! Thanks a lot for your help {{name}}!!!',\r\n attention: 'Help Arturo',\r\n level1:\r\n 'Arturo is playing on his gym, can you help him find the hidden easter egg?',\r\n level2:\r\n 'Arturo felt asleep without finding the next egg, can you find it?',\r\n level3:\r\n 'Ready to go for a walk! Can you see the easter egg that was left behind?',\r\n level4:\r\n 'And back again asleep, Arturo is very tired! The easter bunny left something behind, right?',\r\n level5: 'Happy cake time! Did Arturo get an easter egg as a present?',\r\n level6:\r\n 'Arturo is so surprised that you are finding all the eggs. Can you see the one here?',\r\n level7:\r\n 'Arturo looks cool in his hoodie, and would be even cooler with an easter egg!',\r\n level8:\r\n \"It's so hot, so Arturo is in his shorts, do you see an easter egg here?\",\r\n level9:\r\n 'What?! It was hot and now is cold, did the easter bunny leave an egg in the snow',\r\n Level: 'Level: ',\r\n Score: 'Score: ',\r\n CurrentPsw: 'Current Password',\r\n NewPsw: 'New Password',\r\n RepeatPsw: 'Repeat New Password',\r\n Update: 'Update',\r\n UpdatePsw: 'You must change your password before logging in',\r\n EasterHunt: 'Easter Hunt',\r\n FirstBirthday: '1st Birthday',\r\n AboutUs: 'About Us',\r\n Administration: 'Administration',\r\n NoDataEvent: 'There is no date for this event',\r\n EventTooLate: 'You are too late for this event',\r\n CallingEvent: 'Joining the event',\r\n AlmostEvent: 'It is almost time. Get ready!',\r\n MinutesToEvent: 'What excitement! Such thrill!',\r\n HoursToEvent: 'Get dressed with your sunday clothes...',\r\n DaysToEvent: 'Get comfy, there are still some days left',\r\n Day: 'day',\r\n Day_plural: 'days',\r\n Hour: 'hour',\r\n Hour_plural: 'hours',\r\n Minute: 'minute',\r\n Minute_plural: 'minutes',\r\n Second: 'second',\r\n Second_plural: 'seconds',\r\n TimeLeft: 'There are still left',\r\n Birthday: {\r\n Header: '{{name}}, we have something to celebrate!',\r\n Pane1: {\r\n Title: 'A long time ago...',\r\n Msg: 'Who could have imagined that a trip to the Netherlands could give so much?',\r\n },\r\n Pane2: {\r\n Title: 'Fast forward 5 years',\r\n Msg: `Laura and Jorge's dreams came to life when cute Arturo introduced himself a 12th of September in Veldhoven. \r\n Little by little this little man has grown as much as his appetite.\r\n Maybe it is difficult to imagine, but this little boy has turn in quite the mischievous kid.`,\r\n },\r\n Pane3: {\r\n Title: '12 months later',\r\n Msg: `It is now the moment to celebrate Arturo's first birthday.\r\n There's not much cool people left nowadays, but Arturo is the mostest.\r\n In only one year he has developed his most hunky-dory side, even surpasing\r\n his parents' coolness`,\r\n },\r\n Pane4: {\r\n Title: 'Party!',\r\n Msg: `And birthday means party, music, friends and family! Precisly what Arturo likes\r\n the most. That and that everyone around him pays him attention, but how not to? Have you seen his cheeks?! `,\r\n },\r\n Pane5: {\r\n Title: 'And, of course, there will be cake!',\r\n Msg: ``,\r\n },\r\n JoinPane: {\r\n Banner: 'Online Party',\r\n Msg: `Despite the distance, we would like to share this special day with you!\r\n We have setup an online call, so that even from far away you can be close`,\r\n Btn: 'Join',\r\n },\r\n },\r\n Game1: {\r\n Points: 'Points',\r\n YouLoose: 'You have lost, do you want to try again?',\r\n YouWin: 'You won! Congratulations for your {{points}} points',\r\n PlayAgain: 'Play Again',\r\n GoBack: 'GoBack',\r\n Level1Msg: \"Help Arturo avoid all the things he doesn't like!\",\r\n SoundOn: 'Turn your volume up',\r\n RotateDevice: 'Rotate your device',\r\n ClickStart: 'Click/Touch to start',\r\n LoadingAssets: 'Loading assets...',\r\n PlayWithBaby:\r\n 'In the meantime, you can play with Arturo...\\nClick on the baby!',\r\n },\r\n },\r\n },\r\n es: {\r\n translation: {\r\n Loading: 'Cargando...',\r\n Help: 'Ayuda',\r\n Skip: 'Saltar',\r\n OSP: 'One Sock Pirates',\r\n Username: 'Nombre de usuario',\r\n Password: 'Contraseña',\r\n SignIn: 'Iniciar Sesion',\r\n Logout: 'Salir',\r\n YouFound: 'Has encontrado ',\r\n Eggs: ' huevos de pascua!',\r\n HaveYou: 'tenerte',\r\n HaveYou_pural: 'teneros',\r\n FinishedMsg:\r\n 'Arturo esta encantado de {{haveYou}} como {{relationship}}! Muchas gracias por la ayuda {{name}}!!!',\r\n attention: 'Ayuda a Arturo',\r\n level1:\r\n 'Arturo se entrena en su gimnasio, puedes encontrar el huevo de pascua escondido?',\r\n level2:\r\n 'Arturo se quedo dormido buscando el siguiente huevo, puedes verlo?',\r\n level3: 'Listo para un paseo! Puedes ver el huevo que se olvido?',\r\n level4:\r\n 'Y vuelta a dormir, Arturo esta muy cansado! El conejo de pascua se dejo algo, verdad?',\r\n level5: 'Tarta para Arturo! Habra huevo de pascua como regalo?',\r\n level6:\r\n 'Arturo esta realmente sorprendido de que bien encuentras los huevos. Ves el siguiente?',\r\n level7:\r\n 'Arturo esta muy molon con su sudadero, molaria aun mas si encontrases el siguiente huevo de pascua!',\r\n level8:\r\n 'Que calor! Arturo esta sin pantalones! Hay algun huevo a la vista?',\r\n level9:\r\n 'Que?! Hacia calor y ahora frio. Dejo el conejito de pascua algun huevo en la nieve?',\r\n Level: 'Nivel: ',\r\n Score: 'Puntos: ',\r\n CurrentPsw: 'Contraseña actual',\r\n NewPsw: 'Nueva contraseña',\r\n RepeatPsw: 'Repita la nueva contraseña',\r\n Update: 'Actualizar',\r\n UpdatePsw: 'Debe actualizar su contraseña antes de poder iniciar sesión',\r\n EasterHunt: 'Huevos de Pascua',\r\n FirstBirthday: '1er Cumpleaños',\r\n AboutUs: 'Acerca de nosotros',\r\n Administration: 'Administración',\r\n NoDataEvent: 'No hay fecha para este evento',\r\n EventTooLate: 'Llegaste tarde para este evento',\r\n CallingEvent: 'Conectando al evento',\r\n AlmostEvent: 'Ya casi es el momento. Preparate!',\r\n MinutesToEvent: 'Que nervios! Que emocion!',\r\n HoursToEvent: 'Vistete con las mejores galas...',\r\n DaysToEvent: 'Ponte comodo, aun faltan algunos dias',\r\n Day: 'dia',\r\n Day_plural: 'dias',\r\n Hour: 'hora',\r\n Hour_plural: 'horas',\r\n Minute: 'minuto',\r\n Minute_plural: 'minutos',\r\n Second: 'segundo',\r\n Second_plural: 'segundos',\r\n TimeLeft: 'Aun quedan:',\r\n Birthday: {\r\n Header: '{{name}}, tenemos algo que celebrar!',\r\n Pane1: {\r\n Title: 'Hace mucho tiempo...',\r\n Msg: 'Quien podria haber imaginado que un viaje a los Paises Bajos daria para tanto',\r\n },\r\n Pane2: {\r\n Title: '5 años más tarde',\r\n Msg: `Los sueños de Laura y mios se hicieron realidad cuand Arturo se dio a conocer un 12 de septiembre en Veldhoven. \r\n Poco a poco este hombrecillo ha crecido igual que su apetito. \r\n Es posbile que sea dificil de imaginar, pero se ha convertido en un niño bastante travieso`,\r\n },\r\n Pane3: {\r\n Title: '12 meses después',\r\n Msg: `Ha llegado la hora celebrar el primer cumpleaños de Arturo.\r\n Queda poca gente \"molona\" o \"guay\", pero sin duda Arturo es el maximo exponente.\r\n En solo un año ha desarrollar su faceta mas cool, sobrepasando incluso\r\n la de sus progenitores`,\r\n },\r\n Pane4: {\r\n Title: 'Fiesta!',\r\n Msg: `Y cumpleaños significa fiesta, música, amigos y familia! Precisamente lo que más \r\n le gusta a Arturo. Eso y que todo el mundo le preste atención, pero como no hacerlo? Habeis visto sus mejillas?!`,\r\n },\r\n Pane5: {\r\n Title: 'Y, por supuesto, habrá pastel!',\r\n Msg: ``,\r\n },\r\n JoinPane: {\r\n Banner: 'Fiesta en linea',\r\n Msg: `A pesar de la distancia, nos gustaria compartir este dia tan especial con vosotros! \r\n Hemos preparado una conferencia en linea, para que desde lejos podais estar cerca`,\r\n Btn: 'Unirse',\r\n },\r\n },\r\n Game1: {\r\n Points: 'Puntos',\r\n YouLoose: 'Has perdido! Quieres intentarlo de nuevo?',\r\n YouWin: 'Ganaste! Felicitaciones por tus {{points}} puntos',\r\n PlayAgain: 'Jugar de nuevo',\r\n GoBack: 'Volver atrás',\r\n Level1Msg: 'Ayuda a Arturo a esquivar las cosas que no le gustan!',\r\n SoundOn: 'Sube el volumen',\r\n RotateDevice: 'Gira tu dispositivo',\r\n ClickStart: 'Click/Toca para empezar',\r\n LoadingAssets: 'Cargando librerias...',\r\n PlayWithBaby:\r\n 'Mientras, puedes jugar con Arturo...\\nDale click al bebé!',\r\n },\r\n },\r\n },\r\n}\r\n\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources,\r\n lng: 'en',\r\n\r\n keySeparator: '.',\r\n\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss\r\n },\r\n })\r\n\r\nexport default i18n\r\n","import React, { createContext, useState } from 'react'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nexport const initialState = { isAuth: false, usrAttr: null }\r\nexport const AuthContext = createContext(initialState)\r\nfunction AuthCtxProvider(props) {\r\n const [authState, setAuthState] = useState(initialState)\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nAuthCtxProvider.propTypes = {\r\n children: PropTypes.node,\r\n}\r\n\r\nexport { AuthCtxProvider }\r\n","import React from 'react'\r\nimport Button from '@material-ui/core/Button'\r\nimport Dialog from '@material-ui/core/Dialog'\r\nimport DialogActions from '@material-ui/core/DialogActions'\r\nimport DialogContent from '@material-ui/core/DialogContent'\r\nimport DialogContentText from '@material-ui/core/DialogContentText'\r\nimport DialogTitle from '@material-ui/core/DialogTitle'\r\nimport Slide from '@material-ui/core/Slide'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return \r\n})\r\n\r\nconst IntroDialog = ({ open, setOpen, text }) => {\r\n const { t } = useTranslation()\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n }\r\n\r\n return (\r\n \r\n {t('attention')}\r\n \r\n \r\n {t(text)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nIntroDialog.propTypes = {\r\n open: PropTypes.bool,\r\n setOpen: PropTypes.func,\r\n text: PropTypes.string,\r\n}\r\n\r\nexport default IntroDialog\r\n","import React from 'react'\r\nimport CircularProgress from '@material-ui/core/CircularProgress'\r\nimport { PropTypes } from 'prop-types'\r\nimport styled from 'styled-components'\r\n\r\nconst Loading = ({ text, size }) => {\r\n return (\r\n \r\n \r\n {text && }\r\n \r\n )\r\n}\r\n\r\nconst Container = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n background-color: #798f9c;\r\n align-items: center;\r\n display: flex;\r\n flex-direction: column;\r\n`\r\nconst Spinner = styled(CircularProgress)`\r\n margin-top: auto;\r\n`\r\nconst Label = styled.h1`\r\n margin-bottom: auto;\r\n align-items: center;\r\n`\r\n\r\nLoading.propTypes = {\r\n text: PropTypes.string,\r\n size: PropTypes.number,\r\n}\r\n\r\nLoading.defaultProps = {\r\n size: 100,\r\n}\r\n\r\nexport default Loading\r\n","import React, { createRef, useEffect, useState } from 'react'\r\nimport IntroDialog from './IntroDialog'\r\nimport { PropTypes } from 'prop-types'\r\nimport Loading from '../common/Loading'\r\n\r\nfunction SvgLoader({ map, msg, showHelp, onSuccess }) {\r\n const svgRef = createRef()\r\n\r\n let eggElement = null\r\n const [eggClicked, setEggClicked] = useState(false)\r\n const [isLoaded, setLoaded] = useState(false)\r\n const [helpElement, setHelpElement] = useState(null)\r\n const [open, setOpen] = useState(false)\r\n\r\n const eggClickHandler = () => {\r\n setEggClicked(true)\r\n if (eggElement) {\r\n eggElement.style.setProperty('transition', 'fill-opacity 500ms ease-in')\r\n eggElement.style.setProperty(\r\n '-moz-transition',\r\n 'fill-opacity 500ms ease-in'\r\n )\r\n eggElement.style.setProperty(\r\n '-webkit-transition',\r\n 'fill-opacity 500ms ease-in'\r\n )\r\n eggElement.style.setProperty('fill-opacity', '0.8')\r\n }\r\n setTimeout(() => onSuccess(), 1000)\r\n }\r\n\r\n useEffect(() => {\r\n if (map) {\r\n setLoaded(false)\r\n setEggClicked(false)\r\n setHelpElement(false)\r\n }\r\n }, [map])\r\n\r\n const readyToGo = () => {\r\n setEggClicked(false)\r\n eggElement = svgRef.current.contentDocument.querySelector('svg g #egg')\r\n eggElement.addEventListener('click', eggClickHandler, false)\r\n eggElement.style.setProperty('fill-opacity', '0')\r\n\r\n const hEl = svgRef.current.contentDocument.querySelector('svg g #help')\r\n hEl.style.setProperty('fill-opacity', '0')\r\n setHelpElement(hEl)\r\n\r\n setLoaded(true)\r\n setOpen(true)\r\n }\r\n\r\n useEffect(() => {\r\n if (showHelp === true && helpElement !== null && eggClicked === false) {\r\n helpElement.style.setProperty('transition', 'fill-opacity 500ms ease-in')\r\n helpElement.style.setProperty(\r\n '-moz-transition',\r\n 'fill-opacity 500ms ease-in'\r\n )\r\n helpElement.style.setProperty(\r\n '-webkit-transition',\r\n 'fill-opacity 500ms ease-in'\r\n )\r\n helpElement.style.setProperty('fill-opacity', '0.2')\r\n }\r\n }, [showHelp, helpElement, eggClicked])\r\n\r\n return (\r\n <>\r\n \r\n readyToGo()}\r\n ref={svgRef}\r\n style={{ width: '100%' }}\r\n >\r\n Level\r\n \r\n \r\n \r\n {!isLoaded && }\r\n \r\n )\r\n}\r\n\r\nSvgLoader.propTypes = {\r\n map: PropTypes.node,\r\n msg: PropTypes.string,\r\n showHelp: PropTypes.bool,\r\n onSuccess: PropTypes.func,\r\n}\r\n\r\nexport default SvgLoader\r\n","import { useState, useEffect } from 'react'\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window\r\n return {\r\n width,\r\n height,\r\n }\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(\r\n getWindowDimensions()\r\n )\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions())\r\n }\r\n\r\n window.addEventListener('resize', handleResize)\r\n return () => window.removeEventListener('resize', handleResize)\r\n }, [])\r\n\r\n return windowDimensions\r\n}\r\n","import { makeStyles } from '@material-ui/core/styles'\r\nimport BottomNavigation from '@material-ui/core/BottomNavigation'\r\nimport BottomNavigationAction from '@material-ui/core/BottomNavigationAction'\r\nimport EmojiEventsIcon from '@material-ui/icons/EmojiEvents'\r\nimport EmojiFlagsIcon from '@material-ui/icons/EmojiFlags'\r\nimport SkipNextIcon from '@material-ui/icons/SkipNext'\r\nimport HelpIcon from '@material-ui/icons/Help'\r\nimport { useTranslation } from 'react-i18next'\r\nimport React, { useState } from 'react'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: '80%',\r\n bottom: '1%',\r\n margin: '0 10%',\r\n position: 'fixed',\r\n },\r\n})\r\n\r\nconst PlayControls = ({ score, level, onHelp, onSkip }) => {\r\n const classes = useStyles()\r\n const [value, setValue] = useState(0)\r\n const { t } = useTranslation()\r\n\r\n return (\r\n {\r\n setValue(newValue)\r\n }}\r\n showLabels\r\n className={classes.root}\r\n >\r\n }\r\n />\r\n }\r\n />\r\n onHelp()} />}\r\n />\r\n onSkip()} />}\r\n />\r\n \r\n )\r\n}\r\n\r\nPlayControls.propTypes = {\r\n score: PropTypes.number,\r\n level: PropTypes.number,\r\n onHelp: PropTypes.func,\r\n onSkip: PropTypes.func,\r\n}\r\n\r\nexport default PlayControls\r\n","import { useTranslation } from 'react-i18next'\r\nimport React, { useContext } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport Card from '@material-ui/core/Card'\r\nimport CardActionArea from '@material-ui/core/CardActionArea'\r\nimport CardActions from '@material-ui/core/CardActions'\r\nimport CardContent from '@material-ui/core/CardContent'\r\nimport CardMedia from '@material-ui/core/CardMedia'\r\nimport Button from '@material-ui/core/Button'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { AuthContext } from '../../contexts/authContext'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n maxWidth: '400px',\r\n margin: 'auto',\r\n paddingTop: '100px',\r\n },\r\n media: {\r\n height: '200px',\r\n },\r\n})\r\n\r\nconst FinishDashboard = ({ score, onRestart }) => {\r\n const { authState } = useContext(AuthContext)\r\n const { t } = useTranslation()\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('YouFound') + score.toString() + t('Eggs')}\r\n \r\n \r\n {t('FinishedMsg', {\r\n name: authState.usrAttr.profile.name,\r\n relationship: authState.usrAttr.profile.relationship,\r\n haveYou: t('HaveYou', { count: authState.usrAttr.profile.count }),\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nFinishDashboard.propTypes = {\r\n score: PropTypes.number,\r\n onRestart: PropTypes.func,\r\n}\r\n\r\nexport default FinishDashboard\r\n","import React, { useState, useContext } from 'react'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport SvgLoader from '../components/easterhunt/SvgLoader'\r\nimport useWindowDimensions from '../hooks/useWindowDimensions'\r\nimport { Redirect } from 'react-router-dom'\r\nimport Playcontrols from '../components/easterhunt/PlayControls'\r\nimport FinishDashboard from '../components/easterhunt/FinishDashboard'\r\n\r\nfunction EasterHunt() {\r\n const { authState } = useContext(AuthContext)\r\n\r\n const levels = [\r\n { img: '/imgs/personal/level1.svg', msg: 'level1' },\r\n { img: '/imgs/personal/level2.svg', msg: 'level2' },\r\n { img: '/imgs/personal/level3.svg', msg: 'level3' },\r\n { img: '/imgs/personal/level5.svg', msg: 'level5' },\r\n { img: '/imgs/personal/level6.svg', msg: 'level6' },\r\n { img: '/imgs/personal/level7.svg', msg: 'level7' },\r\n { img: '/imgs/personal/level8.svg', msg: 'level8' },\r\n { img: '/imgs/personal/level9.svg', msg: 'level9' },\r\n ]\r\n const [needHelp, askHelp] = useState(false)\r\n const [status, setStatus] = useState({\r\n points: 0,\r\n level: 0,\r\n })\r\n const [isFinished, setFinished] = useState(false)\r\n const { height, width } = useWindowDimensions()\r\n\r\n const addPoint = (val) => {\r\n const points = status.points + val\r\n const level = status.level + 1\r\n if (level >= levels.length) {\r\n setFinished(true)\r\n setStatus({ points, level })\r\n } else {\r\n setStatus({ points, level })\r\n }\r\n askHelp(false)\r\n }\r\n\r\n const successHandler = () => {\r\n addPoint(1)\r\n }\r\n\r\n const restart = () => {\r\n setFinished(false)\r\n setStatus({\r\n points: 0,\r\n level: 0,\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {!authState.isAuth ? (\r\n \r\n ) : (\r\n
\r\n {isFinished ? (\r\n restart()}\r\n >\r\n ) : (\r\n
\r\n \r\n askHelp(true)}\r\n onSkip={() => addPoint(0)}\r\n />\r\n
\r\n )}\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default EasterHunt\r\n","import AWS from 'aws-sdk'\r\n// import CognitoProvider from \"../services/cognito\"\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport React, {\r\n useContext,\r\n useEffect,\r\n useState,\r\n Fragment,\r\n forwardRef,\r\n} from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport Modal from '@material-ui/core/Modal'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport Button from '@material-ui/core/Button'\r\nimport Paper from '@material-ui/core/Paper'\r\nimport Box from '@material-ui/core/Box'\r\nimport Collapse from '@material-ui/core/Collapse'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport Table from '@material-ui/core/Table'\r\nimport TableBody from '@material-ui/core/TableBody'\r\nimport TableCell from '@material-ui/core/TableCell'\r\nimport TableContainer from '@material-ui/core/TableContainer'\r\nimport TableRow from '@material-ui/core/TableRow'\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport Dialog from '@material-ui/core/Dialog'\r\nimport DialogActions from '@material-ui/core/DialogActions'\r\nimport DialogContent from '@material-ui/core/DialogContent'\r\nimport DialogContentText from '@material-ui/core/DialogContentText'\r\nimport DialogTitle from '@material-ui/core/DialogTitle'\r\nimport Slide from '@material-ui/core/Slide'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst Transition = forwardRef(function Transition(props, ref) {\r\n return \r\n})\r\n\r\nfunction getModalStyle() {\r\n const top = 50\r\n const left = 47\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`,\r\n padding: '3%',\r\n margin: '3%',\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n position: 'absolute',\r\n width: '80%',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '2px solid #000',\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n}))\r\n\r\nconst emptyUser = {\r\n Username: 'new user',\r\n Attributes: [\r\n { Name: 'username', Value: '' },\r\n { Name: 'email_verified', Value: true },\r\n {\r\n Name: 'profile',\r\n Value: '{\"name\":\"XXX\", \"relationship\":\"xxx\", \"count\":1}',\r\n },\r\n { Name: 'locale', Value: 'es' },\r\n { Name: 'email', Value: 'xxxx' },\r\n ],\r\n}\r\n\r\nconst Users = () => {\r\n const classes = useStyles()\r\n const [modalStyle] = useState(getModalStyle)\r\n const { authState } = useContext(AuthContext)\r\n const [users, setUsers] = useState([])\r\n const [ready, setReady] = useState(false)\r\n const [cisp, setCisp] = useState(null)\r\n const [open, setOpen] = useState(false)\r\n const [updated, setUpdated] = useState(true)\r\n const [updateUser, setUpdateUser] = useState(null)\r\n const [openDialog, setOpenDialog] = useState(false)\r\n\r\n const handleOpenDialog = (user) => {\r\n setUpdateUser(user)\r\n setOpenDialog(true)\r\n }\r\n\r\n const handleCloseDialog = (isConfirmed) => {\r\n setOpenDialog(false)\r\n if (isConfirmed) deleteUser(updateUser.Username)\r\n }\r\n\r\n const handleOpen = (user) => {\r\n if (user === undefined) {\r\n user = {}\r\n }\r\n setUpdateUser(user)\r\n setOpen(true)\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n }\r\n\r\n // Initialize Cognito Identity Pool credentials for admin on creation\r\n useEffect(() => {\r\n AWS.config.region = 'eu-west-1'\r\n\r\n const Logins = {}\r\n Logins[\r\n `cognito-idp.eu-west-1.amazonaws.com/${process.env.REACT_APP_COGNITO_USERPOOLID}`\r\n ] = authState.token\r\n\r\n AWS.config.credentials = new AWS.CognitoIdentityCredentials({\r\n IdentityPoolId: process.env.REACT_APP_COGNITO_IDENTITYPOOLID,\r\n Logins,\r\n })\r\n // refreshes credentials using AWS.CognitoIdentity.getCredentialsForIdentity()\r\n AWS.config.credentials.refresh((error) => {\r\n if (error) {\r\n // console.error(error);\r\n console.log('This user has no access to AWS')\r\n } else {\r\n setCisp(new AWS.CognitoIdentityServiceProvider())\r\n setReady(true)\r\n }\r\n })\r\n }, [authState.token])\r\n\r\n const handleFormSubmission = (event) => {\r\n event.preventDefault()\r\n const attributes = []\r\n const notMutableAttr = ['', 'sub', 'username']\r\n let username\r\n Object.keys(event.target.elements).forEach((t) => {\r\n if (!notMutableAttr.includes(event.target.elements[t].id)) {\r\n attributes.push({\r\n Name: event.target.elements[t].id,\r\n Value: event.target.elements[t].value,\r\n })\r\n } else if (event.target.elements[t].id === 'username') {\r\n username = event.target.elements[t].value\r\n }\r\n })\r\n if (username) {\r\n createUser({\r\n Username: username,\r\n Attributes: attributes,\r\n })\r\n } else {\r\n updateUserAttributes({\r\n Username: updateUser.Username,\r\n Attributes: attributes,\r\n })\r\n }\r\n }\r\n\r\n const updateUserAttributes = (data) => {\r\n var params = {\r\n UserAttributes: data.Attributes,\r\n UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID /* required */,\r\n Username: data.Username,\r\n }\r\n cisp.adminUpdateUserAttributes(params, function (err, data) {\r\n if (err) console.log(err, err.stack)\r\n // an error occurred\r\n else {\r\n setUpdated(true)\r\n setUpdateUser(undefined)\r\n }\r\n })\r\n handleClose()\r\n }\r\n\r\n const createUser = (data) => {\r\n var params = {\r\n UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID /* required */,\r\n Username: data.Username /* required */,\r\n TemporaryPassword: authState.usrAttr.profile.tmpPsw,\r\n UserAttributes: data.Attributes,\r\n }\r\n cisp.adminCreateUser(params, function (err, data) {\r\n if (err) console.log(err, err.stack)\r\n // an error occurred\r\n else {\r\n setUpdated(true)\r\n setUpdateUser(undefined)\r\n }\r\n })\r\n handleClose()\r\n }\r\n\r\n // const forceNewPassword = (data) => {\r\n // var params = {\r\n // Password: authState.usrAttr.profile.tmpPsw,\r\n // UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID /* required */,\r\n // Username: data.Username /* required */,\r\n // Permanent: false,\r\n // }\r\n // cognitoidentityserviceprovider.adminSetUserPassword(\r\n // params,\r\n // function (err, data) {\r\n // if (err) console.log(err, err.stack)\r\n // // an error occurred\r\n // else console.log(data) // successful response\r\n // }\r\n // )\r\n // }\r\n\r\n const deleteUser = (username) => {\r\n var params = {\r\n UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID /* required */,\r\n Username: username,\r\n }\r\n cisp.adminDeleteUser(params, function (err, data) {\r\n if (err) console.log(err, err.stack)\r\n // an error occurred\r\n else setUpdated(true)\r\n })\r\n }\r\n\r\n // Once credentials are initialized call get Users\r\n useEffect(() => {\r\n if (ready === true && updated === true) {\r\n var params = {\r\n UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID /* required */,\r\n }\r\n cisp\r\n .listUsers(params)\r\n .promise()\r\n .then(\r\n (data) => {\r\n setUsers(data.Users)\r\n },\r\n (err) => {\r\n console.log(err, err.stack) // an error occurred\r\n }\r\n )\r\n setUpdated(false)\r\n }\r\n }, [cisp, ready, updated])\r\n\r\n const Row = (props) => {\r\n const { user } = props\r\n const [openRow, setOpenRow] = useState(false)\r\n return (\r\n \r\n \r\n \r\n setOpenRow(!openRow)}\r\n >\r\n {openRow ? : }\r\n \r\n \r\n \r\n {user.Username}\r\n \r\n \r\n handleOpen(user)}\r\n >\r\n \r\n \r\n \r\n \r\n handleOpenDialog(user)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {user.Attributes.map((a) => {\r\n if (a.Name !== 'profile') {\r\n return

{`${a.Name}: ${a.Value}`}

\r\n } else {\r\n let profile = a.Value\r\n try {\r\n profile = JSON.parse(profile)\r\n return (\r\n \r\n

{`${a.Name}: `}

\r\n {Object.keys(profile).map((k) => (\r\n {`${k}: ${profile[k]}`}

\r\n ))}\r\n
\r\n )\r\n } catch {\r\n return

{`${a.Name}: ${a.Value}`}

\r\n }\r\n }\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n Row.propTypes = {\r\n user: PropTypes.object,\r\n }\r\n\r\n return (\r\n <>\r\n {ready ? (\r\n <>\r\n

User Administration

\r\n handleOpen(emptyUser)}\r\n >\r\n Create New User\r\n \r\n \r\n \r\n \r\n {users.map((u) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n
\r\n {open && (\r\n \r\n

\r\n Update Attributes for {updateUser.Username}\r\n

\r\n {updateUser.Attributes.map((a) => (\r\n \r\n ))}\r\n
\r\n \r\n \r\n )}\r\n
\r\n \r\n {updateUser && (\r\n \r\n \r\n {'Are you sure you want to delete this user?'}\r\n \r\n \r\n \r\n {`User ${updateUser.Username} will be removed forever and access will be lost.`}\r\n \r\n \r\n \r\n handleCloseDialog(false)}\r\n color=\"primary\"\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n

No access

\r\n )}\r\n \r\n )\r\n}\r\nexport default Users\r\n","import 'cross-fetch/polyfill'\r\nimport * as AmazonCognitoIdentity from 'amazon-cognito-identity-js'\r\n\r\nvar cognitoUser, sessionUserAttributes\r\nconst cookieStorage = new AmazonCognitoIdentity.CookieStorage({\r\n domain: process.env.REACT_APP_DOMAIN,\r\n secure: process.env.REACT_APP_COGNITO_SECURECOOKIES === 'true',\r\n expires: parseInt(process.env.REACT_APP_COGNITO_EXPCOOKIES),\r\n})\r\nconst poolData = {\r\n UserPoolId: process.env.REACT_APP_COGNITO_USERPOOLID,\r\n ClientId: process.env.REACT_APP_COGNITO_CLIENTID,\r\n Storage: cookieStorage,\r\n}\r\nconst userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData)\r\n\r\nexport const LogOut = () => {\r\n return new Promise((resolve, reject) => {\r\n cognitoUser.globalSignOut({\r\n onSuccess: function (ok) {\r\n resolve(ok)\r\n },\r\n onFailure: function (err) {\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\nexport const GetCurrentSession = () => {\r\n return new Promise((resolve, reject) => {\r\n cognitoUser = userPool.getCurrentUser()\r\n if (cognitoUser != null) {\r\n cognitoUser.getSession(function (err, session) {\r\n if (err) {\r\n alert(err.message || JSON.stringify(err))\r\n reject(err)\r\n return\r\n }\r\n // var accessToken = session.getAccessToken().getJwtToken();\r\n var idToken = session.getIdToken().getJwtToken()\r\n // console.log('session validity: ' + session.isValid());\r\n\r\n // NOTE: getSession must be called to authenticate user before calling getUserAttributes\r\n cognitoUser.getUserAttributes(function (err, attr) {\r\n if (err) {\r\n reject(err)\r\n // Handle error\r\n } else {\r\n resolve({\r\n token: idToken,\r\n usrAttr: {\r\n locale: attr.find((i) => i.Name === 'locale').Value,\r\n profile: JSON.parse(\r\n attr.find((i) => i.Name === 'profile').Value\r\n ),\r\n },\r\n })\r\n }\r\n })\r\n })\r\n } else {\r\n reject(new Error('No user currently logged in'))\r\n }\r\n })\r\n}\r\n\r\nexport const DoUserPswChallenge = (\r\n session,\r\n username,\r\n newPassword,\r\n newPassword2\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n if (newPassword !== newPassword2) {\r\n // eslint-disable-next-line prefer-promise-reject-errors\r\n reject({\r\n message: 'Passwords provided do not match',\r\n })\r\n }\r\n var userData = {\r\n Username: username,\r\n Pool: userPool,\r\n }\r\n var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData)\r\n cognitoUser.Session = session\r\n cognitoUser.completeNewPasswordChallenge(newPassword, null, {\r\n onSuccess: (result) => {\r\n resolve(result)\r\n },\r\n onFailure: (err) => {\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\nexport const LogUserIn = (Username, Password) => {\r\n return new Promise((resolve, reject) => {\r\n var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(\r\n {\r\n Username,\r\n Password,\r\n }\r\n )\r\n var userData = {\r\n Username: Username,\r\n Pool: userPool,\r\n Storage: cookieStorage,\r\n }\r\n cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData)\r\n cognitoUser.authenticateUser(authenticationDetails, {\r\n onSuccess: function (result) {\r\n // var accessToken = result.getAccessToken().getJwtToken();\r\n var idToken = result.getIdToken().getJwtToken()\r\n\r\n cognitoUser.getUserAttributes(function (err, res) {\r\n if (err) {\r\n alert(err.message || JSON.stringify(err))\r\n return\r\n }\r\n\r\n resolve({\r\n token: idToken,\r\n usrAttr: {\r\n locale: res.find((i) => i.Name === 'locale').Value,\r\n profile: JSON.parse(res.find((i) => i.Name === 'profile').Value),\r\n },\r\n })\r\n })\r\n },\r\n\r\n onFailure: function (err) {\r\n alert(err.message || JSON.stringify(err))\r\n reject(err)\r\n },\r\n newPasswordRequired: function (usrAttr, reqAttr) {\r\n delete usrAttr.email_verified\r\n // store userAttributes on global variable\r\n sessionUserAttributes = usrAttr\r\n\r\n // store userAttributes on global variable\r\n // eslint-disable-next-line prefer-promise-reject-errors\r\n reject({ reason: 'newPassword', session: cognitoUser.Session })\r\n },\r\n })\r\n })\r\n}\r\n\r\nexport const handleNewPassword = (newPassword) => {\r\n cognitoUser.completeNewPasswordChallenge(newPassword, sessionUserAttributes)\r\n}\r\n","import { makeStyles } from '@material-ui/core/styles'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: '100vh',\r\n },\r\n image: {\r\n backgroundImage: 'url(/imgs/logo.svg)',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundColor:\r\n theme.palette.type === 'light'\r\n ? theme.palette.grey[50]\r\n : theme.palette.grey[900],\r\n backgroundSize: '500px 500px',\r\n backgroundPosition: 'center',\r\n },\r\n paper: {\r\n margin: theme.spacing(8, 4),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n logoSmall: {\r\n margin: theme.spacing(1),\r\n width: '50px',\r\n height: '50px',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n },\r\n modal: {\r\n position: 'absolute',\r\n width: '80%',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '2px solid #000',\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n}))\r\n\r\nexport default useStyles\r\n","import React, { useState, useContext } from 'react'\r\nimport { Redirect } from 'react-router-dom'\r\nimport Button from '@material-ui/core/Button'\r\nimport CssBaseline from '@material-ui/core/CssBaseline'\r\nimport TextField from '@material-ui/core/TextField'\r\nimport Link from '@material-ui/core/Link'\r\nimport Paper from '@material-ui/core/Paper'\r\nimport Box from '@material-ui/core/Box'\r\nimport Grid from '@material-ui/core/Grid'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport useStyles from './login.style'\r\nimport { LogUserIn, DoUserPswChallenge } from '../services/authentication'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport { useTranslation } from 'react-i18next'\r\nimport Modal from '@material-ui/core/Modal'\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n OneSockPirates\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n )\r\n}\r\n\r\nfunction getModalStyle() {\r\n const top = 50\r\n const left = 47\r\n\r\n return {\r\n top: `${top}%`,\r\n left: `${left}%`,\r\n transform: `translate(-${top}%, -${left}%)`,\r\n padding: '3%',\r\n margin: '3%',\r\n }\r\n}\r\n\r\nexport default function Login() {\r\n const { authState, setAuthState } = useContext(AuthContext)\r\n const classes = useStyles()\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [newPassword1, setNewPassword1] = useState('')\r\n const [newPassword2, setNewPassword2] = useState('')\r\n const { t, i18n } = useTranslation()\r\n const [openModal, setOpenModal] = useState(false)\r\n const [session, setSession] = useState()\r\n const [modalStyle] = useState(getModalStyle)\r\n const [newPswError, setNewPswError] = useState()\r\n\r\n const handleOpenModal = (session) => {\r\n setSession(session)\r\n setOpenModal(true)\r\n }\r\n\r\n const handleCloseModal = (event) => {\r\n event.preventDefault()\r\n DoUserPswChallenge(session, email, newPassword1, newPassword2).then(\r\n () => {\r\n setSession(null)\r\n setOpenModal(false)\r\n setNewPswError(undefined)\r\n },\r\n (err) => {\r\n setNewPswError(err)\r\n }\r\n )\r\n }\r\n\r\n const doLogin = (event) => {\r\n event.preventDefault()\r\n LogUserIn(email, password).then(\r\n (auth) => {\r\n setAuthState({\r\n isAuth: true,\r\n usrAttr: { ...auth.usrAttr },\r\n token: auth.token,\r\n })\r\n i18n.changeLanguage(auth.usrAttr.locale)\r\n },\r\n (err) => {\r\n if (err.reason === 'newPassword') {\r\n handleOpenModal(err.session)\r\n } else {\r\n console.log('There was an error:', err)\r\n }\r\n }\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {authState.isAuth ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n {/* \r\n \r\n */}\r\n \r\n \r\n {t('OSP')}\r\n \r\n
\r\n setEmail(e.target.value)}\r\n />\r\n setPassword(e.target.value)}\r\n />\r\n {/* }\r\n label=\"Remember me\"\r\n /> */}\r\n {\r\n doLogin(e)\r\n }}\r\n >\r\n {t('SignIn')}\r\n \r\n {/* \r\n \r\n \r\n Forgot password?\r\n \r\n \r\n \r\n \r\n {\"Don't have an account? Sign Up\"}\r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n setOpenModal(false)}\r\n aria-labelledby=\"simple-modal-title\"\r\n aria-describedby=\"simple-modal-description\"\r\n >\r\n
\r\n \r\n

{t('UpdatePsw')}

\r\n {!session && (\r\n \r\n )}\r\n setNewPassword1(e.target.value)}\r\n />\r\n setNewPassword2(e.target.value)}\r\n />\r\n {newPswError &&

{newPswError.message}

}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","const size = {\r\n mobileS: '320px',\r\n mobileM: '375px',\r\n mobileL: '425px',\r\n tablet: '768px',\r\n laptop: '1024px',\r\n laptopL: '1440px',\r\n desktop: '2560px',\r\n}\r\n\r\nconst Devices = {\r\n mobileS: `(min-width: ${size.mobileS})`,\r\n mobileM: `(min-width: ${size.mobileM})`,\r\n mobileL: `(min-width: ${size.mobileL})`,\r\n tablet: `(min-width: ${size.tablet})`,\r\n laptop: `(min-width: ${size.laptop})`,\r\n laptopL: `(min-width: ${size.laptopL})`,\r\n desktop: `(min-width: ${size.desktop})`,\r\n desktopL: `(min-width: ${size.desktop})`,\r\n}\r\n\r\nexport default Devices\r\n","import React, { useState, useCallback } from 'react'\r\nimport { Tween, ScrollTrigger } from 'react-gsap'\r\nimport styled from 'styled-components'\r\nimport { PropTypes } from 'prop-types'\r\nimport Devices from '../../shared/Devices'\r\n\r\nconst AnimatedPicture = ({ src, frames, trigger }) => {\r\n const [offset, setOffset] = useState(0)\r\n const frameCount = frames - 1\r\n const imageRef = useCallback((node) => {\r\n if (node !== null) {\r\n setOffset(node.getBoundingClientRect().width / 2)\r\n }\r\n }, [])\r\n return (\r\n <>\r\n {offset === 0 || frames === 1 ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nAnimatedPicture.propTypes = {\r\n src: PropTypes.string,\r\n frames: PropTypes.number,\r\n trigger: PropTypes.string,\r\n}\r\n\r\nconst MovingImage = styled.div`\r\n margin-left: auto;\r\n margin-right: auto;\r\n background-image: ${(props) => `url(${props.src})`};\r\n background-repeat: no-repeat;\r\n background-position: 0 100%;\r\n background-size: ${(props) => `${props.frames * 100}%`};\r\n flex-grow: 3;\r\n @media ${Devices.laptop} {\r\n font-size: 4em;\r\n }\r\n @media (orientation: landscape) {\r\n height: 100%;\r\n width: auto;\r\n }\r\n @media (orientation: portrait) {\r\n height: auto;\r\n width: 100%;\r\n }\r\n`\r\n\r\nexport default AnimatedPicture\r\n","import styled from 'styled-components'\r\n// eslint-disable-next-line no-unused-vars\r\nimport Devices from '../../shared/Devices'\r\n\r\nconst Page = styled.div`\r\n height: 100%;\r\n width: 100%;\r\n`\r\nexport { Page }\r\n","import * as React from 'react'\nconst SvgCake = React.forwardRef((props, ref) => {\n const SvgCakeRoot = React.useRef(null)\n const SvgCakePath = React.useRef(null)\n const SvgCakePiece = React.useRef(null)\n const SvgCakeTarget = React.useRef(null)\n React.useImperativeHandle(ref, () => ({\n SvgCakeRoot,\n SvgCakePath,\n SvgCakePiece,\n SvgCakeTarget,\n }))\n return (\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n})\nSvgCake.displayName = 'SvgCake'\nexport default SvgCake\n","import styled from 'styled-components'\r\nimport Devices from '../../shared/Devices'\r\n\r\nconst Panel = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-weight: 600;\r\n font-size: 1.5em;\r\n text-align: center;\r\n color: white;\r\n position: relative;\r\n box-sizing: border-box;\r\n padding: 10px;\r\n background-color: ${(props) => props.bkgColor || 'palevioletred'};\r\n flex-direction: ${(props) => props.direction || 'column'};\r\n`\r\n\r\nconst PageHeader = styled.h1`\r\n font-family: 'Bungee', cursive;\r\n text-shadow: 3px 3px #707070;\r\n color: #f8f8f8;\r\n font-size: 1.5em;\r\n margin: 0;\r\n @media ${Devices.laptop} {\r\n font-size: 4em;\r\n }\r\n`\r\n\r\nconst GameHeader = styled.h1`\r\n font-family: 'Press Start 2P', cursive;\r\n text-shadow: 5px 5px #fffb00;\r\n color: #73ad;\r\n font-size: 1em;\r\n line-height: 1.5em;\r\n @media ${Devices.laptop} {\r\n font-size: 2em;\r\n }\r\n`\r\nconst TextBox = styled.p`\r\n font-family: 'ZCOOL QingKe HuangYou', cursive;\r\n border: 3px solid #73ad00;\r\n border-radius: 25px;\r\n padding: 20px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n min-width: 200px;\r\n height: auto;\r\n @media (orientation: landscape) {\r\n max-width: ${(props) => props.maxWidthLandscape || '40%'};\r\n max-height: 100%;\r\n margin-top: 0;\r\n margin-bottom: auto;\r\n }\r\n @media (orientation: portrait) {\r\n max-height: 40%;\r\n max-width: 100%;\r\n margin-top: auto;\r\n margin-bottom: 0;\r\n }\r\n`\r\nconst BigTextBox = styled(TextBox)`\r\n margin: 5%;\r\n font-size: 1em;\r\n max-width: 100%;\r\n @media ${Devices.laptop} {\r\n font-size: 2em;\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n /* flex-wrap: wrap; */\r\n height: 100%;\r\n width: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n @media ${Devices.laptop} {\r\n font-size: 2em;\r\n }\r\n @media (orientation: landscape) {\r\n flex-direction: row;\r\n }\r\n @media (orientation: portrait) {\r\n flex-direction: column;\r\n }\r\n`\r\nconst JoinButton = styled.button`\r\n font-family: 'Press Start 2P', cursive;\r\n font-size: 1em;\r\n color: #800080;\r\n background-color: #f8b600;\r\n border-radius: 0.5em;\r\n padding: 0.5em;\r\n cursor: pointer;\r\n :hover {\r\n background-color: yellow;\r\n }\r\n\r\n @media ${Devices.laptop} {\r\n font-size: 2em;\r\n }\r\n`\r\n\r\nexport {\r\n Panel,\r\n PageHeader,\r\n GameHeader,\r\n TextBox,\r\n BigTextBox,\r\n Container,\r\n JoinButton,\r\n}\r\n","import * as React from 'react'\nconst SvgNetherlands = React.forwardRef((props, ref) => {\n const SvgNetherlandsRoot = React.useRef(null)\n const SvgNetherlandsLandscape = React.useRef(null)\n const SvgNetherlandsFiets = React.useRef(null)\n const SvgNetherlandsFrontWheel = React.useRef(null)\n const SvgNetherlandsBackWheel = React.useRef(null)\n const SvgNetherlandsPedals = React.useRef(null)\n React.useImperativeHandle(ref, () => ({\n SvgNetherlandsRoot,\n SvgNetherlandsLandscape,\n SvgNetherlandsFiets,\n SvgNetherlandsFrontWheel,\n SvgNetherlandsBackWheel,\n SvgNetherlandsPedals,\n }))\n return (\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})\nSvgNetherlands.displayName = 'SvgNetherlands'\nexport default SvgNetherlands\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState } from 'react'\r\nimport { Tween, ScrollTrigger, Timeline, PlayState } from 'react-gsap'\r\nimport SvgNetherlands from '../svgs/Netherlands'\r\nimport { PropTypes } from 'prop-types'\r\nimport styled from 'styled-components'\r\n\r\nconst BikeAnimation = ({ trigger }) => {\r\n const [nlState, setNlState] = useState(PlayState.stop)\r\n return (\r\n <>\r\n \r\n {\r\n if (s.isActive) {\r\n setNlState(\r\n s.direction === 1 ? PlayState.play : PlayState.restartReverse\r\n )\r\n } else {\r\n // setNlState(PlayState.pause)\r\n }\r\n }}\r\n />\r\n } playState={nlState}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (s.isActive) {\r\n setNlState(\r\n s.direction === 1 ? PlayState.play : PlayState.restartReverse\r\n )\r\n } else {\r\n // setNlState(PlayState.pause)\r\n }\r\n }}\r\n />\r\n }\r\n playState={nlState}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nBikeAnimation.propTypes = {\r\n trigger: PropTypes.string,\r\n}\r\n\r\nconst TweenPortrait = styled.div`\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n @media (orientation: portrait) {\r\n display: block;\r\n }\r\n`\r\n\r\nconst TweenLandscape = styled.div`\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n @media (orientation: landscape) {\r\n display: block;\r\n }\r\n`\r\n\r\nexport default BikeAnimation\r\n","import React, { useState } from 'react'\r\nimport { Tween, ScrollTrigger, Timeline, PlayState } from 'react-gsap'\r\nimport SvgCake from '../svgs/Cake'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst CakeAnimation = ({ trigger, active }) => {\r\n const [cakeState, setCakeState] = useState(PlayState.stop)\r\n return (\r\n <>\r\n {active ? (\r\n <>\r\n {\r\n if (s.isActive) {\r\n setCakeState(\r\n s.direction === 1 ? PlayState.play : PlayState.restartReverse\r\n )\r\n } else {\r\n setCakeState(PlayState.stopEnd)\r\n }\r\n }}\r\n />\r\n\r\n } playState={cakeState}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n }>\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nCakeAnimation.propTypes = {\r\n trigger: PropTypes.string,\r\n active: PropTypes.bool,\r\n}\r\n\r\nexport default CakeAnimation\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useContext } from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Tween, ScrollTrigger } from 'react-gsap'\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport AnimatedPicture from '../components/birthday/AnimatedPicture'\r\nimport { gsap } from 'gsap'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { MotionPathPlugin } from 'gsap/MotionPathPlugin'\r\nimport { Page } from '../components/common/styles'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport SvgCake from '../components/svgs/Cake'\r\nimport styled from 'styled-components'\r\nimport {\r\n Panel,\r\n PageHeader,\r\n GameHeader,\r\n TextBox,\r\n Container,\r\n JoinButton,\r\n BigTextBox,\r\n} from '../components/birthday/PanelStyles'\r\nimport BikeAnimation from '../components/birthday/BikeAnimation'\r\nimport CakeAnimation from '../components/birthday/CakeAnimation'\r\n\r\nconst FirstBirthday = () => {\r\n const { t } = useTranslation()\r\n const { authState } = useContext(AuthContext)\r\n const history = useHistory()\r\n const [cakeReady, setCakeReady] = useState(false)\r\n const [playAnimation, setPlayAnimation] = useState('play')\r\n\r\n gsap.registerPlugin(MotionPathPlugin)\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('Birthday.Header', { name: authState.usrAttr.profile.name })}\r\n \r\n \r\n \r\n {t('Birthday.Pane1.Title')}\r\n \r\n \r\n {t('Birthday.Pane1.Msg')}\r\n \r\n \r\n \r\n \r\n \r\n {t('Birthday.Pane2.Title')}\r\n \r\n {t('Birthday.Pane2.Msg')}\r\n \r\n \r\n \r\n \r\n {t('Birthday.Pane3.Title')}\r\n \r\n \r\n {t('Birthday.Pane3.Msg')}\r\n \r\n \r\n \r\n {t('Birthday.Pane4.Title')}\r\n \r\n {t('Birthday.Pane4.Msg')}\r\n \r\n \r\n \r\n \r\n {t('Birthday.Pane5.Title')}\r\n \r\n \r\n {/* {`Let them have cake.`} */}\r\n \r\n \r\n \r\n {t('Birthday.JoinPane.Msg')}\r\n {t('Birthday.JoinPane.Banner')}\r\n \r\n history.push('/events/1')}\r\n onMouseOver={() => setPlayAnimation('pause')}\r\n onMouseLeave={() => setPlayAnimation('resume')}\r\n >\r\n {t('Birthday.JoinPane.Btn')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (!cakeReady) {\r\n setCakeReady(s.direction === -1 ? s.isActive : true)\r\n }\r\n }}\r\n >\r\n {/* */}\r\n \r\n )\r\n}\r\n\r\nexport default FirstBirthday\r\n","import React, { useCallback, useState } from 'react'\r\nimport { Graphics, useTick, useApp } from '@inlet/react-pixi'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nlet i = 0\r\nconst Transition = ({ isDone }) => {\r\n const [progress, setProgress] = useState(0)\r\n const [active, setActive] = useState(true)\r\n const app = useApp()\r\n\r\n useTick((delta) => {\r\n i += 0.008 * delta\r\n const newProgress = Math.round(i * 25) / 25\r\n if (active) {\r\n if (progress > 1) {\r\n setActive(false)\r\n isDone()\r\n } else if (newProgress !== progress) {\r\n setProgress(newProgress)\r\n }\r\n }\r\n })\r\n\r\n const draw = useCallback(\r\n (g) => {\r\n const width = app.renderer.view.clientWidth\r\n const height = app.renderer.view.clientHeight\r\n\r\n g.clear()\r\n\r\n g.beginFill(0x000000)\r\n g.moveTo(width / 2, height / 2)\r\n g.lineTo(width / 2, height)\r\n g.lineTo((width / 2) * Math.min(2, 1 + progress * 2), height)\r\n g.lineTo(width, height * Math.max(1 - (progress - 0.5), 0))\r\n g.lineTo(width / 2, height / 2)\r\n g.endFill()\r\n\r\n g.beginFill(0x000000)\r\n g.moveTo(width / 2, height / 2)\r\n g.lineTo(width, height / 2)\r\n g.lineTo(width, (height / 2) * Math.max(1 - progress * 2, 0))\r\n g.lineTo(width * Math.max(1 - (progress - 0.5), 0), 0)\r\n g.lineTo(width / 2, height / 2)\r\n g.endFill()\r\n\r\n g.beginFill(0x000000)\r\n g.moveTo(width / 2, height / 2)\r\n g.lineTo(width / 2, 0)\r\n g.lineTo((width / 2) * Math.max(1 - progress * 2, 0), 0)\r\n if (progress >= 0.5) g.lineTo(0, height * Math.max(progress - 0.5, 0))\r\n g.lineTo(width / 2, height / 2)\r\n g.endFill()\r\n\r\n g.beginFill(0x000000)\r\n g.moveTo(width / 2, height / 2)\r\n g.lineTo(0, height / 2)\r\n g.lineTo(0, height * Math.min(progress + 0.5, 1))\r\n if (progress >= 0.5) g.lineTo(width * Math.max(progress - 0.5, 0), height)\r\n g.lineTo(width / 2, height / 2)\r\n\r\n g.endFill()\r\n },\r\n [progress, app.renderer.view.clientWidth]\r\n )\r\n return \r\n}\r\n\r\nTransition.propTypes = {\r\n isDone: PropTypes.func,\r\n}\r\nexport default Transition\r\n","import { useState, useEffect } from 'react'\r\nimport { useApp } from '@inlet/react-pixi'\r\n\r\nexport default function usePixiCanvasSize() {\r\n const app = useApp()\r\n const [width, setWidth] = useState(app.renderer.view.clientWidth)\r\n const [height, setHeight] = useState(app.renderer.view.clientHeight)\r\n\r\n useEffect(() => {\r\n setWidth(app.renderer.view.clientWidth)\r\n setHeight(app.renderer.view.clientHeight)\r\n }, [app.renderer.view.clientWidth, app.renderer.view.clientHeight])\r\n\r\n return { width, height }\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react'\r\nimport { PropTypes } from 'prop-types'\r\nimport { AnimatedSprite, useTick } from '@inlet/react-pixi'\r\nimport usePixiCanvasSize from '../../hooks/usePixiCanvasSize'\r\nimport * as PIXI from 'pixi.js'\r\n\r\nconst playerSheet = {}\r\nconst w = 100\r\nconst h = 100\r\nconst speed = 4\r\n\r\nconst ssheet = PIXI.BaseTexture.from('/imgs/babyTiles.png')\r\n\r\nplayerSheet.idle = [\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(0 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(1 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(2 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(3 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(4 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(5 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(6 * w, h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(7 * w, h, w, h)),\r\n]\r\n\r\nplayerSheet.crawling = [\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(0 * w, 0, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(1 * w, 0, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(2 * w, 0, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(3 * w, 0, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(4 * w, 0, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(5 * w, 0, w, h)),\r\n]\r\nplayerSheet.lying = [\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(0 * w, 4 * h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(1 * w, 4 * h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(2 * w, 4 * h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(3 * w, 4 * h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(4 * w, 4 * h, w, h)),\r\n new PIXI.Texture(ssheet, new PIXI.Rectangle(5 * w, 4 * h, w, h)),\r\n]\r\n\r\nconst Baby = ({ initX, initY, onClick, action, onLocked, hit }) => {\r\n const [textures, setTextures] = useState(playerSheet.idle)\r\n const [deltaX, setDeltaX] = useState(0)\r\n const [clicked, setClicked] = useState(false)\r\n const [play, setPlay] = useState(true)\r\n const [loop, setLoop] = useState(true)\r\n const [mirror, setMirror] = useState(1)\r\n const [centered, setCentered] = useState(false)\r\n const [animSpeed, setAnimSpeed] = useState(0.2)\r\n const { width } = usePixiCanvasSize()\r\n const [position, setPosition] = useState(0)\r\n const [tint, setTint] = useState(0xfffff)\r\n const myself = useRef()\r\n const [counter, setCounter] = useState(0)\r\n\r\n useTick((delta) => {\r\n if (clicked) {\r\n setDeltaX((x) => x + 2)\r\n }\r\n if (action === 'crawlRight' && !centered) {\r\n const spriteWidth = myself?.current?.getBounds()?.width || 0\r\n const newPosition = deltaX + speed\r\n if (newPosition + initX >= (width - spriteWidth) / 2) {\r\n setDeltaX(width / 2 - spriteWidth / 2 - initX)\r\n setCentered(true)\r\n onLocked(true)\r\n } else {\r\n setDeltaX(newPosition)\r\n }\r\n // } else if (movingLeft && centered) {\r\n // setDeltaX((x) => x - 2)\r\n } else if (action === 'crawlLeft' /* && !centered */ && deltaX > speed) {\r\n setCentered(false)\r\n setDeltaX((x) => x - speed)\r\n }\r\n if (centered) {\r\n if (action === 'crawlRight') {\r\n setPosition((x) => x + speed)\r\n } else if (action === 'crawlLeft') {\r\n setPosition((x) => x - speed)\r\n }\r\n if (position === 0) {\r\n onLocked(false)\r\n setCentered(false)\r\n }\r\n }\r\n if (hit) {\r\n setCounter((c) => c + 1)\r\n if (counter % 10 === 0) {\r\n if (tint === 0xffffff) {\r\n setTint(0xbf0000)\r\n } else {\r\n setTint(0xffffff)\r\n }\r\n }\r\n } else if (tint !== 0xffffff) {\r\n setCounter(0)\r\n setTint(0xffffff)\r\n }\r\n })\r\n\r\n const setIdle = () => {\r\n setPlay(false)\r\n setTextures(playerSheet.idle)\r\n setLoop(true)\r\n setAnimSpeed(0.2)\r\n // setPlay(true)\r\n }\r\n\r\n const setLying = () => {\r\n setPlay(false)\r\n setTextures(playerSheet.lying)\r\n setLoop(true)\r\n setAnimSpeed(0.1)\r\n // setPlay(true)\r\n }\r\n\r\n const setCrawling = (dir) => {\r\n setPlay(false)\r\n setTextures(playerSheet.crawling)\r\n setMirror(dir)\r\n setAnimSpeed(0.2)\r\n // setLoop(false)\r\n }\r\n\r\n useEffect(() => {\r\n switch (action) {\r\n case 'crawlLeft':\r\n setCrawling(-1)\r\n break\r\n case 'crawlRight':\r\n setCrawling(1)\r\n break\r\n case 'sit':\r\n setIdle()\r\n break\r\n case 'lying':\r\n default:\r\n setLying()\r\n }\r\n }, [action])\r\n\r\n const handleClick = () => {\r\n setClicked(true)\r\n setPlay(false)\r\n setTextures(playerSheet.crawling)\r\n // setPlay(true)\r\n onClick()\r\n }\r\n\r\n useEffect(() => {\r\n setPlay(true)\r\n }, [textures])\r\n\r\n return (\r\n handleClick()}\r\n tint={tint}\r\n />\r\n )\r\n}\r\n\r\nBaby.propTypes = {\r\n initX: PropTypes.number,\r\n initY: PropTypes.number,\r\n onClick: PropTypes.func,\r\n action: PropTypes.string,\r\n onLocked: PropTypes.func,\r\n hit: PropTypes.bool,\r\n}\r\n\r\nexport default Baby\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect, useRef, useCallback } from 'react'\r\nimport styled from 'styled-components'\r\nimport { PropTypes } from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Stage, Text, Container as PixiContainer } from '@inlet/react-pixi'\r\nimport Transition from '../pixi/Transition'\r\nimport Baby from '../pixi/Baby'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nconst timeThresholds = {\r\n GONE: -2 * 60 * 60000,\r\n NOW: 60000,\r\n ALMOST: 5 * 60000,\r\n MINUTES: 60 * 60000,\r\n HOURS: 24 * 60 * 60000,\r\n}\r\n\r\nfunction debounce(fn, ms) {\r\n let timer\r\n return (_) => {\r\n clearTimeout(timer)\r\n timer = setTimeout((_) => {\r\n timer = null\r\n fn.apply(this, arguments)\r\n }, ms)\r\n }\r\n}\r\n\r\nconst EventTimer = ({ startTime, onTime }) => {\r\n const { t } = useTranslation()\r\n const [message, setMessage] = useState('')\r\n const [timeLeft, setTimeLeft] = useState('')\r\n const [bkgColor, setBkgColor] = useState({ backgroundColor: 0x50e6e6 })\r\n const updateTimer = useRef(null)\r\n const [canvasSize, setCanvasSize] = useState({ width: 0, height: 0 })\r\n const [isResized, setResized] = useState(true)\r\n const [userClicked, setUserClicked] = useState(false)\r\n const history = useHistory()\r\n\r\n const container = useCallback(\r\n (node) => {\r\n if (node !== null && isResized) {\r\n const newSize = {\r\n width: node.getBoundingClientRect().width,\r\n height: node.getBoundingClientRect().height,\r\n }\r\n if (\r\n newSize.width !== canvasSize.width ||\r\n newSize.height !== canvasSize.height\r\n ) {\r\n setCanvasSize(newSize)\r\n }\r\n }\r\n },\r\n [isResized, setResized]\r\n )\r\n\r\n useEffect(() => {\r\n const debouncedHandleResize = debounce(function handleResize() {\r\n setCanvasSize({\r\n height: window.innerHeight,\r\n width: window.innerWidth,\r\n })\r\n }, 200)\r\n\r\n window.addEventListener('resize', debouncedHandleResize)\r\n\r\n return (_) => {\r\n window.removeEventListener('resize', debouncedHandleResize)\r\n }\r\n })\r\n\r\n const secondsToMessage = (seconds) => {\r\n seconds = Number(seconds)\r\n var d = Math.floor(seconds / (3600 * 24))\r\n var h = Math.floor((seconds % (3600 * 24)) / 3600)\r\n var m = Math.floor((seconds % 3600) / 60)\r\n var s = Math.floor(seconds % 60)\r\n\r\n var dDisplay = d > 0 ? d + ' ' + t('Day', { count: d }) : ''\r\n var hDisplay = d + h > 0 ? h + ' ' + t('Hour', { count: h }) : ''\r\n var mDisplay = d + h + m > 0 ? m + ' ' + t('Minute', { count: m }) : ''\r\n var sDisplay = d + h + m + s > 0 ? s + ' ' + t('Second', { count: s }) : ''\r\n return dDisplay + ' ' + hDisplay + ' ' + mDisplay + ' ' + sDisplay\r\n }\r\n\r\n const checkMeetingTime = () => {\r\n if (!startTime) {\r\n setMessage(t('NoDateEvent'))\r\n setBkgColor('white')\r\n return\r\n }\r\n const diff = new Date(startTime) - new Date()\r\n if (diff < timeThresholds.GONE) {\r\n setMessage(t('EventTooLate'))\r\n setBkgColor({ backgroundColor: 0x7f0505 })\r\n return\r\n } else if (diff < timeThresholds.NOW && diff > timeThresholds.GONE) {\r\n setMessage(t('CallingEvent'))\r\n setBkgColor({ backgroundColor: 0x206f10 })\r\n onTime()\r\n return\r\n } else if (diff < timeThresholds.ALMOST) {\r\n setMessage(t('AlmostEvent'))\r\n setBkgColor({ backgroundColor: 0x602010 })\r\n } else if (diff < timeThresholds.MINUTES) {\r\n setMessage(t('MinutesToEvent'))\r\n } else if (diff < timeThresholds.HOURS) {\r\n setMessage(t('HoursToEvent'))\r\n } else {\r\n setMessage(t('DaysToEvent'))\r\n setBkgColor({ backgroundColor: 0x50e6e6 })\r\n }\r\n\r\n setTimeLeft(secondsToMessage(diff / 1000))\r\n }\r\n\r\n useEffect(() => {\r\n if (updateTimer.current) {\r\n clearInterval(updateTimer.current)\r\n } else {\r\n checkMeetingTime()\r\n }\r\n updateTimer.current = setInterval(() => {\r\n checkMeetingTime()\r\n }, 1000)\r\n }, [startTime])\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (updateTimer.current) {\r\n clearInterval(updateTimer.current)\r\n }\r\n }\r\n }, [])\r\n\r\n const handleAnimationClick = () => {\r\n setTimeout(() => {\r\n setUserClicked(true)\r\n }, 1500)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n handleAnimationClick()}\r\n />\r\n \r\n {userClicked && (\r\n {\r\n history.push('/game/1')\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nEventTimer.propTypes = {\r\n startTime: PropTypes.string,\r\n onTime: PropTypes.func,\r\n}\r\n\r\nconst Container = styled.div`\r\n background-color: ${(props) => props.color};\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n`\r\nconst Message = styled.div`\r\n font-family: 'Slackey', cursive;\r\n font-size: 2em;\r\n`\r\n\r\nconst Time = styled.h2`\r\n font-family: 'Orbitron', sans-serif;\r\n font-size: 1em;\r\n`\r\n\r\nexport default EventTimer\r\n","import React, { useState, useEffect, useContext } from 'react'\r\nimport Jitsi from 'react-jitsi'\r\nimport { useParams } from 'react-router-dom'\r\nimport { Page } from '../components/common/styles'\r\nimport EventTimer from '../components/event/EventTimer'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport styled from 'styled-components'\r\nimport Loading from '../components/common/Loading'\r\nimport { useTranslation } from 'react-i18next'\r\nimport Devices from '../shared/Devices'\r\nimport useWindowDimensions from '../hooks/useWindowDimensions'\r\n\r\nconst toolbarButtons = [\r\n 'camera',\r\n 'chat',\r\n 'fullscreen',\r\n 'hangup',\r\n 'help',\r\n 'microphone',\r\n 'raisehand',\r\n 'select-background',\r\n 'settings',\r\n 'stats',\r\n 'toggle-camera',\r\n 'videoquality',\r\n '__end',\r\n]\r\n\r\nconst Event = () => {\r\n const { t } = useTranslation()\r\n const { width, height } = useWindowDimensions()\r\n const { authState } = useContext(AuthContext)\r\n const { id } = useParams()\r\n const [eventData, setEventData] = useState(undefined)\r\n const [isCallReady, setIsCallReady] = useState(false)\r\n // eslint-disable-next-line no-unused-vars\r\n const [jitsiApi, setJitsiApi] = useState()\r\n\r\n const handleAPI = (JitsiMeetAPI) => {\r\n if (authState.usrAttr.profile.isAdmin) {\r\n setJitsiApi(JitsiMeetAPI)\r\n JitsiMeetAPI.executeCommand('setFollowMe', true)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n console.log(`Event with id ${id}`)\r\n // Temporary hack to put the event in the profile data\r\n setEventData(authState.usrAttr.profile.event)\r\n }, [id, setEventData])\r\n\r\n const customLoading = () => {\r\n return \r\n }\r\n\r\n return (\r\n \r\n {eventData ? (\r\n isCallReady ? (\r\n \r\n Arturo Cumple su primer año!\r\n \r\n \r\n ) : (\r\n setIsCallReady(true)}\r\n />\r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst CallContainer = styled.div`\r\n margin-left: auto;\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n width: 100%;\r\n height: 100%;\r\n /* background-color: #8ce9c2; */\r\n background-image: url('/imgs/partyBkg.jpg');\r\n display: flex;\r\n flex-direction: column;\r\n`\r\nconst Title = styled.h1`\r\n font-family: 'Walter Turncoat', cursive;\r\n text-shadow: 2px 2px #707070;\r\n color: #4d3574;\r\n font-size: 1.5em;\r\n margin: 0 0 5% 0;\r\n @media ${Devices.laptop} {\r\n font-size: 3em;\r\n }\r\n`\r\n\r\nexport default Event\r\n","import React from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Panel, PageHeader, TextBox } from '../components/birthday/PanelStyles'\r\nimport { Page } from '../components/common/styles'\r\n\r\nconst AboutUs = () => {\r\n const { t } = useTranslation()\r\n return (\r\n \r\n \r\n {t('AboutUs')}\r\n \r\n {t(\"We are Arturo's parents, doing!\")}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default AboutUs\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect, useRef, useCallback } from 'react'\r\nimport styled from 'styled-components'\r\nimport { PropTypes } from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Sprite, Text, Container, Graphics } from '@inlet/react-pixi'\r\nimport useDeviceOrientation from '../../hooks/useWindowOrientation'\r\nimport usePixiCanvasSize from '../../hooks/usePixiCanvasSize'\r\n\r\nconst GameHelp = ({ text, btnOkTxt, onOkClick, btnOutTxt, onOutClick }) => {\r\n const { width, height } = usePixiCanvasSize()\r\n const draw = useCallback(\r\n (g) => {\r\n g.clear()\r\n g.lineStyle(5, 0x5500ff, 0.9)\r\n g.beginFill(0x8800cc, 0.8)\r\n g.drawRoundedRect(\r\n width * 0.1,\r\n height * 0.1,\r\n width * 0.8,\r\n height * 0.8,\r\n 15\r\n )\r\n g.endFill()\r\n },\r\n [width, height]\r\n )\r\n const drawB1 = useCallback(\r\n (g) => {\r\n g.clear()\r\n g.lineStyle(5, 0x5500ff, 0.9)\r\n g.beginFill(0x00aa55, 0.8)\r\n g.drawRoundedRect(\r\n width * 0.15,\r\n height * 0.7,\r\n width * 0.3,\r\n height * 0.1,\r\n 15\r\n )\r\n g.endFill()\r\n },\r\n [width, height]\r\n )\r\n const drawB2 = useCallback(\r\n (g) => {\r\n g.clear()\r\n g.lineStyle(5, 0x5500ff, 0.9)\r\n g.beginFill(0xaa0055, 0.8)\r\n g.drawRoundedRect(\r\n width * 0.55,\r\n height * 0.7,\r\n width * 0.3,\r\n height * 0.1,\r\n 15\r\n )\r\n g.endFill()\r\n },\r\n [width, height]\r\n )\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGameHelp.propTypes = {\r\n text: PropTypes.string,\r\n btnOkTxt: PropTypes.string,\r\n onOkClick: PropTypes.func,\r\n btnOutTxt: PropTypes.string,\r\n onOutClick: PropTypes.func,\r\n}\r\nexport default GameHelp\r\n","import React, { useState, useEffect, useCallback } from 'react'\r\nimport { PropTypes } from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport {\r\n useTick,\r\n Container,\r\n useApp,\r\n TilingSprite,\r\n Sprite,\r\n Text,\r\n} from '@inlet/react-pixi'\r\nimport Baby from './Baby'\r\nimport GameBoard from './GameBoard'\r\nimport usePixiCanvasSize from '../../hooks/usePixiCanvasSize'\r\n// eslint-disable-next-line no-unused-vars\r\nimport * as PIXI_SOUND from '@pixi/sound' // This is still necessary!\r\nimport * as PIXI from 'pixi.js'\r\n\r\nconst numEnemies = 20\r\nconst speed = 4\r\nconst babyDim = {\r\n width: 100,\r\n height: 50,\r\n}\r\n\r\nconst enemyTypes = [\r\n 'ambulance',\r\n 'dryer',\r\n 'emptyPlate',\r\n 'sucker',\r\n 'brocoli',\r\n 'shoe',\r\n]\r\nconst randomSprite = () => {\r\n const item = enemyTypes[Math.round(Math.random() * (enemyTypes.length - 1))]\r\n return {\r\n img: `/imgs/game1/level1/${item}.png`,\r\n name: item,\r\n sound: `/sounds/${item}.{mp3.wav}`,\r\n }\r\n}\r\n\r\nconst Game = ({ start, onExit, onRestart, onLoaded }) => {\r\n const { t } = useTranslation()\r\n const { width, height } = usePixiCanvasSize()\r\n const [action, setAction] = useState('lying')\r\n const [bkgX, setBkgX] = useState(0)\r\n const [groundY, setGroundY] = useState(194)\r\n const [scale, setScale] = useState(1)\r\n const [characterLocked, setCharacterLocked] = useState(false)\r\n const [enemyX, setEnemyX] = useState(width * 0.7)\r\n const [enemiesSrcs] = useState(\r\n [...Array(numEnemies).keys()].map((k) => {\r\n const sprite = randomSprite()\r\n return {\r\n key: k,\r\n img: sprite.img,\r\n sound: sprite.sound,\r\n name: sprite.name,\r\n }\r\n })\r\n )\r\n const [counter, setCounter] = useState(0)\r\n const [enemies, setEnemies] = useState([])\r\n const [hit, setHit] = useState(false)\r\n const [points, setPoints] = useState(0)\r\n const [lives, setLives] = useState(4)\r\n const [gameOver, setGameOver] = useState(false)\r\n const [ended, setEnd] = useState(false)\r\n const [damagers, setDamagers] = useState([])\r\n const [startedMoving, setStartedMoving] = useState(false)\r\n const [sounds, setSounds] = useState()\r\n const [loader] = useState(new PIXI.Loader())\r\n const app = useApp()\r\n\r\n const containerRef = useCallback((c) => {\r\n if (c !== null) {\r\n setEnemies(c.children)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n loader.add('music', '/sounds/game1Bkg.mp3')\r\n loader.add('damage', '/sounds/damage.mp3')\r\n loader.add('loose', '/sounds/loose.wav')\r\n loader.add('win', '/sounds/win.wav')\r\n enemyTypes.forEach((e) => {\r\n loader.add(e, `/sounds/${e}.mp3`)\r\n })\r\n loader.load(function (loader, resources) {\r\n setSounds(resources)\r\n console.log('sounds loaded')\r\n onLoaded()\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (gameOver || ended) {\r\n Object.keys(sounds).forEach((k) => sounds[k].sound.stop())\r\n }\r\n if (gameOver) {\r\n sounds.loose.sound.play()\r\n } else if (ended) {\r\n sounds.win.sound.play()\r\n }\r\n }, [gameOver, ended])\r\n\r\n useEffect(() => {\r\n if (startedMoving && sounds) {\r\n console.log(sounds)\r\n sounds.music.sound.volume = 0.2\r\n sounds.music.sound.play({ loop: true, singleInstance: true })\r\n return () => {\r\n sounds.music.sound.stop()\r\n }\r\n }\r\n // sound.play('music')\r\n }, [startedMoving, sounds])\r\n\r\n useEffect(() => {\r\n if (height < 500) {\r\n setScale(0.4)\r\n setGroundY((g) => g * 0.4)\r\n } else {\r\n setScale(1)\r\n setGroundY(194)\r\n }\r\n }, [height])\r\n\r\n useTick((delta) => {\r\n if (!gameOver && !ended && start) {\r\n if (characterLocked) {\r\n if (action === 'crawlRight') {\r\n setBkgX((x) => x - delta * speed)\r\n setEnemyX((x) => x - delta * speed)\r\n }\r\n }\r\n setCounter((c) => c + 0.02 * delta)\r\n if (hit === false) {\r\n enemies\r\n .filter((e) => e.visible === true)\r\n .some((e) => {\r\n if (\r\n e.x < width / 2 &&\r\n e.x + e.width > width / 2 - babyDim.width * 0.3 &&\r\n e.y > height - groundY - babyDim.height\r\n ) {\r\n setHit(true)\r\n sounds.damage.sound.play()\r\n const myIdx = enemies.indexOf(e)\r\n if (!damagers.includes(myIdx)) {\r\n setDamagers([...damagers, myIdx])\r\n }\r\n if (lives <= 1) {\r\n setGameOver(true)\r\n }\r\n setLives((l) => l - 1)\r\n return true\r\n }\r\n })\r\n }\r\n enemies\r\n .filter(\r\n (e) =>\r\n e.visible === true &&\r\n e.x < width * 0.67 &&\r\n e.x + e.width > width * 0.33\r\n )\r\n .forEach((e) => {\r\n const myIdx = enemies.indexOf(e)\r\n const soundName = enemiesSrcs[myIdx].name\r\n if (e.x > width * 0.65 && sounds[soundName].sound.isPlaying) {\r\n sounds[soundName].sound.stop()\r\n } else if (e.x > width * 0.6 && !sounds[soundName].sound.isPlaying) {\r\n sounds[soundName].sound.play({ loop: true, singleInstance: true })\r\n } else if (e.x < width * 0.3 && sounds[soundName].sound.isPlaying) {\r\n sounds[soundName].sound.stop()\r\n } else {\r\n sounds[soundName].sound.volume =\r\n ((width * 0.3 - Math.abs(width / 2 - e.x)) / (width * 0.3)) * 0.4\r\n }\r\n })\r\n }\r\n const newPoints = enemies.filter(\r\n (e, idx) => e.visible === false && e.x < 0 && !damagers.includes(idx)\r\n ).length\r\n if (points !== newPoints) {\r\n setPoints(newPoints)\r\n }\r\n if (enemies.filter((e) => e.x < 0).length >= numEnemies) {\r\n setEnd(true)\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n if (hit) {\r\n const timeout = setTimeout(() => {\r\n setHit(false)\r\n }, 2000)\r\n return () => {\r\n clearTimeout(timeout)\r\n }\r\n }\r\n }, [hit])\r\n\r\n const handleLeft = () => {\r\n if (!startedMoving) setStartedMoving(true)\r\n setAction('crawlLeft')\r\n }\r\n\r\n const handleRight = () => {\r\n if (!startedMoving) setStartedMoving(true)\r\n setAction('crawlRight')\r\n }\r\n\r\n const handleKeyUp = (e) => {\r\n handleStop()\r\n }\r\n\r\n const handleKeyDown = (e) => {\r\n if (e.keyCode === 39) {\r\n // Right\r\n handleRight()\r\n } else if (e.keyCode === 37) {\r\n // Left\r\n handleLeft()\r\n } else if (e.keyCode === 38) {\r\n // Up\r\n } else if (e.keyCode === 40) {\r\n // Down\r\n }\r\n }\r\n const handleStop = () => {\r\n setAction('lying')\r\n }\r\n const handleTouchEnd = (e) => {\r\n handleStop()\r\n }\r\n\r\n const handleTouchStart = (e) => {\r\n const clientX = e.touches[0].clientX\r\n if (clientX < width * 0.5) {\r\n handleLeft()\r\n } else {\r\n handleRight()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (start) {\r\n window.addEventListener('keydown', handleKeyDown, false)\r\n window.addEventListener('keyup', handleKeyUp, false)\r\n app.renderer.view.addEventListener('touchstart', handleTouchStart, false)\r\n app.renderer.view.addEventListener('touchend', handleTouchEnd, false)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', handleKeyDown, false)\r\n window.removeEventListener('keyup', handleKeyUp, false)\r\n if (app?.renderer?.view) {\r\n app.renderer.view.removeEventListener(\r\n 'touchstart',\r\n handleTouchStart,\r\n false\r\n )\r\n app.renderer.view.removeEventListener(\r\n 'touchend',\r\n handleTouchEnd,\r\n false\r\n )\r\n }\r\n }\r\n }\r\n }, [start, app.renderer.view])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {enemiesSrcs.map((e) => (\r\n 0 &&\r\n enemyX + (width / 3) * e.key < width\r\n }\r\n key={e.key}\r\n image={e.img}\r\n x={enemyX + (width / 3) * e.key}\r\n y={\r\n height -\r\n groundY -\r\n (Math.abs(Math.cos((counter + e.key) * (e.key + 1) * 0.2)) *\r\n (height - groundY)) /\r\n 2\r\n }\r\n anchor={{ x: 0.5, y: 1 }}\r\n scale={scale / 2}\r\n // ref={loadEnemies}\r\n />\r\n ))}\r\n \r\n {start && (\r\n setCharacterLocked(val)}\r\n hit={hit}\r\n />\r\n )}\r\n \r\n {[...Array(lives).keys()].map((k) => (\r\n \r\n ))}\r\n {(gameOver || ended) && (\r\n onRestart()}\r\n onOutClick={() => onExit()}\r\n />\r\n )}\r\n \r\n )\r\n}\r\n\r\nGame.propTypes = {\r\n start: PropTypes.bool,\r\n onExit: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n onLoaded: PropTypes.func,\r\n}\r\nexport default Game\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect, useRef, useCallback } from 'react'\r\nimport styled from 'styled-components'\r\nimport { PropTypes } from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Sprite, Text, Container, Graphics } from '@inlet/react-pixi'\r\nimport useDeviceOrientation from '../../hooks/useWindowOrientation'\r\nimport usePixiCanvasSize from '../../hooks/usePixiCanvasSize'\r\n\r\nconst StartHelp = ({ isDone }) => {\r\n const { t } = useTranslation()\r\n const orientation = useDeviceOrientation()\r\n const timeoutRef = useRef()\r\n const [showMessage, setShowMessage] = useState()\r\n const [rotateIsDone, setRotateIsDone] = useState(false)\r\n const { width, height } = usePixiCanvasSize()\r\n\r\n useEffect(() => {\r\n if (orientation === 'landscape' && !rotateIsDone && !timeoutRef.current) {\r\n setRotateIsDone(true)\r\n setShowMessage(true)\r\n isDone()\r\n // timeoutRef.current = setTimeout(() => {\r\n // timeoutRef.current = undefined\r\n // setShowMessage(false)\r\n // isDone()\r\n // }, 2000)\r\n }\r\n }, [rotateIsDone, orientation])\r\n\r\n // useEffect(() => {\r\n // return () => {\r\n // if (timeoutRef.current) {\r\n // clearTimeout(timeoutRef.current)\r\n // }\r\n // }\r\n // }, [])\r\n\r\n const draw = useCallback(\r\n (g) => {\r\n g.clear()\r\n\r\n g.beginFill(0x000000, 0.85)\r\n g.moveTo(0, 0)\r\n g.lineTo(0, height)\r\n g.lineTo(width, height)\r\n g.lineTo(width, 0)\r\n g.lineTo(0, 0)\r\n g.endFill()\r\n },\r\n [width, height]\r\n )\r\n\r\n return (\r\n \r\n {\r\n if (showMessage) {\r\n setShowMessage(false)\r\n isDone()\r\n }\r\n }}\r\n touchstart={() => {\r\n if (showMessage) {\r\n setShowMessage(false)\r\n isDone()\r\n }\r\n }} */\r\n >\r\n {!rotateIsDone && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {showMessage && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nStartHelp.propTypes = {\r\n isDone: PropTypes.func,\r\n}\r\n\r\nexport default StartHelp\r\n","import { useState, useEffect } from 'react'\r\nimport useWindowDimensions from './useWindowDimensions'\r\n\r\nexport default function useDeviceOrientation() {\r\n const { width, height } = useWindowDimensions()\r\n const [orientation, setOrientation] = useState()\r\n\r\n useEffect(() => {\r\n setOrientation(width > height ? 'landscape' : 'portrait')\r\n }, [width, height])\r\n return orientation\r\n}\r\n","import React, { createContext, useState } from 'react'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nexport const initialState = { displayTopBar: true }\r\nexport const AppContext = createContext(initialState)\r\nfunction AppCtxProvider(props) {\r\n const [appState, setAppState] = useState(initialState)\r\n const hideTopBar = () => {\r\n setAppState((s) => ({ ...s, displayTopBar: false }))\r\n }\r\n const showTopBar = () => {\r\n setAppState((s) => ({ ...s, displayTopBar: true }))\r\n }\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nAppCtxProvider.propTypes = {\r\n children: PropTypes.node,\r\n}\r\n\r\nexport { AppCtxProvider }\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect, useContext } from 'react'\r\nimport styled from 'styled-components'\r\nimport { PropTypes } from 'prop-types'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { Stage, Text, Container as PixiContainer } from '@inlet/react-pixi'\r\nimport Game from '../components/pixi/Game'\r\nimport StartHelp from '../components/pixi/StartHelp'\r\nimport { AppContext } from '../contexts/appContext'\r\nimport { FullScreen, useFullScreenHandle } from 'react-full-screen'\r\nimport useWindowDimensions from '../hooks/useWindowDimensions'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nconst PlayGame = () => {\r\n const handle = useFullScreenHandle()\r\n const { width, height } = useWindowDimensions()\r\n const [messageDone, setMessageDone] = useState(false)\r\n const [assetsReady, setAssetsReady] = useState(false)\r\n const { hideTopBar, showTopBar } = useContext(AppContext)\r\n const [key, setKey] = useState(0)\r\n const history = useHistory()\r\n\r\n useEffect(() => {\r\n try {\r\n handle.enter().catch((e) => console.log('Fullescreen exception'))\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n hideTopBar()\r\n return () => {\r\n try {\r\n handle.exit().catch((e) => console.log('could not exit fullscreen'))\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n showTopBar()\r\n }\r\n }, [])\r\n\r\n const handleReturn = () => {\r\n history.push('/events/1')\r\n }\r\n\r\n const handleRestart = () => {\r\n console.log('Restart issued')\r\n setKey((x) => x + 1)\r\n setAssetsReady(false)\r\n }\r\n\r\n const handleLoaded = () => {\r\n console.log(messageDone)\r\n setAssetsReady(true)\r\n }\r\n\r\n return (\r\n \r\n \r\n handleReturn()}\r\n onRestart={() => handleRestart()}\r\n onLoaded={() => handleLoaded()}\r\n />\r\n {(!messageDone || !assetsReady) && (\r\n \r\n {\r\n // setKey((x) => x + 1)\r\n setMessageDone(true)\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PlayGame\r\n","import styled from 'styled-components'\r\n\r\nexport const Wrapper = styled.div`\r\n .FourOhFour {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background: #121212;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n .bg {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background-size: cover;\r\n mix-blend-mode: overlay;\r\n }\r\n\r\n .code {\r\n font-family: 'Alfa Slab One', cursive;\r\n font-size: 144px;\r\n height: 100vh;\r\n color: white;\r\n width: 100%;\r\n display: flex;\r\n backgorund-position: center;\r\n align-items: center;\r\n background-size: cover;\r\n justify-content: center;\r\n }\r\n }\r\n`\r\nexport default Wrapper\r\n","import Wrapper from './pageNotFound.style'\r\nimport React from 'react'\r\n\r\nconst PageNotFound = () => {\r\n return (\r\n \r\n
\r\n
\r\n
404
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default PageNotFound\r\n","import { PropTypes } from 'prop-types'\r\nimport React from 'react'\r\nimport Drawer from '@material-ui/core/Drawer'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport List from '@material-ui/core/List'\r\nimport Divider from '@material-ui/core/Divider'\r\nimport ListItem from '@material-ui/core/ListItem'\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\r\nimport ListItemText from '@material-ui/core/ListItemText'\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport CakeIcon from '@material-ui/icons/Cake'\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport SupervisorAccountIcon from '@material-ui/icons/SupervisorAccount'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nconst useStyles = makeStyles({\r\n list: {\r\n width: 250,\r\n },\r\n})\r\nconst SideMenu = ({ openMenu, setMenuOpen }) => {\r\n const { t } = useTranslation()\r\n const history = useHistory()\r\n const classes = useStyles()\r\n\r\n const navigateTo = (url) => {\r\n setMenuOpen(false)\r\n history.push(url)\r\n }\r\n\r\n const list = () => (\r\n \r\n \r\n {\r\n navigateTo('/easter_hunt')\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {\r\n navigateTo('/birthday/first')\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n navigateTo('/about')\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n navigateTo('/admin/users')\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n return (\r\n setMenuOpen(false)}>\r\n {list()}\r\n \r\n )\r\n}\r\nSideMenu.propTypes = {\r\n openMenu: PropTypes.bool,\r\n setMenuOpen: PropTypes.func,\r\n}\r\n\r\nexport default SideMenu\r\n","import { useEffect } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation()\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [pathname])\r\n\r\n return null\r\n}\r\n","import React, { createElement, useContext } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport { PropTypes } from 'prop-types'\r\nimport Loading from './common/Loading'\r\n\r\nconst ProtectedRoute = ({ component }) => {\r\n const { authState } = useContext(AuthContext)\r\n\r\n return (\r\n <>\r\n {authState ? (\r\n \r\n authState.isAuth ? (\r\n createElement(component)\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nProtectedRoute.propTypes = {\r\n component: PropTypes.func,\r\n}\r\n\r\nexport default ProtectedRoute\r\n","import AppBar from '@material-ui/core/AppBar'\r\nimport Toolbar from '@material-ui/core/Toolbar'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport { AuthContext } from '../contexts/authContext'\r\nimport React, { useContext, useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport MenuIcon from '@material-ui/icons/Menu'\r\nimport MenuItem from '@material-ui/core/MenuItem'\r\nimport Menu from '@material-ui/core/Menu'\r\nimport Select from '@material-ui/core/Select'\r\nimport { useTranslation } from 'react-i18next'\r\nimport AccountCircle from '@material-ui/icons/AccountCircle'\r\nimport MoreIcon from '@material-ui/icons/MoreVert'\r\nimport { LogOut } from '../services/authentication'\r\nimport { PropTypes } from 'prop-types'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n}))\r\n\r\nconst MenuBar = ({ onMenuOpen }) => {\r\n const classes = useStyles()\r\n const { t, i18n } = useTranslation()\r\n const { authState, setAuthState } = useContext(AuthContext)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = useState(null)\r\n\r\n const isMenuOpen = Boolean(anchorEl)\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl)\r\n\r\n const handleProfileMenuOpen = (event) => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null)\r\n }\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null)\r\n handleMobileMenuClose()\r\n }\r\n\r\n const handleMobileMenuOpen = (event) => {\r\n setMobileMoreAnchorEl(event.currentTarget)\r\n }\r\n\r\n const menuId = 'primary-search-account-menu'\r\n const handleChange = (lan) => {\r\n i18n.changeLanguage(lan)\r\n }\r\n const handleLogOut = () => {\r\n LogOut().then(\r\n () => {\r\n setAuthState({ isAuth: false, usrAttr: {} })\r\n },\r\n (err) => {\r\n console.log('Error Logging Out:', err)\r\n }\r\n )\r\n }\r\n\r\n const renderMenu = (\r\n \r\n {authState.usrAttr.profile.name}\r\n {t('Logout')}\r\n \r\n )\r\n\r\n const mobileMenuId = 'primary-search-account-menu-mobile'\r\n\r\n const renderMobileMenu = (\r\n \r\n \r\n \r\n \r\n \r\n

Profile

\r\n
\r\n \r\n )\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('OSP')}\r\n \r\n handleChange(e.target.value)}\r\n >\r\n EN\r\n ES\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {renderMobileMenu}\r\n {renderMenu}\r\n \r\n )\r\n}\r\n\r\nMenuBar.propTypes = {\r\n onMenuOpen: PropTypes.func,\r\n}\r\n\r\nexport default MenuBar\r\n","// import { useTranslation } from \"react-i18next\";\nimport EasterHunt from './pages/easter_hunt'\nimport Users from './pages/users'\nimport Login from './pages/login'\nimport FirstBirthday from './pages/firstBirthday'\nimport Event from './pages/event'\nimport AboutUs from './pages/aboutUs'\nimport PlayGame from './pages/playGame'\nimport PageNotFound from './pages/pageNotFound'\nimport SideMenu from './components/SideMenu'\nimport ScrollToTop from './components/common/ScrollToTop'\nimport Loading from './components/common/Loading'\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom'\nimport ProtectedRoute from './components/ProtectedRoute'\nimport { AuthContext } from './contexts/authContext'\nimport { AppContext } from './contexts/appContext'\nimport React, { useContext, useEffect, useState } from 'react'\nimport MenuBar from './components/MenuBar'\nimport { GetCurrentSession } from './services/authentication'\nimport { useTranslation } from 'react-i18next'\nimport './App.css'\n\nfunction App() {\n const { t, i18n } = useTranslation()\n const { authState, setAuthState } = useContext(AuthContext)\n const { displayTopBar } = useContext(AppContext)\n const [ready, setReady] = useState(false)\n const [drawerOpen, setDrawerOpen] = useState(false)\n\n useEffect(() => {\n GetCurrentSession()\n .then((auth) => {\n setAuthState({\n isAuth: true,\n usrAttr: { ...auth.usrAttr },\n token: auth.token,\n })\n i18n.changeLanguage(auth.usrAttr.locale)\n })\n .catch(() => {})\n .finally(() => {\n setReady(true)\n })\n }, [setReady, setAuthState, i18n])\n\n return (\n <>\n {ready ? (\n <>\n {authState.isAuth && displayTopBar && (\n setDrawerOpen(true)}>\n )}\n
\n \n \n {authState.isAuth && (\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\nexport default App\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport './i18n'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\nimport { AuthCtxProvider } from './contexts/authContext'\nimport { AppCtxProvider } from './contexts/appContext'\n\nReactDOM.render(\n // \n \n \n \n \n ,\n // \n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""}