{"version":3,"sources":["hooks/useAuthSDK.tsx","utils/identity.ts","hooks/useIdentity.tsx","config/misc.ts","hooks/usePrivateKeyState.tsx","config/auth.ts","providers/auth.tsx","components/Button/Button.tsx","components/Auth/AuthButton.tsx","assets/background-login-sm.png","assets/background-login-lg.png","components/Auth/AuthContainer.tsx","components/Auth/AuthPaper.tsx","components/Auth/AuthDrawer.tsx","components/Auth/Heading.tsx","components/Auth/TextInput.tsx","components/Auth/Puller.tsx","components/Auth/HelperText.tsx","components/Auth/HelperLink.tsx","pages/auth.tsx","assets/google.png","assets/linkedin.png","lib/agent.ts","assets/default-vote-icon.svg","declarations/backend/backend.did.js","declarations/backend/index.js","utils/backend.ts","hooks/useGetTalkingPoints.tsx","providers/voting.tsx","hooks/useSubmitVote.tsx","components/Home/OutlinedButton.tsx","components/Home/TalkingPointDescription.tsx","components/Home/TalkingPointHeading.tsx","components/Home/TalkingPointLabel.tsx","components/Home/TalkingPointPopup.tsx","assets/edit-icon.png","components/Home/VoteLabel.tsx","utils/misc.ts","components/Home/VoteIcon.tsx","components/Home/TalkingPoint.tsx","assets/background-home-sm.png","assets/background-home-lg.png","components/Home/CurrentTalkingPoint.tsx","components/Home/TalkingPointsStack.tsx","hooks/useResetVotes.tsx","components/Home/ActionsSpeedDial.jsx","pages/home.tsx","App.tsx","providers/snackbar.tsx","providers/theme.tsx","index.tsx"],"names":["useAuthSDK","React","useState","undefined","authSdk","setAuthSdk","initAuth","useCallback","a","torusSdk","TorusSdk","baseUrl","window","location","origin","uxMode","UX_MODE","POPUP","network","init","skipSw","useEffect","then","sdk","catch","err","console","error","getIdentity","privateKey","value","hexString","match","Uint8Array","map","byte","parseInt","fromHexString","Ed25519KeyIdentity","generate","useIdentity","useMemo","GET_TALKING_POINTS_QUERY_KEY","usePrivateKeyState","useSessionstorageState","AUTH0_DOMAIN","GOOGLE_VERIFIER_DETAILS","typeOfLogin","verifier","clientId","LINKEDIN_VERIFIER_DETAILS","jwtParams","domain","PASSWORDLESS_VERIFIER_DETAILS","AuthContext","createContext","AuthProvider","props","user","setUser","setPrivateKey","identity","isLoading","setIsLoading","isLoggedIn","login","type","login_hint","Error","loginData","triggerLogin","loginResult","userInfo","logout","Provider","useAuth","context","useContext","displayName","Button","styled","ButtonUnstyled","theme","background","cursor","fontFamily","typography","button","transition","palette","action","disabledBackground","color","text","disabled","AuthButton","primary","border","borderRadius","pxToRem","width","padding","fontSize","lineHeight","fontWeight","AuthContainer","backgroundColor","backgroundImage","backgroundLoginSm","backgroundSize","backgroundPosition","backgroundAttachment","minWidth","minHeight","paddingTop","breakpoints","up","backgroundLoginLg","paddingBottom","display","justifyContent","alignItems","flexDirection","AuthPaper","borderBottomLeftRadius","borderBottomRightRadius","opacity","backdropFilter","spacing","AuthDrawer","children","open","setOpen","useTheme","isBigScreen","useMediaQuery","SwipeableDrawer","anchor","onClose","onOpen","swipeAreaWidth","disableSwipeToOpen","hideBackdrop","elevation","disableEnforceFocus","ModalProps","keepMounted","PaperProps","sx","px","overflow","maxWidth","mx","Heading","Typography","textAlign","common","black","marginLeft","marginRight","TextInput","TextField","borderColor","Puller","Box","height","grey","position","top","left","HelperText","HelperLink","Link","textDecorationColor","LoginContentBottom","Stack","onClick","mr","mb","component","src","alt","mt","loginSchema","Yup","shape","email","required","LoginContentTop","formik","useFormik","initialValues","validationSchema","onSubmit","values","handleSubmit","onChange","handleChange","onBlur","handleBlur","name","label","variant","size","fullWidth","errors","touched","Auth","useBoundingclientrectRef","myRef","boundingClientRect","my","Divider","borderTop","ref","visibility","right","borderBottom","idlFactory","IDL","VoteType","Variant","Null","TalkingPointId","Text","UserTalkingPoint","Record","Service","Func","Opt","Vec","canisterId","process","createActor","options","agent","HttpAgent","agentOptions","Actor","actorOptions","getBackend","BackendActor","getBackendActor","backendActor","host","useGetTalkingPoints","useSWR","backend","getTalkingPoints","talkingPoints","VotingContext","VotingProvider","currentTalkingPointId","setCurrentTalkingPointId","changeCurrentTalkingPointId","id","resetVotes","resetMyVotes","vote","talkingPointId","voteObj","Yes","No","Abstain","useVoting","useSubmitVote","onSuccess","onError","useSWRConfig","mutate","talkingPosts","data","voteHandler","tpId","voteType","some","tp","newData","OutlinedButton","TalkingPointDescription","marginBottom","TalkingPointHeading","letterSpacing","TalkingPointLabel","fontStyle","DividerLabel","buttonStyles","TalkingPointPopup","paperCoords","Drawer","md","BackdropProps","direction","title","IconButton","Close","description","Check","Remove","LabelBox","paddingRight","textTransform","getColorByVoteType","bg","VoteLabel","getVoteType","VoteIcon","Container","content","transform","zIndex","colorAnimation","keyframes","ActiveIcon","filter","animation","TalkingPoint","active","skeleton","PopupProps","Skeleton","DefaultVoteIcon","editIcon","objectFit","ml","CurrentTalkingPoint","TalkingPointsStack","paddingBlock","bottom","down","useResetVotes","ActionsSpeedDial","loading","setLoading","enqueueSnackbar","useSnackbar","handleReset","handleLogout","SpeedDial","ariaLabel","icon","Avatar","profileImage","FabProps","SpeedDialAction","CircularProgress","tooltipTitle","tooltipOpen","ResponsiveReactPlayer","ReactPlayer","HomeContainer","backgroundHomeSm","backgroundHomeLg","VideoContainer","TalkingPointGridItem","Grid","marginTop","TPSimplestBar","SimpleBar","maxHeight","boxShadow","TalkingPointScrollbarContainer","forceVisible","autoHide","talkingPointsTimestamp","timestamp","start","end","Infinity","Home","getTalkingPointsResult","updateRect","myItemRef","itemBoundingClientRect","updateItemRect","currentTalkingPoint","find","talkingPoint","useOnWindowResize","fixedTalkingPoints","length","isValidating","disableGutters","xs","container","item","muted","controls","onProgress","playedSeconds","nextTpId","url","App","CustomSnackbarProvider","notistackRef","createRef","onClickDismiss","key","current","closeSnackbar","anchorOrigin","vertical","horizontal","lato","createTheme","h1","h2","h3","h4","h5","h6","components","MuiCssBaseline","styleOverrides","body","overflowX","responsiveFontSizes","ThemeProvider","ReactDOM","render","StrictMode","CssBaseline","document","getElementById"],"mappings":"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","file":"static/js/main.55abddc1.chunk.js","sourcesContent":["import React from 'react';\nimport TorusSdk, {UX_MODE} from '@toruslabs/customauth';\n\nconst useAuthSDK = () => {\n const [authSdk, setAuthSdk] = React.useState(undefined);\n\n const initAuth = React.useCallback(async () => {\n const torusSdk = new TorusSdk({\n baseUrl: `${window.location.origin}/serviceworker`,\n // enableLogging: true,\n uxMode: UX_MODE.POPUP,\n network: 'testnet',\n });\n\n await torusSdk.init({skipSw: false});\n return torusSdk;\n }, []);\n\n React.useEffect(() => {\n initAuth()\n .then(sdk => setAuthSdk(sdk))\n .catch(err => console.error(err));\n }, [initAuth]);\n\n return authSdk;\n};\n\nexport default useAuthSDK;\n","import {Ed25519KeyIdentity} from '@dfinity/identity';\n\nfunction fromHexString(hexString: string) {\n const match = hexString.match(/.{1,2}/g);\n\n if (match) {\n return new Uint8Array(match.map(byte => parseInt(byte, 16)));\n }\n}\n\nexport function getIdentity(privateKey: string) {\n const value = fromHexString(privateKey);\n if (value) {\n return Ed25519KeyIdentity.generate(new Uint8Array(value));\n }\n}\n","import React from 'react';\nimport {getIdentity} from '../utils/identity';\n\nconst useIdentity = (privateKey: string) => {\n const identity = React.useMemo(() => {\n if (privateKey) {\n return getIdentity(privateKey);\n }\n return undefined;\n }, [privateKey]);\n return identity;\n};\n\nexport default useIdentity;\n","export const PRIVATE_KEY_STORAGE_ID = 'privateKey';\nexport const GET_TALKING_POINTS_QUERY_KEY = 'talking-points';\n","import {useSessionstorageState} from 'rooks';\nimport {PRIVATE_KEY_STORAGE_ID} from '../config/misc';\n\nconst usePrivateKeyState = () => {\n return useSessionstorageState(PRIVATE_KEY_STORAGE_ID, '');\n};\n\nexport default usePrivateKeyState;\n","import {SubVerifierDetails} from '@toruslabs/customauth';\n\nexport const AUTH0_DOMAIN = 'https://gvmo.us.auth0.com';\n\nexport const GOOGLE_VERIFIER_DETAILS: SubVerifierDetails = {\n typeOfLogin: 'google',\n verifier: 'epoch-google',\n clientId: '962313737544-ikp2bgoshin44l24ep3k9fitmv2nv4i5.apps.googleusercontent.com',\n};\n\nexport const LINKEDIN_VERIFIER_DETAILS: SubVerifierDetails = {\n typeOfLogin: 'linkedin',\n verifier: 'epoch-clan-auth0-linkedin',\n clientId: 'pfkos5eETfdlymW5O9qdwc3y2JmbKEW7',\n jwtParams: {\n domain: AUTH0_DOMAIN,\n },\n};\n\nexport const PASSWORDLESS_VERIFIER_DETAILS: SubVerifierDetails = {\n typeOfLogin: 'email_password',\n verifier: 'epoch-clan-auth0-email-password',\n clientId: 'pfkos5eETfdlymW5O9qdwc3y2JmbKEW7',\n jwtParams: {domain: AUTH0_DOMAIN},\n};\n","import {Ed25519KeyIdentity} from '@dfinity/identity';\nimport TorusSdk from '@toruslabs/customauth';\nimport React from 'react';\nimport useAuthSDK from '../hooks/useAuthSDK';\nimport useIdentity from '../hooks/useIdentity';\nimport usePrivateKeyState from '../hooks/usePrivateKeyState';\nimport {\n GOOGLE_VERIFIER_DETAILS,\n LINKEDIN_VERIFIER_DETAILS,\n PASSWORDLESS_VERIFIER_DETAILS,\n AUTH0_DOMAIN,\n} from '../config/auth';\n\ntype LoginType = 'google' | 'linkedin' | 'passwordless';\n\ntype User = {\n name: string;\n email: string;\n profileImage: string;\n};\n\ntype AuthContextType = {\n identity: Ed25519KeyIdentity | undefined;\n login: (type: LoginType, login_hint?: string) => Promise;\n user?: User;\n isLoggedIn: boolean;\n authSdk: TorusSdk | undefined;\n privateKey: string;\n isLoading: boolean;\n};\n\nconst AuthContext = React.createContext(undefined);\nAuthContext.displayName = 'AuthContext';\n\nfunction AuthProvider(props: {children: React.ReactNode}) {\n const authSdk = useAuthSDK();\n const [user, setUser] = React.useState();\n const [privateKey, setPrivateKey] = usePrivateKeyState();\n const identity = useIdentity(privateKey);\n const [isLoading, setIsLoading] = React.useState(false);\n\n const isLoggedIn = !!identity;\n\n const login = React.useCallback(\n async (type: LoginType, login_hint?: string) => {\n try {\n if (!authSdk) {\n throw new Error('authSdk is not defined');\n }\n setIsLoading(true);\n let loginData = GOOGLE_VERIFIER_DETAILS;\n if (type === 'linkedin') {\n loginData = LINKEDIN_VERIFIER_DETAILS;\n }\n if (type === 'passwordless') {\n loginData = PASSWORDLESS_VERIFIER_DETAILS;\n if (login_hint) {\n loginData = {\n ...PASSWORDLESS_VERIFIER_DETAILS,\n jwtParams: {domain: AUTH0_DOMAIN, login_hint},\n };\n }\n }\n const loginResult = await authSdk.triggerLogin(loginData);\n setUser(loginResult.userInfo);\n setPrivateKey(loginResult.privateKey);\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n },\n [authSdk, setPrivateKey]\n );\n\n const logout = React.useCallback(async () => {\n setPrivateKey('');\n setUser(undefined);\n }, [setPrivateKey]);\n\n const value = React.useMemo(() => {\n return {\n identity,\n login,\n user,\n isLoggedIn,\n authSdk,\n privateKey,\n isLoading,\n logout,\n };\n }, [authSdk, identity, isLoading, isLoggedIn, login, logout, privateKey, user]);\n\n return ;\n}\n\nfunction useAuth() {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error(`useAuth must be used within a AuthProvider`);\n }\n return context;\n}\n\nexport {AuthProvider, useAuth};\n","import {ButtonUnstyled, styled} from '@mui/material';\n\nexport const Button = styled(ButtonUnstyled)(({theme}) => ({\n background: 'none',\n cursor: 'pointer',\n fontFamily: theme.typography.button.fontFamily,\n transition: 'background 0.2s ease-in-out',\n '&:disabled': {\n background: theme.palette.action.disabledBackground,\n color: theme.palette.text.disabled,\n cursor: 'not-allowed',\n },\n}));\n","import {styled} from '@mui/material';\nimport {Button} from '../Button/Button';\n\nexport const AuthButton = styled(Button)(({theme, ...props}) => ({\n background: props.primary ? '#5C87FF' : '#FFFFFFB3',\n border: `1px solid ${props.primary ? '#0000001A' : '#FFFFFF80'}`,\n color: props.primary ? '#FFFFFF' : '#000000',\n borderRadius: theme.typography.pxToRem(12),\n width: '100%',\n padding: theme.typography.pxToRem(10),\n fontSize: theme.typography.pxToRem(16),\n lineHeight: '1.4',\n fontWeight: '500',\n cursor: 'pointer',\n '&:hover': {\n background: props.primary ? '#5C87FFee' : '#FFFFFFB3',\n },\n}));\n","export default __webpack_public_path__ + \"static/media/background-login-sm.35c73a9a.png\";","export default __webpack_public_path__ + \"static/media/background-login-lg.b9ef0445.png\";","import {styled} from '@mui/material';\nimport backgroundLoginSm from '../../assets/background-login-sm.png';\nimport backgroundLoginLg from '../../assets/background-login-lg.png';\n\nexport const AuthContainer = styled('div')(({theme}) => ({\n backgroundColor: '#ecedf9',\n backgroundImage: `url(${backgroundLoginSm})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\n minWidth: '100vw',\n minHeight: '100vh',\n paddingTop: theme.typography.pxToRem(80),\n [theme.breakpoints.up('md')]: {\n backgroundImage: `url(${backgroundLoginLg})`,\n paddingBottom: theme.typography.pxToRem(80),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n },\n}));\n","import {styled} from '@mui/material';\n\nexport const AuthPaper = styled('div')(({theme}) => ({\n background: 'rgba(255, 255, 255, 0.3)',\n border: '1px solid #FFFFFF4D',\n borderRadius: '20px',\n borderBottomLeftRadius: '0',\n borderBottomRightRadius: '0',\n opacity: 1,\n backdropFilter: 'blur(32px)',\n padding: theme.spacing(2),\n [theme.breakpoints.up('md')]: {\n borderBottomLeftRadius: '20px',\n borderBottomRightRadius: '20px',\n },\n}));\n","import React from 'react';\nimport {SwipeableDrawer, useMediaQuery, useTheme} from '@mui/material';\n\nconst drawerBleeding = 160;\n\nexport function AuthDrawer({children}: {children: React.ReactNode}) {\n const [open, setOpen] = React.useState(false);\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n\n return (\n {\n setOpen(false);\n }}\n onOpen={() => setOpen(true)}\n swipeAreaWidth={drawerBleeding}\n disableSwipeToOpen={false}\n hideBackdrop\n elevation={0}\n disableEnforceFocus\n ModalProps={{\n keepMounted: true,\n }}\n PaperProps={{\n sx: {\n background: 'none',\n px: 2,\n overflow: 'visible',\n maxWidth: '488px',\n mx: 'auto',\n },\n }}\n >\n {children}\n \n );\n}\n","import {styled, Typography} from '@mui/material';\n\nexport const Heading = styled(Typography)(({theme}) => ({\n fontSize: theme.typography.pxToRem(40),\n fontFamily: 'Lato',\n fontWeight: '600',\n textAlign: 'center',\n color: theme.palette.common.black,\n maxWidth: theme.typography.pxToRem(250),\n lineHeight: '1.1em',\n marginLeft: 'auto',\n marginRight: 'auto',\n [theme.breakpoints.up('md')]: {\n maxWidth: 'fit-content',\n },\n}));\n","import {styled, TextField} from '@mui/material';\n\nexport const TextInput = styled(TextField)({\n '& .MuiInputBase-root': {\n background: 'rgba(0,0,0,0.05)',\n borderRadius: '12px',\n },\n '& label': {\n color: '#00000080',\n },\n '& label.Mui-focused': {\n color: '#00000080',\n },\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderRadius: '12px',\n borderColor: 'rgba(0, 0, 0, 0.1)',\n },\n '&:hover fieldset': {\n borderColor: 'rgba(0, 0, 0, 0.15)',\n },\n '&.Mui-focused fieldset': {\n borderColor: 'rgba(0, 0, 0, 0.15)',\n },\n },\n});\n","import {Box, styled} from '@mui/material';\nimport {grey} from '@mui/material/colors';\n\nexport const Puller = styled(Box)(({theme}) => ({\n width: 40,\n height: 6,\n backgroundColor: grey[400],\n borderRadius: 3,\n position: 'absolute',\n top: 12,\n left: 'calc(50% - 15px)',\n}));\n","import {styled, Typography} from '@mui/material';\n\nexport const HelperText = styled(Typography)(({theme}) => ({\n fontSize: theme.typography.pxToRem(15),\n color: '#4D5562',\n}));\n","import {Link, styled} from '@mui/material';\n\nexport const HelperLink = styled(Link)(({theme}) => ({\n fontSize: theme.typography.pxToRem(15),\n color: '#4D5562',\n textDecorationColor: '#4D5562',\n}));\n","import {Box, Divider, Stack, useMediaQuery, useTheme} from '@mui/material';\nimport React from 'react';\nimport {useBoundingclientrectRef} from 'rooks';\nimport googleLogo from '../assets/google.png';\nimport linkedinLogo from '../assets/linkedin.png';\nimport {useAuth} from '../providers/auth';\nimport * as Yup from 'yup';\nimport {useFormik} from 'formik';\nimport {AuthButton} from '../components/Auth/AuthButton';\nimport {AuthContainer} from '../components/Auth/AuthContainer';\nimport {AuthPaper} from '../components/Auth/AuthPaper';\nimport {AuthDrawer} from '../components/Auth/AuthDrawer';\nimport {Heading} from '../components/Auth/Heading';\nimport {TextInput} from '../components/Auth/TextInput';\nimport {Puller} from '../components/Auth/Puller';\nimport {HelperText} from '../components/Auth/HelperText';\nimport {HelperLink} from '../components/Auth/HelperLink';\n\nfunction LoginContentBottom() {\n const {login, isLoading} = useAuth();\n return (\n <>\n \n login('google')}>\n \n Sign in with Google\n \n login('linkedin')}>\n \n Sign in with Linkedin\n \n \n \n \n Having problems signing up? Contact us\n \n Terms of service\n \n \n );\n}\n\nconst loginSchema = Yup.object().shape({\n email: Yup.string().email('Invalid email').required('Required'),\n});\n\nfunction LoginContentTop() {\n const {login, isLoading} = useAuth();\n const formik = useFormik({\n initialValues: {\n email: '',\n },\n validationSchema: loginSchema,\n onSubmit: values => {\n login('passwordless', values.email);\n },\n });\n\n return (\n
\n \n \n \n Sign in\n \n \n
\n );\n}\n\nfunction Auth() {\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n const [myRef, boundingClientRect] = useBoundingclientrectRef();\n\n return (\n \n Welcome to GVMO Live\n {isBigScreen && (\n \n \n \n or\n \n \n \n )}\n {!isBigScreen && (\n \n \n \n {!isBigScreen && }\n \n \n \n or\n \n \n \n \n )}\n \n );\n}\n\nexport default Auth;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAABHNCSVQICAgIfAhkiAAAAjVJREFUOE9jZEAD7x0MFH4zseQzMDIYMDAwOoCk//9neMDIwHCAken/QtE9Zw4gawGKI8ArJ5N+BkbGAnRDUfn/D7D+/RMoeODCB5A43IBXTqbzgbwE/JrB7vnI8JfRQezA6QtwA146mTQwMjLWo2le+P///wdMDAwf/jMwKjAw/ocYjqQZbMD3HgH5T9tVbjEyMLJBDEC1AWbozlgrsS+MrNrBiw7uRwmD33tYJvx5yuX1eYkaB8M/RlmGvwyGMOcR9g7QBb93sxwABpz9/x8Mn78uV54luPRGCbJGywnrQpmZGaWwGfaH6fcLxt97WP/DJf//b2R1/dOArNi+58p75p8KArhcg2IAI+O/RBbnvwtIMuDXHlZQIpEHabr2i69N3+ttNbIBthOOnGP6I6AIE2P8w8/D9FeQBcT/x/z+DyPQgAVAA+KnftU8sfi7ivJf9n9qFwI3gBMJNmDXe+4Zyw81SZDcH45bzxk/b2dxiP/s2PXoH58pOBIZ/i84G7EuEZtm68mb2tk/OVXA5H7yHJwLTokmy4PAMYGkCZjK/jWciVi/ESRmsCrAgPWXYBjny+wSlh8arDDnH6iQZQUbYLA+QID5JzMoLPhxOR0s/p+Jgf1tJAP7RzeGn/y7C4/mBE6A5wWQLcz/mIDhwaiPzxBgnH9k+qFZeDqhZT5IHUpuBLmE5QdTAVBRAjBvgGMGGQCz9cK/DH8bLkRueAATRzEAWTHIRSx/WeAJ6EzkmgPYXAYAf4jQlmqPPsMAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAQVJREFUOE9jZKjY7MDwjymfgZEhgIEU8J9hAwPTv4mMDOVbNwD1+ZOiF0ntRpAB/8nUDNaGYkCAljhDvo0CQ+Hm6wwXnn8iylwUAxaE6jHEG8swNO65zdAAxMQAFAMUBDkZHJSEGTZcfcHw4ccfYvSjeqHBRZWhHohBLgABEPvkow8M7CxMDAZSfAwXnn1iCFx8luHB++9ww1FcgM2Ah0DFB+69BbtMHujChWefMCSsvkS8AWeffGQwmXKUARTA6+OMGQ7ee8fgMOsE8QbANDgoCTHsT7MY7AaAohGEYaEMYn/4/gecqAQ4WMAxAePDAoEqSZnCzATKzv+ZCsjIkRsZGP9NAACwA6ajwqCfPgAAAABJRU5ErkJggg==\"","import {ActorSubclass} from '@dfinity/agent';\nimport {_SERVICE} from '../declarations/backend/backend.did';\nimport {createActor, canisterId} from '../declarations/backend';\nimport {Ed25519KeyIdentity} from '@dfinity/identity';\n\nexport namespace BackendActor {\n export async function getBackendActor(\n identity: Ed25519KeyIdentity\n ): Promise> {\n const backendActor = createActor(canisterId as string, {\n agentOptions: {\n identity,\n host: process.env.BACKEND_CANISTER_HOST || undefined,\n },\n });\n\n return backendActor;\n }\n}\n","export default __webpack_public_path__ + \"static/media/default-vote-icon.02d95838.svg\";","export const idlFactory = ({ IDL }) => {\n const VoteType = IDL.Variant({\n 'No' : IDL.Null,\n 'Yes' : IDL.Null,\n 'Abstain' : IDL.Null,\n });\n const TalkingPointId = IDL.Text;\n const UserTalkingPoint = IDL.Record({\n 'id' : TalkingPointId,\n 'title' : IDL.Text,\n 'vote' : IDL.Text,\n 'description' : IDL.Text,\n });\n const Voting = IDL.Service({\n 'getMyVote' : IDL.Func([IDL.Text], [IDL.Opt(VoteType)], ['query']),\n 'getTalkingPoints' : IDL.Func([], [IDL.Vec(UserTalkingPoint)], ['query']),\n 'resetMyVotes' : IDL.Func([], [], []),\n 'vote' : IDL.Func([IDL.Text, VoteType], [], []),\n });\n return Voting;\n};\nexport const init = ({ IDL }) => { return []; };\n","import { Actor, HttpAgent } from \"@dfinity/agent\";\n\n// Imports and re-exports candid interface\nimport { idlFactory } from './backend.did.js';\nexport { idlFactory } from './backend.did.js';\n// CANISTER_ID is replaced by webpack based on node environment\nexport const canisterId = process.env.BACKEND_CANISTER_ID;\n\n/**\n * \n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const createActor = (canisterId, options) => {\n const agent = new HttpAgent({ ...options?.agentOptions });\n \n // Fetch root key for certificate validation during development\n if(process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(err=>{\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId,\n ...options?.actorOptions,\n });\n};\n \n/**\n * A ready-to-use agent for the backend canister\n * @type {import(\"@dfinity/agent\").ActorSubclass}\n */\n export const backend = createActor(canisterId);\n","import {Ed25519KeyIdentity} from '@dfinity/identity';\nimport {BackendActor} from '../lib/agent';\n\nexport function getBackend(identity: Ed25519KeyIdentity) {\n return BackendActor.getBackendActor(identity);\n}\n","import {getBackend} from '../utils/backend';\nimport useSWR from 'swr';\nimport {useAuth} from '../providers/auth';\nimport {GET_TALKING_POINTS_QUERY_KEY} from '../config/misc';\n\nconst useGetTalkingPoints = () => {\n const {identity} = useAuth();\n\n const response = useSWR(identity ? GET_TALKING_POINTS_QUERY_KEY : null, async () => {\n if (!identity) {\n throw new Error('identity is not defined');\n }\n const backend = await getBackend(identity);\n const talkingPoints = await backend.getTalkingPoints();\n return talkingPoints;\n });\n\n return response;\n};\n\nexport default useGetTalkingPoints;\n","import React from 'react';\nimport {UserTalkingPoint, VoteType} from '../declarations/backend/backend.did';\nimport {BackendActor} from '../lib/agent';\nimport {VoteEnum} from '../types';\nimport {useAuth} from './auth';\n\ntype VotingContextType =\n | {\n getTalkingPoints: () => Promise;\n vote: (talkingPointId: string, vote: VoteEnum) => Promise;\n currentTalkingPointId: string;\n changeCurrentTalkingPointId: (id: string) => void;\n resetVotes: () => Promise;\n }\n | undefined;\n\nconst VotingContext = React.createContext(undefined);\nVotingContext.displayName = 'VotingContext';\n\nfunction VotingProvider(props: {children: React.ReactNode}) {\n const {identity} = useAuth();\n const [currentTalkingPointId, setCurrentTalkingPointId] = React.useState('1');\n\n const changeCurrentTalkingPointId = React.useCallback(\n (id: string) => {\n setCurrentTalkingPointId(id);\n },\n [setCurrentTalkingPointId]\n );\n\n const getTalkingPoints = React.useCallback(async () => {\n try {\n if (!identity) {\n throw new Error('identity is not defined');\n }\n const backend = await BackendActor.getBackendActor(identity);\n const talkingPoints = await backend.getTalkingPoints();\n return talkingPoints;\n } catch (error) {\n console.error(error);\n }\n }, [identity]);\n\n const resetVotes = React.useCallback(async () => {\n if (!identity) {\n throw new Error('identity is not defined');\n }\n const backend = await BackendActor.getBackendActor(identity);\n await backend.resetMyVotes();\n }, [identity]);\n\n const vote = React.useCallback(\n async (talkingPointId: string, vote: VoteEnum) => {\n try {\n if (!identity) {\n throw new Error('identity is not defined');\n }\n const backend = await BackendActor.getBackendActor(identity);\n let voteObj: VoteType = {\n Yes: null,\n };\n if (vote === 'no') {\n voteObj = {\n No: null,\n };\n }\n if (vote === 'abstain') {\n voteObj = {\n Abstain: null,\n };\n }\n await backend.vote(talkingPointId, voteObj);\n } catch (error) {\n console.error(error);\n }\n },\n [identity]\n );\n\n const value = React.useMemo(() => {\n return {getTalkingPoints, vote, resetVotes, currentTalkingPointId, changeCurrentTalkingPointId};\n }, [changeCurrentTalkingPointId, currentTalkingPointId, getTalkingPoints, resetVotes, vote]);\n\n return ;\n}\n\nfunction useVoting() {\n const context = React.useContext(VotingContext);\n if (context === undefined) {\n throw new Error(`useVoting must be used within a VotingProvider`);\n }\n return context;\n}\n\nexport {VotingProvider, useVoting};\n","import React from 'react';\nimport {useSWRConfig} from 'swr';\nimport useGetTalkingPoints from './useGetTalkingPoints';\nimport {useVoting} from '../providers/voting';\nimport {VoteEnum} from '../types';\nimport {GET_TALKING_POINTS_QUERY_KEY} from '../config/misc';\n\ninterface Props {\n onSuccess?: () => void;\n onError?: () => void;\n}\n\nconst useSubmitVote = ({onSuccess, onError}: Props = {}) => {\n const {mutate} = useSWRConfig();\n const {data: talkingPosts} = useGetTalkingPoints();\n const {vote} = useVoting();\n\n const voteHandler = React.useCallback(\n async (tpId: string, voteType: VoteEnum) => {\n try {\n const currentTp = talkingPosts?.some(tp => tp.id === tpId);\n if (!currentTp || !talkingPosts) {\n throw new Error('talking point not found');\n }\n const newData = talkingPosts.map(tp => {\n if (tp.id === tpId) {\n return {\n ...tp,\n vote: voteType,\n };\n }\n return tp;\n });\n mutate(GET_TALKING_POINTS_QUERY_KEY, newData, false);\n await vote(tpId, voteType);\n mutate(GET_TALKING_POINTS_QUERY_KEY);\n onSuccess?.();\n } catch (error) {\n onError?.();\n }\n },\n [mutate, onError, onSuccess, talkingPosts, vote]\n );\n\n return voteHandler;\n};\n\nexport default useSubmitVote;\n","import {ButtonUnstyled, styled} from '@mui/material';\n\nexport const OutlinedButton = styled(ButtonUnstyled)(({theme}) => ({\n border: '1px solid #0000001A',\n borderRadius: '12px',\n padding: theme.typography.pxToRem(12),\n background: 'none',\n width: '100%',\n cursor: 'pointer',\n color: '#1F2A37',\n fontSize: theme.typography.pxToRem(14),\n fontFamily: theme.typography.button.fontFamily,\n transition: 'background 0.2s ease-in-out',\n '&:hover': {\n background: '#00000008',\n },\n '&:disabled': {\n background: theme.palette.action.disabledBackground,\n cursor: 'not-allowed',\n },\n}));\n","import {styled, Typography} from '@mui/material';\n\nexport const TalkingPointDescription = styled(Typography)(({theme}) => ({\n fontSize: theme.typography.pxToRem(14),\n lineHeight: '1.3em',\n marginBottom: theme.typography.pxToRem(12),\n}));\n","import {styled, Typography} from '@mui/material';\n\nexport const TalkingPointHeading = styled(Typography)(({theme}) => ({\n fontSize: '1rem',\n fontWeight: '900',\n lineHeight: '1.3em',\n letterSpacing: 0,\n marginBottom: theme.typography.pxToRem(12),\n}));\n","import {styled, Typography} from '@mui/material';\n\nexport const TalkingPointLabel = styled(Typography)(({theme}) => ({\n fontSize: theme.typography.pxToRem(14),\n fontWeight: '500',\n fontStyle: 'oblique',\n color: '#4D5562',\n}));\n","import {Divider, Drawer, IconButton, Stack, styled, useTheme} from '@mui/material';\nimport React from 'react';\nimport {Close, Check, Remove} from '@mui/icons-material';\nimport {TalkingPointHeading} from './TalkingPointHeading';\nimport {TalkingPointDescription} from './TalkingPointDescription';\nimport {OutlinedButton} from './OutlinedButton';\nimport {UserTalkingPoint} from '../../declarations/backend/backend.did';\nimport {VoteEnum} from '../../types';\n\nconst DividerLabel = styled('span')(({theme}) => ({\n color: '#6B717E',\n fontSize: theme.typography.pxToRem(14),\n}));\n\nconst buttonStyles: any = {\n textAlign: 'left',\n transition: 'background 0.2s ease-in-out',\n display: 'flex',\n alignItems: 'flex-end',\n '& svg': {\n mr: 1,\n my: '-2px',\n },\n};\n\ntype TalkingPointProps = {\n onClose: () => void;\n open: boolean;\n paperCoords: {\n left: number;\n width: number;\n };\n hideBackdrop: boolean;\n data: UserTalkingPoint;\n onSubmit: (id: string, vote: VoteEnum) => void;\n};\n\nfunction TalkingPointPopup({\n data,\n onClose,\n onSubmit,\n open,\n hideBackdrop,\n paperCoords,\n}: TalkingPointProps) {\n const theme = useTheme();\n\n return (\n \n \n \n {data.id}. {data.title}\n \n \n \n \n \n {data.description}\n \n cast your vote\n \n \n onSubmit(data.id, 'yes')}\n >\n Vote yes\n \n onSubmit(data.id, 'abstain')}\n >\n Abstain from voting\n \n onSubmit(data.id, 'no')}\n >\n Vote no\n \n \n \n );\n}\n\nexport default TalkingPointPopup;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAANxJREFUKFNjZCAAFBQMBP5xstYzMjIV/P//bwLT99+NjPj0gDT852LbD1TD+PffvwJmJqYJ/xkYNuDUhKyB8dsvhwcPLnyQ0zQvYGT4H4BVEzYN0lqmBiwMjPv//WdIxNCET8P//wwbH10/lYCiiRgNoDCAayJWA1wTKRrgmuS1zC6AOdBQgnka5gf0aGGU0TBxYGZk2sD4/ZcCKFgJaQAbDgz7CUCfKTy6djKAGA1gTVCn/Wf4zygA0vz///+FoGDFl1IY5TXNDgCTxgOg4gO/GZgPvLhx4gGh9AgAd4mflsciB2kAAAAASUVORK5CYII=\"","import {Box, styled} from '@mui/material';\nimport React from 'react';\nimport {VoteEnum} from '../../types';\n\nconst LabelBox = styled(Box)(({theme}) => ({\n borderRadius: theme.typography.pxToRem(16),\n padding: `${theme.typography.pxToRem(4)} ${theme.typography.pxToRem(8)}`,\n paddingRight: theme.typography.pxToRem(12),\n display: 'flex',\n alignItems: 'center',\n textTransform: 'capitalize',\n fontSize: theme.typography.pxToRem(12),\n fontWeight: 500,\n width: 'fit-content',\n '& svg': {\n fontSize: theme.typography.pxToRem(16),\n marginRight: theme.spacing(1),\n },\n}));\n\nfunction getColorByVoteType(type: VoteEnum) {\n switch (type) {\n case 'yes':\n return {bg: '#21BF80', color: '#FFFFFF'};\n case 'abstain':\n return {bg: '#F5DC5D', color: '#000000'};\n case 'no':\n return {bg: '#F76A68', color: '#FFFFFF'};\n default:\n throw new Error(`Unknown vote type: ${type}`);\n }\n}\n\ninterface Props {\n type: VoteEnum;\n children: React.ReactNode;\n}\n\nfunction VoteLabel({type, children}: Props) {\n return (\n \n {children}\n \n );\n}\n\nexport default VoteLabel;\n","import {VoteEnum} from '../types';\n\nexport function getVoteType(vote: string): VoteEnum {\n switch (vote) {\n case 'yes':\n return 'yes';\n case 'abstain':\n return 'abstain';\n case 'no':\n return 'no';\n default:\n throw new Error(`Unknown vote type: ${vote}`);\n }\n}\n","import {Check, Close, Remove} from '@mui/icons-material';\nimport {VoteEnum} from '../../types';\n\nfunction VoteIcon({type}: {type: VoteEnum}) {\n switch (type) {\n case 'yes':\n return ;\n case 'abstain':\n return ;\n case 'no':\n return ;\n }\n}\n\nexport default VoteIcon;\n","import {styled, Box, keyframes, Stack, Skeleton} from '@mui/material';\nimport React from 'react';\nimport DefaultVoteIcon from '../../assets/default-vote-icon.svg';\nimport useSubmitVote from '../../hooks/useSubmitVote';\nimport {VoteEnum} from '../../types';\nimport {OutlinedButton} from './OutlinedButton';\nimport {TalkingPointDescription} from './TalkingPointDescription';\nimport {TalkingPointHeading} from './TalkingPointHeading';\nimport {TalkingPointLabel} from './TalkingPointLabel';\nimport TalkingPointPopup from './TalkingPointPopup';\nimport editIcon from '../../assets/edit-icon.png';\nimport VoteLabel from './VoteLabel';\nimport {getVoteType} from '../../utils/misc';\nimport VoteIcon from './VoteIcon';\n\ntype TalkingPointProps = {\n data?: {\n id: string;\n title: string;\n description: string;\n vote: string;\n };\n active?: boolean;\n onClick?: () => void;\n skeleton?: boolean;\n PopupProps?: {\n hideBackdrop: boolean;\n paperCoords: {\n left: number;\n width: number;\n };\n };\n};\n\nconst Container = styled('div')(({theme}) => ({\n position: 'relative',\n background: 'rgba(255, 255, 255, 0.94)',\n backdropFilter: 'blur(5px)',\n padding: theme.spacing(2),\n border: '1px solid #FFFFFF41',\n borderRadius: theme.typography.pxToRem(16),\n '::before': {\n content: '\"\"',\n position: 'absolute',\n top: -20,\n left: 40,\n transform: 'translate(-50%, -50%)',\n width: theme.typography.pxToRem(10),\n height: theme.typography.pxToRem(10),\n borderRadius: '50%',\n backgroundColor: '#545454',\n zIndex: 1,\n },\n}));\n\nconst colorAnimation = keyframes`\n from {background-color: rgba(255, 0, 0, 0.4);}\n to {background-color: rgba(255, 0, 0, 0.5);}\n`;\n\nconst ActiveIcon = styled('div')(({theme}) => ({\n width: '1rem',\n height: '1rem',\n background: 'rgba(255, 0, 0, 0.4)',\n borderRadius: '50%',\n filter: ' blur(10px)',\n animation: `${colorAnimation} 1s ease-in-out infinite alternate`,\n}));\n\nconst Button = styled(OutlinedButton)(({theme}) => ({\n borderRadius: theme.typography.pxToRem(16),\n display: 'flex',\n alignItems: 'center',\n fontWeight: 500,\n padding: `${theme.typography.pxToRem(6)} ${theme.typography.pxToRem(16)}`,\n width: 'fit-content',\n}));\n\nfunction TalkingPoint({data, active = false, skeleton, PopupProps}: TalkingPointProps) {\n const [open, setOpen] = React.useState(false);\n const vote = useSubmitVote();\n\n const onSubmit = React.useCallback(\n (tpId: string, type: VoteEnum) => {\n vote(tpId, type);\n setOpen(false);\n },\n [vote, setOpen]\n );\n\n const onClick = () => {\n setOpen(true);\n };\n return (\n \n {active && (\n \n Current talking point\n \n )}\n \n \n {!skeleton && (\n <>\n {data?.id}. {data?.title}\n \n )}\n {skeleton && }\n \n {active && }\n \n\n \n {!skeleton && <>{data?.description}}\n {skeleton && }\n \n {data && data.vote === '' && (\n \n \n \n )}\n {data && data.vote !== '' && (\n \n \n {data.vote}\n \n \n \n )}\n {data && (\n setOpen(false)}\n data={data}\n onSubmit={onSubmit}\n />\n )}\n \n );\n}\n\nexport default TalkingPoint;\n","export default __webpack_public_path__ + \"static/media/background-home-sm.d9e5197f.png\";","export default __webpack_public_path__ + \"static/media/background-home-lg.7cb45504.png\";","import {styled, Box, Skeleton, Stack} from '@mui/material';\nimport React from 'react';\nimport DefaultVoteIcon from '../../assets/default-vote-icon.svg';\nimport useSubmitVote from '../../hooks/useSubmitVote';\nimport {VoteEnum} from '../../types';\nimport {OutlinedButton} from './OutlinedButton';\nimport {TalkingPointDescription} from './TalkingPointDescription';\nimport {TalkingPointHeading} from './TalkingPointHeading';\nimport {TalkingPointLabel} from './TalkingPointLabel';\nimport TalkingPointPopup from './TalkingPointPopup';\nimport VoteIcon from './VoteIcon';\nimport VoteLabel from './VoteLabel';\nimport editIcon from '../../assets/edit-icon.png';\nimport {getVoteType} from '../../utils/misc';\n\ntype CurrentTalkingPointProps = {\n data?: {\n id: string;\n title: string;\n description: string;\n vote: string;\n };\n onClick?: () => void;\n skeleton?: boolean;\n PopupProps?: {\n hideBackdrop: boolean;\n paperCoords: {\n left: number;\n width: number;\n };\n };\n};\n\nconst Container = styled('div')(({theme}) => ({\n background: 'rgba(255, 255, 255, 0.94)',\n backdropFilter: 'blur(5px)',\n padding: theme.spacing(2),\n border: '1px solid #FFFFFF41',\n borderRadius: theme.typography.pxToRem(16),\n}));\n\nconst Button = styled(OutlinedButton)(({theme}) => ({\n borderRadius: theme.typography.pxToRem(16),\n display: 'flex',\n alignItems: 'center',\n fontWeight: 500,\n padding: `${theme.typography.pxToRem(6)} ${theme.typography.pxToRem(16)}`,\n width: 'fit-content',\n}));\n\nfunction CurrentTalkingPoint({data, skeleton, PopupProps}: CurrentTalkingPointProps) {\n const [open, setOpen] = React.useState(false);\n const vote = useSubmitVote();\n\n const onSubmit = React.useCallback(\n (tpId: string, type: VoteEnum) => {\n vote(tpId, type);\n setOpen(false);\n },\n [vote, setOpen]\n );\n\n const onClick = () => {\n setOpen(true);\n };\n return (\n \n Current talking point\n\n \n {!skeleton && (\n <>\n {data?.id}. {data?.title}\n \n )}\n {skeleton && }\n \n\n \n {!skeleton && <>{data?.description}}\n {skeleton && }\n \n {(skeleton || data?.vote === '') && (\n \n \n \n )}\n {!skeleton && data && data.vote !== '' && (\n \n \n {data.vote}\n \n \n \n )}\n {data && (\n setOpen(false)}\n data={data}\n onSubmit={onSubmit}\n />\n )}\n \n );\n}\n\nexport default CurrentTalkingPoint;\n","import {Stack, styled} from '@mui/material';\n\nconst TalkingPointsStack = styled(Stack)(({theme}) => ({\n position: 'relative',\n paddingBlock: theme.spacing(7),\n '::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 40,\n bottom: 0,\n width: '3px',\n backgroundColor: '#545454',\n zIndex: 0,\n },\n [`${theme.breakpoints.down('md')} and (min-aspect-ratio: 1/1)`]: {\n paddingTop: theme.spacing(7),\n },\n [theme.breakpoints.up('md')]: {\n paddingTop: theme.spacing(7),\n },\n}));\n\nexport default TalkingPointsStack;\n","import React from 'react';\nimport {useSWRConfig} from 'swr';\nimport {useVoting} from '../providers/voting';\nimport {GET_TALKING_POINTS_QUERY_KEY} from '../config/misc';\n\nconst useResetVotes = () => {\n const {mutate} = useSWRConfig();\n const {resetVotes} = useVoting();\n\n const resetVoteHandler = React.useCallback(async () => {\n await resetVotes();\n mutate(GET_TALKING_POINTS_QUERY_KEY);\n }, [mutate, resetVotes]);\n\n return resetVoteHandler;\n};\n\nexport default useResetVotes;\n","import {Avatar, CircularProgress, SpeedDial, SpeedDialAction} from '@mui/material';\nimport React from 'react';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport LogoutIcon from '@mui/icons-material/Logout';\nimport {useAuth} from '../../providers/auth';\nimport useResetVotes from '../../hooks/useResetVotes';\nimport {useSnackbar} from 'notistack';\n\nexport default function ActionsSpeedDial() {\n const [open, setOpen] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const {logout, user} = useAuth();\n const {enqueueSnackbar} = useSnackbar();\n const resetVotes = useResetVotes();\n\n const handleOpen = () => setOpen(true);\n const handleClose = () => setOpen(false);\n\n const handleReset = async () => {\n try {\n setLoading(true);\n await resetVotes();\n } catch (error) {\n enqueueSnackbar('Error resetting votes', {variant: 'error'});\n } finally {\n setLoading(false);\n }\n };\n\n const handleLogout = async () => {\n setLoading(true);\n await logout();\n setLoading(false);\n };\n\n return (\n }\n FabProps={{\n size: 'medium',\n color: 'inherit',\n }}\n onClose={handleClose}\n onOpen={handleOpen}\n open={open}\n >\n : }\n tooltipTitle=\"Reset\"\n tooltipOpen\n FabProps={{\n disabled: loading,\n }}\n onClick={handleReset}\n />\n }\n tooltipTitle=\"Logout\"\n tooltipOpen\n FabProps={{\n disabled: loading,\n }}\n onClick={handleLogout}\n />\n \n );\n}\n","import React from 'react';\nimport ReactPlayer from 'react-player';\nimport TalkingPoint from '../components/Home/TalkingPoint';\nimport {Container, styled, useTheme, useMediaQuery, Box, Grid} from '@mui/material';\nimport backgroundHomeSm from '../assets/background-home-sm.png';\nimport backgroundHomeLg from '../assets/background-home-lg.png';\nimport useGetTalkingPoints from '../hooks/useGetTalkingPoints';\nimport CurrentTalkingPoint from '../components/Home/CurrentTalkingPoint';\nimport TalkingPointsStack from '../components/Home/TalkingPointsStack';\nimport {useBoundingclientrectRef, useOnWindowResize} from 'rooks';\nimport {useVoting} from '../providers/voting';\nimport SimpleBar from 'simplebar-react';\nimport {SystemProps} from '@mui/system';\nimport ActionsSpeedDial from '../components/Home/ActionsSpeedDial';\n\nconst ResponsiveReactPlayer = styled(ReactPlayer)({\n position: 'absolute',\n top: 0,\n left: 0,\n border: '1px solid #0000001F',\n background: 'rgba(255, 255, 255, 0.3)',\n backdropFilter: 'blur(5px)',\n borderRadius: '12px',\n overflow: 'hidden',\n});\n\nconst HomeContainer = styled('div')(({theme}) => ({\n backgroundColor: '#ecedf9',\n backgroundImage: `url(${backgroundHomeSm})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\n minHeight: '100vh',\n overflow: 'hidden',\n [theme.breakpoints.up('md')]: {\n backgroundImage: `url(${backgroundHomeLg})`,\n },\n}));\n\nconst VideoContainer = styled('div')(({theme}) => ({\n position: 'fixed',\n top: 0,\n left: 8,\n right: 8,\n zIndex: 1,\n paddingTop: '60%',\n '& video': {\n objectFit: 'cover',\n },\n [`${theme.breakpoints.down('md')} and (min-aspect-ratio: 1/1)`]: {\n position: 'relative',\n left: 'unset',\n right: 'unset',\n top: 'unset',\n height: '350px',\n paddingTop: 0,\n },\n [theme.breakpoints.up('md')]: {\n position: 'relative',\n left: 'unset',\n right: 'unset',\n top: 'unset',\n height: '400px',\n paddingTop: 0,\n },\n}));\n\nconst TalkingPointGridItem = styled(Grid)(({theme}) => ({\n marginTop: '60%',\n width: '100%',\n zIndex: 0,\n [`${theme.breakpoints.down('md')} and (min-aspect-ratio: 1/1)`]: {\n marginTop: 0,\n },\n [theme.breakpoints.up('md')]: {\n marginTop: 0,\n },\n}));\n\nconst TPSimplestBar = styled(SimpleBar)(({theme}) => ({\n maxHeight: '100vh',\n paddingRight: 16,\n '& .simplebar-track': {\n backgroundColor: '#ecedf9',\n boxShadow: 'inset 0 0 6px #ecedf955',\n '& .simplebar-scrollbar::before': {\n background: '#323232',\n },\n },\n}));\n\nfunction TalkingPointScrollbarContainer({children}: {children: React.ReactElement}): JSX.Element {\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n if (!isBigScreen) {\n return children;\n }\n\n return (\n \n {children}\n \n );\n}\n\nconst talkingPointsTimestamp = [\n {\n id: '1',\n // in seconds\n timestamp: {\n start: 0,\n end: 10,\n },\n },\n {\n id: '2',\n timestamp: {\n start: 10.1,\n end: 20,\n },\n },\n {\n id: '3',\n timestamp: {\n start: 20.1,\n end: 30,\n },\n },\n {\n id: '4',\n timestamp: {\n start: 30.1,\n end: Infinity,\n },\n },\n];\n\nfunction Home() {\n const getTalkingPointsResult = useGetTalkingPoints();\n const {currentTalkingPointId, changeCurrentTalkingPointId} = useVoting();\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n const [myRef, boundingClientRect, updateRect] = useBoundingclientrectRef();\n const [myItemRef, itemBoundingClientRect, updateItemRect] = useBoundingclientrectRef();\n\n const currentTalkingPoint = getTalkingPointsResult?.data?.find(\n talkingPoint => talkingPoint.id === currentTalkingPointId\n );\n\n useOnWindowResize(() => {\n updateRect();\n if (isBigScreen) {\n updateItemRect();\n }\n });\n\n const spacing = 16;\n\n const fixedTalkingPoints: SystemProps = {\n position: 'fixed',\n left: `${(itemBoundingClientRect?.left ?? 0) + spacing}px`,\n width: `${(itemBoundingClientRect?.width ?? 0) - spacing}px`,\n };\n\n const skeleton =\n !getTalkingPointsResult?.data?.length &&\n (getTalkingPointsResult?.isValidating || !!getTalkingPointsResult?.error);\n\n return (\n \n \n \n \n \n \n {\n const nextTpId = talkingPointsTimestamp.find(\n tp => playedSeconds >= tp.timestamp.start && playedSeconds < tp.timestamp.end\n )?.id;\n\n if (nextTpId && nextTpId !== currentTalkingPointId) {\n changeCurrentTalkingPointId(nextTpId);\n }\n }}\n url=\"https://youtu.be/2Gg6Seob5Mg\"\n />\n \n\n {isBigScreen && (\n \n \n \n )}\n \n \n \n \n <>\n {!skeleton && (\n \n {getTalkingPointsResult?.data?.map(talkingPoint => (\n \n ))}\n \n )}\n {skeleton && (\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n );\n}\n\nexport default Home;\n","import React from 'react';\nimport Auth from './pages/auth';\nimport Home from './pages/home';\nimport {useAuth} from './providers/auth';\n\nfunction App() {\n const {isLoggedIn} = useAuth();\n return (\n <>\n {isLoggedIn && }\n {!isLoggedIn && }\n \n );\n}\n\nexport default App;\n","import {IconButton} from '@mui/material';\r\nimport {SnackbarProvider, SnackbarProviderProps} from 'notistack';\r\nimport React from 'react';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nexport function CustomSnackbarProvider(props: SnackbarProviderProps) {\r\n const notistackRef = React.createRef();\r\n\r\n const onClickDismiss = (key: string) => () => {\r\n if (notistackRef.current) {\r\n notistackRef.current.closeSnackbar(key);\r\n }\r\n };\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n","import React from 'react';\nimport {\n createTheme,\n responsiveFontSizes,\n ThemeProvider as MuiThemeProvider,\n} from '@mui/material/styles';\n\nconst lato = 'Lato, sans-serif';\nconst nunito = 'Nunito, sans-serif';\n\nlet theme = createTheme({\n typography: {\n fontFamily: nunito,\n h1: {\n fontFamily: lato,\n },\n h2: {\n fontFamily: lato,\n },\n h3: {\n fontFamily: lato,\n },\n h4: {\n fontFamily: lato,\n },\n h5: {\n fontFamily: lato,\n },\n h6: {\n fontFamily: lato,\n },\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n overflowX: 'hidden',\n },\n },\n },\n },\n});\ntheme = responsiveFontSizes(theme);\n\nfunction ThemeProvider({children}: {children: React.ReactNode}) {\n return {children};\n}\n\nexport default ThemeProvider;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {BrowserRouter} from 'react-router-dom';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport App from './App';\nimport {AuthProvider} from './providers/auth';\nimport {VotingProvider} from './providers/voting';\nimport {CustomSnackbarProvider} from './providers/snackbar';\nimport ThemeProvider from './providers/theme';\nimport 'simplebar/dist/simplebar.min.css';\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}