{"version":3,"sources":["assets/background-login-sm.png","assets/background-login-lg.png","hooks/useAuthSDK.tsx","utils/identity.ts","hooks/useIdentity.tsx","config/index.ts","hooks/usePrivateKeyState.tsx","providers/auth.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/OutlinedButton.tsx","components/TalkingPointDescription.tsx","components/TalkingPointHeading.tsx","components/TalkingPointLabel.tsx","components/TalkingPointPopup.tsx","assets/edit-icon.png","components/VoteLabel.tsx","utils/misc.ts","components/VoteIcon.tsx","components/TalkingPoint.tsx","assets/background-home-sm.png","assets/background-home-lg.png","components/CurrentTalkingPoint.tsx","components/TalkingPointsStack.tsx","pages/home.tsx","App.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","AUTH_DOMAIN","googleInfo","typeOfLogin","verifier","clientId","linkedinInfo","jwtParams","domain","passwordlessInfo","AuthContext","createContext","AuthProvider","props","setPrivateKey","identity","isLoading","setIsLoading","isLoggedIn","login","type","login_hint","Error","loginData","triggerLogin","loginResult","Provider","useAuth","context","useContext","displayName","AuthContainer","styled","theme","backgroundImage","backgroundLoginSm","backgroundSize","backgroundPosition","backgroundAttachment","minWidth","minHeight","breakpoints","up","backgroundLoginLg","Puller","Box","width","height","backgroundColor","grey","borderRadius","position","top","left","Heading","Typography","fontSize","typography","pxToRem","fontFamily","fontWeight","textAlign","color","palette","common","black","maxWidth","lineHeight","margin","paddingTop","paddingBottom","LoginPaper","background","border","borderBottomLeftRadius","borderBottomRightRadius","opacity","backdropFilter","padding","spacing","HelperText","HelperLink","Link","textDecorationColor","TextInput","TextField","borderColor","Button","ButtonUnstyled","paddingBlock","paddingInline","cursor","action","disabledBackground","SocialButton","LoginContentBottom","Stack","disabled","onClick","sx","mr","mb","component","src","alt","mt","LoginContentTop","email","setEmail","onChange","e","target","label","variant","size","fullWidth","LoginDrawer","children","open","setOpen","useTheme","isBigScreen","useMediaQuery","SwipeableDrawer","anchor","onClose","onOpen","swipeAreaWidth","disableSwipeToOpen","hideBackdrop","elevation","ModalProps","keepMounted","PaperProps","px","overflow","mx","Auth","useBoundingclientrectRef","myRef","boundingClientRect","isSmallHeight","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","useGetTalkingPoints","useSWR","backend","getTalkingPoints","talkingPoints","VotingContext","VotingProvider","currentTalkingPointId","setCurrentTalkingPointId","changeCurrentTalkingPointId","id","vote","talkingPointId","voteObj","Yes","No","Abstain","useVoting","useSubmitVote","onSuccess","onError","useSWRConfig","mutate","talkingPosts","data","voteHandler","tpId","voteType","some","tp","newData","OutlinedButton","transition","TalkingPointDescription","marginBottom","TalkingPointHeading","letterSpacing","TalkingPointLabel","fontStyle","DividerLabel","buttonStyles","display","alignItems","TalkingPointPopup","onSubmit","paperCoords","Drawer","md","BackdropProps","direction","justifyContent","title","IconButton","Close","description","Check","Remove","LabelBox","textTransform","marginRight","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","bottom","down","ResponsiveReactPlayer","ReactPlayer","HomeContainer","backgroundHomeSm","backgroundHomeLg","VideoContainer","Home","getTalkingPointsResult","updateRect","currentTalkingPoint","find","talkingPoint","useOnWindowResize","length","isValidating","disableGutters","xs","Grid","container","item","muted","loop","controls","url","App","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.4de636d2.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/background-login-sm.151bb9e8.png\";","export default __webpack_public_path__ + \"static/media/background-login-lg.2b9c012c.png\";","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';\n\nconst usePrivateKeyState = () => {\n return useSessionstorageState(PRIVATE_KEY_STORAGE_ID, '');\n};\n\nexport default usePrivateKeyState;\n","import {Ed25519KeyIdentity} from '@dfinity/identity';\nimport TorusSdk, {SubVerifierDetails} from '@toruslabs/customauth';\nimport React from 'react';\nimport useAuthSDK from '../hooks/useAuthSDK';\nimport useIdentity from '../hooks/useIdentity';\nimport usePrivateKeyState from '../hooks/usePrivateKeyState';\n\nconst AUTH_DOMAIN = 'https://gvmo.us.auth0.com';\n\nconst googleInfo: SubVerifierDetails = {\n typeOfLogin: 'google',\n verifier: 'epoch-google',\n clientId: '962313737544-ikp2bgoshin44l24ep3k9fitmv2nv4i5.apps.googleusercontent.com',\n};\n\nconst linkedinInfo: SubVerifierDetails = {\n typeOfLogin: 'linkedin',\n verifier: 'epoch-clan-auth0-linkedin',\n clientId: 'pfkos5eETfdlymW5O9qdwc3y2JmbKEW7',\n jwtParams: {\n domain: AUTH_DOMAIN,\n },\n};\n\nconst passwordlessInfo: SubVerifierDetails = {\n typeOfLogin: 'email_password',\n verifier: 'epoch-clan-auth0-email-password',\n clientId: 'pfkos5eETfdlymW5O9qdwc3y2JmbKEW7',\n jwtParams: {domain: AUTH_DOMAIN},\n};\n\ntype LoginType = 'google' | 'linkedin' | 'passwordless';\n\ntype AuthContextType = {\n identity: Ed25519KeyIdentity | undefined;\n login: (type: LoginType, login_hint?: string) => Promise;\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 [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 = googleInfo;\n if (type === 'linkedin') {\n loginData = linkedinInfo;\n }\n if (type === 'passwordless') {\n loginData = passwordlessInfo;\n if (login_hint) {\n loginData = {\n ...passwordlessInfo,\n jwtParams: {domain: AUTH_DOMAIN, login_hint},\n };\n }\n }\n const loginResult = await authSdk.triggerLogin(loginData);\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 value = React.useMemo(() => {\n return {\n identity,\n login,\n isLoggedIn,\n authSdk,\n privateKey,\n isLoading,\n };\n }, [authSdk, identity, isLoading, isLoggedIn, login, privateKey]);\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 {\n Box,\n ButtonUnstyled,\n Divider,\n Link,\n Stack,\n styled,\n SwipeableDrawer,\n TextField,\n textFieldClasses,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material';\nimport React from 'react';\nimport {useBoundingclientrectRef} from 'rooks';\nimport backgroundLoginSm from '../assets/background-login-sm.png';\nimport backgroundLoginLg from '../assets/background-login-lg.png';\nimport googleLogo from '../assets/google.png';\nimport linkedinLogo from '../assets/linkedin.png';\nimport {useAuth} from '../providers/auth';\nimport {grey} from '@mui/material/colors';\n\nconst drawerBleeding = 160;\n\nconst AuthContainer = styled('div')(({theme}) => ({\n backgroundImage: `url(${backgroundLoginSm})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\n minWidth: '100vw',\n minHeight: '100vh',\n [theme.breakpoints.up('md')]: {\n backgroundImage: `url(${backgroundLoginLg})`,\n },\n}));\n\nconst 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\nconst 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 margin: '0 auto',\n paddingTop: theme.typography.pxToRem(80),\n paddingBottom: theme.typography.pxToRem(80),\n [theme.breakpoints.up('md')]: {\n maxWidth: 'fit-content',\n },\n}));\n\nconst LoginPaper = 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}));\n\nconst HelperText = styled(Typography)(({theme}) => ({\n fontSize: theme.typography.pxToRem(15),\n color: '#4D5562',\n}));\n\nconst HelperLink = styled(Link)(({theme}) => ({\n fontSize: theme.typography.pxToRem(15),\n color: '#4D5562',\n textDecorationColor: '#4D5562',\n}));\n\nconst 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\nconst Button = styled(ButtonUnstyled)(({theme}) => ({\n background: '#5C87FF',\n border: '1px solid #0000001A',\n borderRadius: '12px',\n width: '100%',\n paddingBlock: 10,\n paddingInline: theme.spacing(2),\n color: '#FFFFFF',\n fontWeight: '500',\n fontSize: theme.typography.pxToRem(16),\n cursor: 'pointer',\n '&:hover': {\n background: '#5C87FFee',\n },\n '&:disabled': {\n background: theme.palette.action.disabledBackground,\n },\n}));\n\nconst SocialButton = styled(Button)(({theme}) => ({\n background: '#FFFFFFB3',\n border: '1px solid #FFFFFF80',\n borderRadius: '12px',\n color: '#000000',\n '&:hover': {\n background: '#FFFFFFB3',\n },\n '&:disabled': {\n background: theme.palette.action.disabledBackground,\n },\n}));\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\nfunction LoginContentTop() {\n const {login, isLoading} = useAuth();\n const [email, setEmail] = React.useState('');\n return (\n <>\n \n setEmail(e.target.value)}\n type=\"email\"\n label=\"Email\"\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n disabled={isLoading}\n />\n {\n login('passwordless', email);\n }}\n >\n Sign in\n \n \n \n );\n}\n\nfunction LoginDrawer({children}: {children: React.ReactNode}) {\n const [open, setOpen] = React.useState(false);\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n return (\n setOpen(false)}\n onOpen={() => setOpen(true)}\n swipeAreaWidth={drawerBleeding}\n disableSwipeToOpen={false}\n hideBackdrop\n elevation={0}\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\nfunction Auth() {\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n const [myRef, boundingClientRect] = useBoundingclientrectRef();\n\n const isSmallHeight = useMediaQuery('(max-height: 650px)');\n return (\n \n Welcome to GVMO Live\n {isSmallHeight && (\n \n \n \n or\n \n \n \n )}\n {!isSmallHeight && (\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 },\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 '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';\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 }\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('2');\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 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, currentTalkingPointId, changeCurrentTalkingPointId};\n }, [changeCurrentTalkingPointId, currentTalkingPointId, getTalkingPoints, 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';\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 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(5)} ${theme.typography.pxToRem(12)}`,\n display: 'flex',\n alignItems: 'center',\n textTransform: 'capitalize',\n minWidth: theme.typography.pxToRem(110),\n width: 'fit-content',\n '& svg': {\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 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.12104779.png\";","export default __webpack_public_path__ + \"static/media/background-home-lg.7a750f50.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 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 paddingTop: 'calc(60% + 60px)',\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 ReactPlayer from 'react-player';\nimport TalkingPoint from '../components/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/CurrentTalkingPoint';\nimport TalkingPointsStack from '../components/TalkingPointsStack';\nimport {useBoundingclientrectRef, useOnWindowResize} from 'rooks';\nimport {useVoting} from '../providers/voting';\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 backgroundImage: `url(${backgroundHomeSm})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundAttachment: 'fixed',\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: '400px',\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\nfunction Home() {\n const getTalkingPointsResult = useGetTalkingPoints();\n const {currentTalkingPointId} = useVoting();\n const theme = useTheme();\n const isBigScreen = useMediaQuery(theme.breakpoints.up('md'));\n const [myRef, boundingClientRect, updateRect] = useBoundingclientrectRef();\n\n const currentTalkingPoint = getTalkingPointsResult?.data?.find(\n talkingPoint => talkingPoint.id === currentTalkingPointId\n );\n\n useOnWindowResize(() => {\n updateRect();\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\n {isBigScreen && (\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\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 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 ThemeProvider from './providers/theme';\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}