{"version":3,"file":"static/js/app-f10c812e_9c83fc813a5c5463e77b.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/apps/front-end/src/components/SnackbarAlert/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoLocale/index.ts","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoComposite/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoNavBar/NavBarButton/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoNavBar/InCallNavBarButtons/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoNavBar/ExistSessionButtons/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoNavBar/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/VideoSideBar/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/VideoRoom/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/Skeleton/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/SurveyAvatar/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/components/legalNotices/index.tsx"],"sourcesContent":["// external\nimport { FunctionComponent, ReactNode } from 'react';\nimport {\n Alert,\n AlertColor,\n Snackbar,\n SnackbarProps,\n useMediaQuery,\n useTheme,\n} from '@mui/material';\n\ninterface SnackbarAlertProps extends SnackbarProps {\n severity: AlertColor;\n alertContent: ReactNode;\n icon?: ReactNode;\n}\n\nexport const SnackbarAlert: FunctionComponent = ({\n sx = {},\n severity,\n alertContent,\n icon,\n anchorOrigin = { horizontal: 'right', vertical: 'bottom' },\n ...snackbarProps\n}) => {\n const theme = useTheme();\n\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n <>\n \n \n {alertContent}\n \n \n \n );\n};\n","import {\n CallCompositeStrings,\n CallWithChatCompositeStrings,\n ChatCompositeStrings,\n ComponentLocale,\n CompositeLocale,\n COMPOSITE_LOCALE_EN_GB,\n COMPOSITE_LOCALE_EN_US,\n COMPOSITE_LOCALE_FR_FR,\n} from '@azure/communication-react';\nimport { SanityLocaleText } from '@guider-global/shared-types';\n\nexport type LocaleCode = keyof SanityLocaleText;\n\ninterface Options {\n strings?: {\n chat?: Partial;\n call?: Partial;\n callWithChat?: Partial;\n };\n component?: Partial;\n}\nexport interface VideoLocale {\n localeCode: LocaleCode;\n options?: Options;\n}\n\nconst mergeComposite = (\n compositeLocale: CompositeLocale,\n options?: Options,\n): CompositeLocale => {\n return {\n strings: {\n chat: {\n ...compositeLocale.strings.chat,\n ...options?.strings?.chat,\n },\n call: {\n ...compositeLocale.strings.call,\n ...options?.strings?.call,\n },\n callWithChat: {\n ...compositeLocale.strings.callWithChat,\n ...options?.strings?.callWithChat,\n },\n },\n component: { ...compositeLocale.component, ...options?.component },\n };\n};\n\nexport const videoLocale = ({\n localeCode,\n options,\n}: VideoLocale): CompositeLocale => {\n switch (localeCode) {\n case 'en_GB':\n return mergeComposite(COMPOSITE_LOCALE_EN_GB, options);\n case 'en_US':\n return mergeComposite(COMPOSITE_LOCALE_EN_US, options);\n case 'fr_CA':\n return mergeComposite(COMPOSITE_LOCALE_FR_FR, options);\n case 'fr_FR':\n return mergeComposite(COMPOSITE_LOCALE_FR_FR, options);\n\n default:\n return mergeComposite(COMPOSITE_LOCALE_EN_GB, options);\n }\n};\n","import {\n AvatarPersonaData,\n CallAdapter,\n CallComposite,\n darkTheme,\n} from '@azure/communication-react';\nimport { PartialTheme } from '@fluentui/react';\nimport { useTheme } from '@mui/material';\nimport { FC, useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { useMixpanelEvents, useMobileMediaQuery } from 'hooks';\nimport { LocaleCode, videoLocale } from '../VideoLocale';\n\nexport interface VideoCompositeProps {\n callAdapter: CallAdapter;\n localeCode?: string;\n sessionTitle?: string;\n onFetchUserImages?: (userId: string) => Promise;\n}\n\nconst VideoComposite: FC = ({\n callAdapter,\n localeCode = 'en_GB',\n sessionTitle,\n onFetchUserImages,\n}) => {\n const { startTimeISOString, trackScreenTime } = useMixpanelEvents();\n // Location\n const { pathname } = useLocation();\n\n // Styles\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n const formFactor = isMobile ? 'mobile' : 'desktop';\n\n const defaultDarkTheme: PartialTheme = {\n ...darkTheme,\n components: {},\n defaultFontStyle: {\n ...darkTheme.defaultFontStyle,\n fontFamily: theme.typography.fontFamily,\n },\n palette: {\n ...darkTheme.palette,\n },\n };\n\n const typedLocaleCode = localeCode as LocaleCode;\n\n const configurationPageTitle = isMobile ? '' : sessionTitle;\n\n useEffect(() => {\n return () => {\n trackScreenTime('Video Session Duration', {\n Started: startTimeISOString,\n });\n };\n }, [startTimeISOString, trackScreenTime]);\n\n return (\n \n );\n};\n\nexport default VideoComposite;\n","import { Button, ButtonProps, IconButton } from '@mui/material';\nimport { useMobileMediaQuery } from 'hooks';\nimport { FC, ReactNode } from 'react';\n\ninterface NavBarButtonProps extends ButtonProps {\n icon: ReactNode;\n label: string | undefined;\n 'data-cy': string;\n}\n\nconst NavBarButton: FC = ({\n label,\n icon,\n sx = {},\n 'data-cy': dataCy,\n ...rest\n}) => {\n // Styling\n const isMobile = useMobileMediaQuery();\n\n if (isMobile)\n return (\n theme.spacing(1),\n width: 'max-content',\n fontSize: '15px',\n p: 1.5,\n ...sx,\n }}\n {...rest}\n >\n {icon}\n \n );\n\n return (\n theme.spacing(1),\n width: 'max-content',\n ...sx,\n }}\n {...rest}\n >\n {icon}\n {label}\n \n );\n};\nexport default NavBarButton;\n","import { FC } from 'react';\nimport { AiTwotoneCalendar, AiFillFlag } from 'react-icons/ai';\nimport { BsFillChatLeftTextFill } from 'react-icons/bs';\nimport { Box } from '@mui/material';\n\nimport { useAppDispatch } from 'store/hooks';\nimport {\n setTransitionSidebar,\n setSidebar,\n SidebarType,\n} from 'store/slices/videoRoomSlice';\n\nimport NavBarButton from '../NavBarButton';\nimport { useMixpanelEvents } from 'hooks';\n\ninterface InCallNavBarButtonsProps {\n scheduleSessionLabel: string | undefined;\n goalsLabel: string | undefined;\n chatLabel: string | undefined;\n}\n\nconst InCallNavBarButtons: FC = ({\n scheduleSessionLabel,\n goalsLabel,\n chatLabel,\n}) => {\n const { trackClick } = useMixpanelEvents();\n // Redux\n const dispatch = useAppDispatch();\n\n const handleSidebar = (sidebar: SidebarType) => {\n dispatch(setTransitionSidebar(true));\n dispatch(setSidebar(sidebar));\n };\n\n // TODO Implement calling toggles on GUIDER-580\n const isDisabled = true;\n\n if (isDisabled) return <>;\n\n return (\n ({\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'center',\n alignContent: 'center',\n gap: theme.spacing(2),\n })}\n >\n {\n trackClick('Schedule Session Button');\n handleSidebar('session');\n }}\n icon={}\n label={scheduleSessionLabel}\n data-cy={'schedule-session-toggle-button'}\n />\n {\n trackClick('Goals Button');\n handleSidebar('goal');\n }}\n icon={}\n label={goalsLabel}\n data-cy={'goals-toggle-button'}\n />\n {\n trackClick('Chat Button');\n handleSidebar('chat');\n }}\n icon={}\n label={chatLabel}\n data-cy={'chat-toggle-button'}\n />\n \n );\n};\n\nexport default InCallNavBarButtons;\n","import { FC } from 'react';\nimport { AiOutlineClose } from 'react-icons/ai';\nimport { Box } from '@mui/material';\n\nimport NavBarButton from '../NavBarButton';\n\ninterface ExistSessionButtonsProps {\n relationshipId: string;\n exitSessionLabel: string | undefined;\n}\n\nconst ExistSessionButtons: FC = ({\n relationshipId,\n exitSessionLabel,\n}) => {\n const handleEndSession = () => {\n window.location.href = `${window.location.origin}/relationships/${relationshipId}`;\n };\n return (\n \n }\n label={exitSessionLabel}\n onClick={handleEndSession}\n sx={{\n backgroundColor: 'error.main',\n ':hover': {\n backgroundColor: 'error.dark',\n },\n }}\n data-cy={'exit-session-button'}\n />\n \n );\n};\n\nexport default ExistSessionButtons;\n","import { FC } from 'react';\nimport { Box, Skeleton, Typography } from '@mui/material';\nimport { AiOutlineClose } from 'react-icons/ai';\n\nimport { useAppSelector } from 'store/hooks';\n\nimport { getVideoRoomState } from 'store/slices/videoRoomSlice';\n\nimport InCallNavBarButtons from './InCallNavBarButtons';\nimport ExistSessionButtons from './ExistSessionButtons';\nimport NavBarButton from './NavBarButton';\nimport { useMobileMediaQuery } from 'hooks';\n\nexport interface VideoNavBarProps {\n relationshipId: string;\n sessionTitle: string;\n exitSessionLabel: string | undefined;\n scheduleSessionLabel: string | undefined;\n goalsLabel: string | undefined;\n chatLabel: string | undefined;\n}\nconst VideoNavBar: FC = ({\n relationshipId,\n sessionTitle,\n exitSessionLabel,\n scheduleSessionLabel,\n goalsLabel,\n chatLabel,\n}) => {\n // Style\n const isMobile = useMobileMediaQuery();\n // Redux;\n const videoRoomState = useAppSelector(getVideoRoomState);\n const { callCompositePage } = videoRoomState;\n\n const showExitSession = callCompositePage !== ('call' || 'lobby');\n const renderButtons = showExitSession ? (\n \n ) : (\n \n );\n\n if (!sessionTitle)\n return (\n \n \n \n \n\n \n }\n label={exitSessionLabel}\n sx={{\n backgroundColor: 'error.main',\n }}\n data-cy={'exit-session-loading-button'}\n />\n \n \n );\n\n return (\n \n \n {sessionTitle}\n \n {renderButtons}\n \n );\n};\n\nexport default VideoNavBar;\n","import { forwardRef } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport { useAppSelector } from 'store/hooks';\nimport { getVideoRoomState } from 'store/slices/videoRoomSlice';\n\nconst VideoSideBar = forwardRef((props, ref) => {\n // Redux\n const videoRoomState = useAppSelector(getVideoRoomState);\n\n // TODO add CHAT, SESSION, GOALS\n return (\n \n

{videoRoomState.transitionSidebar}

\n

SideBar

\n

{videoRoomState.sidebar}

\n \n );\n});\n\nexport default VideoSideBar;\n","import { Box, CircularProgress, Collapse } from '@mui/material';\nimport { useMobileMediaQuery } from 'hooks';\nimport { FC, useEffect, useRef } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport VideoComposite, { VideoCompositeProps } from './VideoComposite';\nimport VideoNavBar, { VideoNavBarProps } from './VideoNavBar';\nimport VideoSideBar from './VideoSideBar';\n\nexport interface VideoRoomError {\n message: string;\n techMsg: string;\n httpCode?: string | number;\n}\ninterface VideoRoomProps\n extends VideoNavBarProps,\n Partial {\n sessionTitle: string;\n transitionSidebar?: boolean;\n loading?: boolean;\n}\n\nconst VideoRoom: FC = ({\n sessionTitle,\n exitSessionLabel,\n relationshipId,\n scheduleSessionLabel,\n goalsLabel,\n chatLabel,\n callAdapter,\n onFetchUserImages,\n localeCode,\n transitionSidebar,\n loading,\n}) => {\n const secondaryInstanceTimerRef = useRef(null);\n const uuid = useRef(Math.random().toString());\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const isMobile = useMobileMediaQuery();\n useEffect(() => {\n if (!isMobile) return;\n const channel = new BroadcastChannel('secondary-instance-check');\n channel.postMessage(uuid.current);\n channel.addEventListener('message', (msg) => {\n if (msg.data !== uuid.current && msg.data !== 'instance-already-open') {\n channel.postMessage('instance-already-open');\n }\n if (msg.data === 'instance-already-open') {\n if (secondaryInstanceTimerRef.current) {\n clearTimeout(secondaryInstanceTimerRef.current);\n }\n dispatch(\n showAppAlert({\n severity: 'error',\n message:\n 'Only one Guider video can be open at a time. Redirecting to relationships page.',\n timeout: 10000,\n }),\n );\n secondaryInstanceTimerRef.current = setTimeout(() => {\n navigate(`/relationships`);\n }, 2000);\n }\n });\n return () => {\n channel.close();\n };\n }, []);\n return (\n \n \n \n \n \n {!callAdapter || loading ? (\n \n ) : (\n \n )}\n\n \n \n \n \n \n );\n};\n\nexport default VideoRoom;\n","import { Skeleton as MuiSkeleton } from '@mui/material';\n\nexport const Skeleton = () => (\n <>\n \n \n \n \n);\n","import { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport { useProfiles, useRelationships } from '@guider-global/front-end-hooks';\nimport { Avatar } from '@mui/material';\n\nimport { useEffect, useState } from 'react';\nimport { IRecipients, getRecipients } from 'utils/getRelationshipRecipients';\n\nexport interface AvatarProps {\n relationshipId: string | undefined;\n isGuide: boolean;\n}\n\nexport function SurveyAvatar({\n relationshipId,\n isGuide,\n}: Readonly) {\n // Local state\n const [otherPartyProfile, setOtherPartyProfile] = useState();\n\n // Profiles\n const { profile, isLoadingProfiles } = useProfiles({});\n const userId = profile?.userId;\n\n // Relationship profiles\n const { relationships, isLoadingRelationships } = useRelationships({});\n\n useEffect(() => {\n if (isLoadingProfiles || isLoadingRelationships || !relationshipId) {\n return;\n }\n\n const relationship = relationships?.find(\n (relationship) => relationship.id === relationshipId,\n );\n\n if (!relationship) {\n return;\n }\n\n const recipients = getRecipients({\n role: isGuide ? 'guide' : 'trainee',\n relationship,\n userId,\n });\n\n const otherPartyProfile = recipients.at(0);\n setOtherPartyProfile(otherPartyProfile);\n }, [\n isLoadingProfiles,\n isLoadingRelationships,\n relationships,\n userId,\n relationshipId,\n isGuide,\n ]);\n\n const { getProfileImage } = useProfileImage();\n const image = getProfileImage({\n profilePicture: otherPartyProfile?.picture,\n userPicture: otherPartyProfile?.userPicture,\n });\n\n return ;\n}\n","import { FC } from 'react';\n\nimport { Typography, Box } from '@mui/material';\nimport { PortableText } from '@portabletext/react';\n\nimport { SanityTextBlock } from '@guider-global/shared-types';\n\nexport interface LegalNoticesProps {\n title: string | undefined;\n content: SanityTextBlock[];\n}\n\nconst LegalNotices: FC = ({ title, content }) => {\n return (\n ({\n display: 'flex',\n flexFlow: 'column nowrap',\n alignContent: 'center',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.background.default,\n })}\n >\n ({\n display: 'flex',\n flexFlow: 'column nowrap',\n alignContent: 'center',\n alignItems: 'flex-start',\n justifyContent: 'center',\n my: { md: 8, xs: 6 },\n mx: { xs: 2 },\n maxWidth: theme.breakpoints.values.sm,\n })}\n >\n \n {title}\n \n \n \n \n );\n};\n\nexport default LegalNotices;\n"],"names":["SnackbarAlert","sx","severity","alertContent","icon","anchorOrigin","horizontal","vertical","snackbarProps","theme","isMobile","breakpoints","down","bottom","left","right","borderRadius","width","mergeComposite","compositeLocale","options","strings","chat","call","callWithChat","component","videoLocale","localeCode","callAdapter","sessionTitle","onFetchUserImages","startTimeISOString","trackScreenTime","pathname","useTheme","formFactor","defaultDarkTheme","components","defaultFontStyle","fontFamily","typography","palette","typedLocaleCode","configurationPageTitle","useEffect","Started","CallComposite","adapter","callInvitationUrl","onFetchAvatarPersonaData","fluentTheme","locale","errorBar","label","dataCy","rest","IconButton","color","backgroundColor","display","flexFlow","alignItems","justifyContent","gap","spacing","fontSize","p","Button","size","disableElevation","variant","scheduleSessionLabel","goalsLabel","chatLabel","trackClick","relationshipId","exitSessionLabel","Box","alignContent","onClick","window","location","href","origin","videoRoomState","callCompositePage","renderButtons","height","maxWidth","xs","md","px","Typography","textOverflow","whiteSpace","overflow","Skeleton","bgcolor","forwardRef","props","ref","minWidth","transitionSidebar","sidebar","loading","secondaryInstanceTimerRef","useRef","uuid","Math","random","toString","dispatch","navigate","channel","BroadcastChannel","postMessage","current","addEventListener","msg","data","clearTimeout","message","timeout","setTimeout","close","position","top","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","CircularProgress","Collapse","in","orientation","transform","mt","SurveyAvatar","isGuide","otherPartyProfile","setOtherPartyProfile","useState","profile","isLoadingProfiles","useProfiles","userId","relationships","isLoadingRelationships","useRelationships","relationship","find","id","role","at","getProfileImage","useProfileImage","image","profilePicture","picture","userPicture","Avatar","src","title","content","background","default","my","mx","values","sm","value"],"sourceRoot":""}