{"version":3,"file":"static/js/app-d6b56d54_4128099f23a5001570b5.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsReviewsPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/RegistrationPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsAccountPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsCommunicationPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsIntegrationsPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsProfilePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/SettingsPage/SettingsAvailabilityPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/RegisterAccountPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/RelationshipsPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/VideoPage/index.tsx"],"sourcesContent":["import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useSanityBaseLanguage,\n useSettings,\n} from '@guider-global/sanity-hooks';\nimport {\n Stack,\n Text,\n Image,\n theme,\n TextStack,\n SkeletonStack,\n} from '@guider-global/ui';\n\nimport { ThemeProvider, useTheme } from '@mui/material';\nimport { ReviewContainer } from 'containers/Settings';\n\nimport { useLocalization, useReviews } from 'hooks';\n\nimport { deepMerge } from 'utils';\n\nexport function SettingsReviewsPage() {\n // Hooks\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const organizationTheme = useTheme();\n const palette = deepMerge(theme.appTheme.palette, organizationTheme.palette);\n\n // Settings\n const { settings } = useSettings({\n localeCode,\n });\n\n const emptyStateAvatar = buildSanityImageUrl({\n source: settings?.static_media?.relationships?.no_relationships ?? '',\n width: 180,\n });\n\n // Base Language\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const reviewsText = getBaseLanguage()?.settings?.reviews;\n\n // Reviews\n const { reviews, isLoadingReviews } = useReviews({});\n\n return (\n \n \n \n {reviews &&\n reviews.length !== 0 &&\n reviews\n .sort((a, b) => (b.date > a.date ? 1 : -1))\n .map((review) => {\n return ;\n })}\n {!isLoadingReviews && (!reviews || reviews.length === 0) && (\n \n \n {emptyStateAvatar && (\n \n )}\n \n \n )}\n {isLoadingReviews && (\n \n )}\n \n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useOrganization,\n} from '@guider-global/sanity-hooks';\nimport { Avatar, Header, theme } from '@guider-global/ui';\nimport { Box, ThemeProvider, useTheme } from '@mui/system';\nimport { LanguageMenu } from 'components';\nimport { RegistrationContainer } from 'containers';\nimport { useLocalization } from 'hooks';\nimport { useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useAppDispatch } from 'store/hooks';\nimport { hideNavbar, showNavbar } from 'store/slices/appSlice';\nimport { deepMerge } from 'utils';\n\nexport function RegistrationPage() {\n const organizationSlug = getSubDomain();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n return () => {\n dispatch(showNavbar(true));\n };\n }, [dispatch]);\n\n const { organization } = useOrganization({\n organizationSlug,\n });\n\n const { localeCode, handleLanguageChange } =\n useLocalization(organizationSlug);\n\n const organizationTheme = useTheme();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n return (\n \n \n }\n onBackButtonClick={() => navigate(-1)}\n endAdornment={\n \n }\n />\n \n \n \n \n );\n}\n","// external\nimport { Alert, Box, CircularProgress, Divider, Grow } from '@mui/material';\nimport { FC, useCallback, useEffect, useState } from 'react';\nimport { useIntercom } from 'react-use-intercom';\n\n// Internal Hooks\nimport { useMobileMediaQuery, useUsers } from 'hooks';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n} from '@guider-global/sanity-hooks';\nimport { useAxios } from '@guider-global/redux-axios-hooks';\n\n// Utils\nimport { getSubDomain } from '@guider-global/front-end-utils';\n\n// Local components\nimport { SettingsDescription, SettingsSubheader } from 'components';\nimport { BaseOutlinedTextField, BaseLoadingButton } from '@guider-global/ui';\nimport { AccountPreferencesForm } from 'forms';\n\nconst { REACT_APP_AUTH0_CLIENT_ID, REACT_APP_AUTH0_DOMAIN } = process.env;\n\nexport const SettingsAccountPage: FC = () => {\n // Styles\n const isMobile = useMobileMediaQuery();\n // Utils\n const organizationSlug = getSubDomain();\n // Internal Hooks\n\n // - Intercom\n const { showNewMessage: showNewMessageIntercom } = useIntercom();\n\n // - Axios\n const { requestCallback } = useAxios({});\n // - User\n const { users: getUsers, isLoadingUsers: getIsLoadingUsers } = useUsers({\n getSilently: false,\n });\n const isLoadingUsers = getIsLoadingUsers();\n const users = getUsers();\n const isUsers = users.length > 0;\n const user = isUsers ? users[0] : undefined;\n const usersEmail = user ? user.email : '';\n const auth0UserId = user ? user.auth0UserId : '';\n const isSSO = Boolean(auth0UserId) && !auth0UserId.includes('auth0');\n\n // - Base language\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n const { settings } = baseLanguage;\n const account = settings?.account ?? {};\n const {\n change_email: changeEmail,\n change_password: changePassword,\n preferences,\n } = account;\n const {\n change_email_button_label: changeEmailButtonLabel,\n section_title: changeEmailSectionTitle,\n sso_user_alert_message: ssoUserAlertMessageEmail,\n change_email_input_label: changeEmailInputLabel,\n change_email_description: changeEmailDescription,\n } = changeEmail ?? {};\n const {\n change_password_button_label: changePasswordButtonLabel,\n section_title: changePasswordSectionTitle,\n server_error_alert_text: serverErrorAlertTextPassword,\n sso_user_alert_message: ssoUserAlertMessagePassword,\n success_alert_text: successAlertTextPassword,\n change_password_description: changePasswordDescription,\n } = changePassword ?? {};\n const { section_title: preferencesSectionTitle } = preferences ?? {};\n\n // - Sanity organization\n const { getOrganization } = useSanityOrganization({\n organizationSlug,\n getSilently: false,\n });\n const sanityOrganization = getOrganization();\n const organizationId = sanityOrganization.basic_info.auth0_organization_id;\n\n // Local state\n const [loadingButton, setLoadingButton] = useState(false);\n const [alertEmail, setAlertEmail] =\n useState>();\n const [alertPassword, setAlertPassword] =\n useState>();\n\n // Effects\n useEffect(() => {\n if (!isSSO) return;\n setAlertEmail({\n severity: 'warning',\n message: ssoUserAlertMessageEmail,\n show: true,\n });\n setAlertPassword({\n severity: 'warning',\n message: ssoUserAlertMessagePassword,\n show: true,\n });\n }, [isSSO, ssoUserAlertMessageEmail, ssoUserAlertMessagePassword]);\n\n // Events\n const handlePasswordReset = useCallback(async () => {\n setLoadingButton(true);\n try {\n if (!REACT_APP_AUTH0_DOMAIN || !REACT_APP_AUTH0_CLIENT_ID) {\n throw new Error('Missing Env value');\n }\n const request = await requestCallback({\n method: 'POST',\n url: `https://${REACT_APP_AUTH0_DOMAIN}/dbconnections/change_password`,\n headers: { 'content-type': 'application/json' },\n data: {\n // eslint-disable-next-line camelcase\n client_id: REACT_APP_AUTH0_CLIENT_ID,\n email: usersEmail,\n connection: 'Username-Password-Authentication',\n organization: organizationId,\n },\n });\n if (request.status === 200) {\n setAlertPassword({\n severity: 'info',\n message: successAlertTextPassword,\n show: true,\n });\n }\n if (request.status >= 400) {\n console.log(request);\n setAlertPassword({\n severity: 'error',\n message: serverErrorAlertTextPassword,\n show: true,\n });\n }\n } catch (err: unknown) {\n console.log(err);\n setAlertPassword({\n severity: 'error',\n message: serverErrorAlertTextPassword,\n show: true,\n });\n } finally {\n setLoadingButton(false);\n }\n }, [\n organizationId,\n requestCallback,\n serverErrorAlertTextPassword,\n successAlertTextPassword,\n usersEmail,\n ]);\n\n const handleEmailChangeRequest = useCallback(() => {\n showNewMessageIntercom('I would like to change my account email address.');\n }, [showNewMessageIntercom]);\n\n if (isLoadingUsers) {\n return (\n \n ;\n \n );\n }\n\n return (\n \n {/* Preferences */}\n \n\n \n\n \n\n {/* Email */}\n \n \n\n \n \n \n\n \n\n \n {changeEmailButtonLabel}\n \n\n \n\n {/* Password */}\n \n\n \n\n \n\n \n {changePasswordButtonLabel}\n \n \n );\n};\n\nexport default SettingsAccountPage;\n\ninterface SettingsAccountAlertProps {\n severity?: 'error' | 'info' | 'success' | 'warning';\n message?: string;\n show?: boolean;\n}\n\nconst SettingsAccountAlert: FC = ({\n severity = 'warning',\n message,\n show,\n}) => {\n return (\n \n \n {message}\n \n \n );\n};\n","// external\nimport { Typography } from '@mui/material';\n\nexport const SettingsCommunicationPage = () => (\n <>\n \n This a placeholder for the Communication Settings page.\n \n \n);\n\nexport default SettingsCommunicationPage;\n","// external\nimport { useSanityBaseLanguage } from '@guider-global/sanity-hooks';\nimport { Box, Typography } from '@mui/material';\n//components\nimport { IntegrationsList } from 'components';\n\nexport const SettingsIntegrationsPage = () => {\n const { getBaseLanguage } = useSanityBaseLanguage({});\n\n const baseLanguage = getBaseLanguage();\n\n return (\n <>\n \n \n {baseLanguage.settings?.integrations?.section_description}\n \n \n \n \n );\n};\n","import React, { useEffect } from 'react';\n// external\nimport { Box } from '@mui/material';\nimport { BsCalendar } from 'react-icons/bs';\nimport { MdCode, MdPerson, MdReviews, MdShield } from 'react-icons/md';\nimport { Outlet, useLocation, useNavigate } from 'react-router-dom';\n\n// store\n\n// components\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useOrganization,\n useSanityBaseLanguage,\n} from '@guider-global/sanity-hooks';\nimport {\n PageHeader,\n PageSidebar,\n PageWrapper,\n SettingsContainer,\n} from 'components';\nimport { useLocalization } from 'hooks';\n\nexport const SettingsPage: React.FC = () => {\n // Router\n const location = useLocation();\n const navigate = useNavigate();\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { organization } = useOrganization({ organizationSlug, localeCode });\n // Base language\n const { getBaseLanguage } = useSanityBaseLanguage({\n getSilently: false,\n });\n const baseLanguage = getBaseLanguage();\n const { navigation, settings } = baseLanguage;\n const userActionMenu = navigation?.user_action_menu;\n const {\n communication,\n profile,\n integrations: integrationsBaseLanguage,\n title,\n description,\n } = settings ?? {};\n\n // Organization\n const whiteLabel = organization?.white_label;\n const enabledIntegrations = whiteLabel?.integrations;\n const { video_conferencing: videoConferencing, calendar } =\n enabledIntegrations ?? {};\n const isIntegrationEnabled =\n videoConferencing?.active_directory_teams ||\n calendar?.active_directory_outlook_calendar;\n\n useEffect(() => {\n const isPathIntegration = location.pathname.includes('/integrations');\n if (!isIntegrationEnabled && isPathIntegration) {\n navigate('/settings/profile');\n }\n }, [isIntegrationEnabled, location.pathname, navigate]);\n\n const integrationSidebardItem = isIntegrationEnabled\n ? [\n {\n primaryText: userActionMenu?.integrations_label,\n icon: MdCode,\n path: '/settings/integrations',\n selected: location.pathname.includes('/integrations'),\n dataCyLabel: 'pages_settingsPage_integrations',\n },\n ]\n : [];\n\n const pageSidebarItems = [\n {\n primaryText: userActionMenu?.profile_link_label,\n icon: MdPerson,\n path: '/settings/profile',\n selected: location.pathname.includes('/profile'),\n dataCyLabel: 'pages_settingsPage_profile',\n },\n {\n primaryText: userActionMenu?.account_link_label,\n icon: MdShield,\n path: '/settings/account',\n selected: location.pathname.includes('/account'),\n dataCyLabel: 'pages_settingsPage_account',\n },\n ...integrationSidebardItem,\n {\n primaryText: userActionMenu?.availability_link_label,\n icon: BsCalendar,\n path: '/settings/availability',\n selected: location.pathname.includes('/availability'),\n dataCyLabel: 'pages_settingsPage_availability',\n },\n {\n primaryText: userActionMenu?.reviews_link_label,\n icon: MdReviews,\n path: '/settings/reviews',\n selected: location.pathname.includes('/reviews'),\n dataCyLabel: 'pages_settingsPage_reviews',\n },\n ];\n\n const selectHeader = (location: string): string | undefined => {\n const locationIncludesPathname = (pathname: string) =>\n location.includes(pathname);\n\n if (locationIncludesPathname('/profile'))\n return profile?.profile_details?.section_title;\n if (locationIncludesPathname('/account')) return '';\n if (locationIncludesPathname('/communication'))\n return communication?.section_title;\n if (locationIncludesPathname('/integrations'))\n return integrationsBaseLanguage?.section_title;\n return '';\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { ThemeProvider, useTheme } from '@mui/material';\nimport { theme } from '@guider-global/ui';\nimport { useProfiles } from 'hooks';\nimport { deepMerge } from 'utils';\nimport { EditProfileForm } from 'forms/EditProfileForm';\nimport { ProfilePictureForm } from 'forms';\n\nexport function SettingsProfilePage() {\n // Theme\n const organizationTheme = useTheme();\n const palette = deepMerge(theme.appTheme.palette, organizationTheme.palette);\n\n // Profiles\n const { getProfiles } = useProfiles({\n getSilently: false,\n forceRefresh: false,\n getSilentlyUrl: '/profiles',\n queryParams: {\n integrationsEnabled: true,\n },\n });\n const profiles = getProfiles();\n\n const profile = profiles.at(0);\n\n return (\n \n \n \n \n );\n}\n","import { useEffect, useState } from 'react';\nimport { Box } from '@mui/material';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { SettingsDescription, SettingsSubheader } from 'components';\nimport { AvailabilityForm } from 'forms';\nimport { useAvailabilities, useLocalization } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\n\nexport function SettingsAvailabilityPage() {\n const [requestedAvailabilities, setRequestedAvailabilities] = useState(false);\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const availability = baseLanguage?.settings?.availability;\n const {\n section_title: sectionTitle,\n section_description: sectionDescription,\n } = availability ?? {};\n\n const { reqAvailabilities, isLoadingAvailabilities } = useAvailabilities({});\n\n useEffect(() => {\n const requestLatestAvailabilities = async () => {\n console.log('Requesting availabilities');\n if (!requestedAvailabilities && !isLoadingAvailabilities) {\n try {\n await reqAvailabilities({\n method: 'GET',\n url: '/availabilities',\n });\n\n setRequestedAvailabilities(true);\n } catch (error) {\n console.error('Error fetching availabilities:', error);\n }\n }\n };\n\n requestLatestAvailabilities();\n }, [requestedAvailabilities, isLoadingAvailabilities, reqAvailabilities]);\n\n return (\n .MuiTypography-h6': {\n mb: 0.5,\n },\n }}\n >\n \n \n\n \n \n );\n}\n","// external\nimport { ChangeEvent, FC, useCallback, useEffect, useState } from 'react';\nimport { useAuth0 } from '@auth0/auth0-react';\nimport { Box, Button, Divider } from '@mui/material';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\n\n// hooks\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport { useRegisterInvite } from 'hooks/useRegisterInvite';\nimport {\n SessionStorageKeys,\n useMixpanelEvents,\n useSessionStorageTyped,\n} from 'hooks';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n} from '@guider-global/sanity-hooks';\n\n// Store\nimport {\n selectRegistrationType,\n showAppAlert,\n showAppError,\n toggleModal,\n} from 'store/slices/appSlice';\n\n// Internal\nimport {\n RegisterLocalAccount,\n RegisterSSO,\n RenderDividerMessage,\n TypographyAction,\n} from 'components';\n\nimport { validateEmail } from 'utils/validateEmail';\nimport { BaseHeader, OrganizationContentContainer } from '@guider-global/ui';\n\n// Types\nimport { URLQueryParams } from '@guider-global/shared-types';\n\n// Utils\nimport { getOrigin, getSubDomain } from '@guider-global/front-end-utils';\n\nconst { REACT_APP_BASE_API_URL, REACT_APP_AUTH0_CLIENT_ID } = process.env;\nconst DATA_CY_PAGE = 'register_account';\n\nexport const RegisterAccountPage: FC = () => {\n // Auth0\n const { loginWithRedirect } = useAuth0();\n // Redux\n const registrationPageType = useAppSelector(selectRegistrationType);\n const dispatch = useAppDispatch();\n const organizationSlug = getSubDomain();\n // Router\n const navigate = useNavigate();\n const [urlSearchParams] = useSearchParams();\n\n // Util\n const origin = getOrigin();\n\n // Hooks\n const { trackScreenTime } = useMixpanelEvents();\n // Session storage\n const [, setRedirect] = useSessionStorageTyped(\n SessionStorageKeys.REGISTER_REDIRECT,\n );\n // - Sanity base language\n const {\n isLoadingSanityBaseLanguage,\n isErrorSanityBaseLanguage,\n getErrorsSanityBaseLanguage,\n getBaseLanguage,\n } = useSanityBaseLanguage({ getSilently: true });\n const sanityBaseLanguage = getBaseLanguage();\n const sanityBaseLanguageLegalNotices = sanityBaseLanguage.legal_notices;\n const privacyPolicyLabel =\n sanityBaseLanguageLegalNotices?.privacy_policy?.privacy_policy_label;\n const termsOfServiceLabel =\n sanityBaseLanguageLegalNotices?.terms_of_service?.terms_of_service_label;\n const sanityBaseLanguageRegistration = sanityBaseLanguage.registration;\n const sanityBaseLanguageCommon = sanityBaseLanguageRegistration?.common;\n const registrationPageTitle = sanityBaseLanguageRegistration?.common?.title;\n const loadingSanityBaseLanguage = isLoadingSanityBaseLanguage();\n const errorSanityBaseLanguage = isErrorSanityBaseLanguage();\n\n const sanityBaseLanguageMultitenantSSO =\n sanityBaseLanguageRegistration?.multitenant_SSO;\n const sanityBaseLanguageRegistrationLocalAccounts =\n sanityBaseLanguageRegistration?.local_accounts;\n const sanityBaseLanguageRegistrationSSOAndLocalAccounts =\n sanityBaseLanguageRegistration?.sso_and_local_accounts;\n\n // - Sanity Organization\n const { getOrganization } = useSanityOrganization({\n organizationSlug,\n getSilently: false,\n });\n const sanityOrganization = getOrganization();\n const sanityOrganizationAccess = sanityOrganization.access;\n const sanityOrganizationEmailVerification =\n sanityOrganizationAccess.email_verification;\n const sanityOrganizationConfigurations =\n sanityOrganizationAccess.configuration_array ?? [];\n const basicInfo = sanityOrganization.basic_info;\n const organizationId = basicInfo.auth0_organization_id;\n const organizationName = basicInfo.name;\n const landingPage = sanityOrganization.landing_page;\n const isLandingPageEnabled = landingPage?.enable_landing_page;\n\n const {\n error: inviteError,\n inviteUrl,\n loading: inviteLoading,\n handleGetInvite,\n } = useRegisterInvite();\n\n // Local State\n const [eventLoading, setEventLoading] = useState(true);\n\n const [formErrors, setFormErrors] = useState(false);\n const [email, setEmail] = useState();\n const [disableButton, setDisableButton] = useState(true);\n\n const loading = eventLoading || inviteLoading || loadingSanityBaseLanguage;\n\n // Effects\n useEffect(() => {\n const redirectAddress = urlSearchParams.get(URLQueryParams.REDIRECT);\n if (!redirectAddress) return;\n setRedirect(redirectAddress);\n }, [setRedirect, urlSearchParams]);\n\n useEffect(() => {\n if (!email) return;\n const isEmail = validateEmail(email);\n if (!isEmail || !email) {\n setFormErrors(true);\n return;\n }\n setFormErrors(false);\n setDisableButton(false);\n }, [email]);\n useEffect(() => {\n if (REACT_APP_BASE_API_URL && REACT_APP_AUTH0_CLIENT_ID) {\n setEventLoading(false);\n return;\n }\n dispatch(\n showAppError({\n code: '418',\n message: 'Missing Env values',\n visible: true,\n overlay: true,\n }),\n );\n }, [dispatch]);\n\n useEffect(() => {\n if (!inviteUrl) {\n return;\n }\n const invite = new URL(inviteUrl);\n const invitation = invite.searchParams.get('invitation');\n const organizationId = invite.searchParams.get('organization');\n const organizationName = invite.searchParams.get('organization_name');\n if (!invitation || !organizationId || !organizationName) {\n return;\n }\n loginWithRedirect({\n authorizationParams: {\n organization: organizationId,\n invitation,\n redirect_uri: `${origin}/login`,\n },\n });\n }, [inviteUrl, loginWithRedirect, origin]);\n\n useEffect(() => {\n if (inviteError) {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: inviteError,\n }),\n );\n }\n }, [dispatch, inviteError]);\n\n useEffect(() => {\n if (!errorSanityBaseLanguage) return;\n const errors = getErrorsSanityBaseLanguage();\n console.warn(errors);\n dispatch(\n showAppError({\n code: '418',\n message: 'Error occurred getting base languages',\n visible: true,\n overlay: true,\n }),\n );\n }, [dispatch, errorSanityBaseLanguage, getErrorsSanityBaseLanguage]);\n\n useEffect(() => {\n if (loading) return;\n if (registrationPageType === 'none') {\n navigate('/error?error=404');\n }\n }, [loading, navigate, registrationPageType]);\n\n // Events\n const trackAuthSelect = useCallback(() => {\n trackScreenTime('Registration - Auth / Select Email or SSO');\n }, [trackScreenTime]);\n\n const handleEmailRegister = useCallback(() => {\n const isEmail = validateEmail(email);\n if (!isEmail || !email) {\n setFormErrors(true);\n return;\n }\n\n trackAuthSelect();\n setFormErrors(false);\n\n handleGetInvite({\n organizationId,\n organizationName,\n email,\n });\n }, [\n email,\n trackAuthSelect,\n handleGetInvite,\n organizationId,\n organizationName,\n ]);\n\n const handleSSORegister = useCallback(\n async (connection: string, organizationId: string) => {\n trackAuthSelect();\n setEventLoading(true);\n await loginWithRedirect({\n authorizationParams: {\n connection,\n organization: organizationId,\n },\n async openUrl(url) {\n window.location.href = url;\n },\n });\n setEventLoading(false);\n },\n [trackAuthSelect, loginWithRedirect],\n );\n\n const handleEmailChange = useCallback(\n (event: ChangeEvent) => {\n setEmail(event.target.value);\n },\n [],\n );\n\n const handlePrivacyModal = useCallback(() => {\n dispatch(toggleModal('privacyPolicy'));\n }, [dispatch]);\n\n const handleTermsOfServiceModal = useCallback(() => {\n dispatch(toggleModal('termsOfService'));\n }, [dispatch]);\n\n const handleLogin = useCallback(() => {\n loginWithRedirect({\n authorizationParams: {\n organization: organizationId,\n redirect_uri: `${origin}/login`,\n },\n });\n }, [loginWithRedirect, organizationId, origin]);\n\n const handleBack = useCallback(() => {\n trackScreenTime(\n 'Registration - Auth / Select Email or SSO - Go Back Button',\n );\n window.history.back();\n }, [trackScreenTime]);\n\n // Derivations\n\n const getSubheader = useCallback(() => {\n switch (registrationPageType) {\n case 'localAccountsAndSSO':\n return sanityBaseLanguageRegistrationSSOAndLocalAccounts?.description;\n case 'localAccounts':\n return sanityBaseLanguageRegistrationLocalAccounts?.description;\n case 'multitenantsSSO':\n return sanityBaseLanguageMultitenantSSO?.description;\n default:\n return '';\n }\n }, [\n registrationPageType,\n sanityBaseLanguageMultitenantSSO?.description,\n sanityBaseLanguageRegistrationLocalAccounts?.description,\n sanityBaseLanguageRegistrationSSOAndLocalAccounts?.description,\n ]);\n const subheader = getSubheader();\n\n if (registrationPageType === 'none') {\n return <>;\n }\n\n return (\n <>\n \n \n \n\n \n\n \n\n \n \n \n {sanityBaseLanguageCommon?.legal_notice_label}\n \n \n \n \n \n {sanityBaseLanguageCommon?.have_account_label}\n \n \n \n {isLandingPageEnabled && (\n \n {sanityBaseLanguage.globals?.common?.go_back_button_label}\n \n )}\n \n );\n};\n","// external\nimport { Box, Button, Typography, useTheme } from '@mui/material';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// components\nimport {\n RelationshipDetails,\n RelationshipsArchivedList,\n RelationshipsList,\n} from 'components';\n\n// store\n\n// hooks\nimport {\n useMemberships,\n useMixpanelEvents,\n useMobileMediaQuery,\n useRelationships,\n} from 'hooks';\n\nimport {\n buildSanityImageUrl,\n useSanityBaseLanguage,\n useSettings,\n} from '@guider-global/sanity-hooks';\n\nexport const RelationshipsPage: React.FC = () => {\n const [isNewRelationshipLoading, setIsNewRelationshipLoading] =\n useState(false);\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n const navigate = useNavigate();\n const { relationshipId } = useParams();\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n const { settings } = useSettings({\n localeCode: 'en_GB',\n });\n useMixpanelEvents({ navigationEventName: 'Relationships' });\n\n const {\n relationships: getRelationships,\n isLoadingRelationships,\n hasResultsRelationships: getHasResultsRelationships,\n } = useRelationships({\n getSilently: true,\n });\n const relationships = getRelationships();\n const isLoading = isLoadingRelationships();\n const hasResultsRelationships = getHasResultsRelationships();\n const activeRelationships = useMemo(\n () => relationships.filter((relationship) => !relationship.isConcluded),\n [relationships],\n );\n\n useMemberships({ getSilently: true });\n\n useEffect(() => {\n setIsNewRelationshipLoading(true);\n\n const timer = setTimeout(() => {\n setIsNewRelationshipLoading(false);\n });\n\n return () => clearTimeout(timer);\n }, [relationshipId]);\n\n const currentRelationship = useMemo(\n () =>\n relationships.find((relationship) => relationship.id === relationshipId),\n [relationships, relationshipId],\n );\n\n const currentRelationshipArchived = currentRelationship?.isConcluded;\n\n const shouldRenavigate =\n !isLoading &&\n relationshipId &&\n !currentRelationship &&\n hasResultsRelationships;\n useEffect(() => {\n if (shouldRenavigate) {\n navigate('/relationships');\n }\n }, [\n currentRelationship,\n hasResultsRelationships,\n isLoading,\n navigate,\n relationshipId,\n shouldRenavigate,\n ]);\n\n const firstActiveRelationshipId = activeRelationships.at(0)?.id;\n useEffect(() => {\n if (isLoading) return;\n if (relationshipId) return;\n if (isMobile) return;\n if (!firstActiveRelationshipId) return;\n navigate(`./${firstActiveRelationshipId}`);\n }, [\n isLoading,\n relationshipId,\n firstActiveRelationshipId,\n isMobile,\n navigate,\n currentRelationship,\n hasResultsRelationships,\n ]);\n\n const archivedRelationships = useMemo(\n () => relationships.filter((relationship) => relationship.isConcluded),\n [relationships],\n );\n\n const renderSidebar = useCallback(() => {\n if (!isMobile || (!relationshipId && relationships.length !== 0)) {\n return (\n \n \n {baseLanguage.relationships?.relationships_list?.title}\n \n \n \n \n );\n }\n }, [\n activeRelationships,\n archivedRelationships,\n baseLanguage.relationships?.relationships_list?.title,\n isLoading,\n isMobile,\n relationshipId,\n relationships.length,\n theme.palette.divider,\n ]);\n\n const renderNoRelationships = useCallback(() => {\n if (isLoading) return;\n if (currentRelationshipArchived) return;\n\n if (\n (!isMobile && activeRelationships.length === 0) ||\n (isMobile && relationships.length === 0)\n ) {\n return (\n \n {isMobile && (\n \n {baseLanguage.relationships?.relationships_list?.title}\n \n )}\n \n \n \n {baseLanguage.relationships?.no_relationships_state?.title}\n \n \n {baseLanguage.relationships?.no_relationships_state?.description}\n \n \n navigate('/programs')}\n color=\"info\"\n fullWidth={isMobile}\n sx={{ mr: isMobile ? 0 : 3, mb: isMobile ? 1.5 : 0 }}\n data-cy=\"no-relationships-container-view-programs-button\"\n >\n {baseLanguage.globals?.programs?.view_programs_button_label}\n \n navigate('/learn')}\n color=\"info\"\n fullWidth={isMobile}\n data-cy=\"no-relationships-container-explore-learining-hub-button\"\n >\n {baseLanguage.globals?.common?.explore_learning_hub}\n \n \n \n \n );\n }\n }, [\n activeRelationships.length,\n baseLanguage.relationships?.no_relationships_state?.description,\n baseLanguage.relationships?.no_relationships_state?.title,\n baseLanguage.globals?.common?.explore_learning_hub,\n baseLanguage.globals?.programs?.view_programs_button_label,\n baseLanguage.relationships?.relationships_list?.title,\n currentRelationshipArchived,\n isLoading,\n isMobile,\n navigate,\n relationships.length,\n settings?.static_media?.relationships?.empty_state_illustration,\n ]);\n\n return (\n \n {renderSidebar()}\n\n {currentRelationship && !isNewRelationshipLoading && (\n \n )}\n\n {renderNoRelationships()}\n \n );\n};\n\nexport default RelationshipsPage;\n","import {\n AzureCommunicationTokenCredential,\n CommunicationUserIdentifier,\n} from '@azure/communication-common';\nimport {\n AvatarPersonaData,\n AzureCommunicationCallAdapterArgs,\n CallAdapterState,\n fromFlatCommunicationIdentifier,\n useAzureCommunicationCallAdapter,\n} from '@azure/communication-react';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\nimport { IError } from '@guider-global/shared-types';\n\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { useVideoTokens } from 'hooks/useVideoTokens';\nimport { useVideos } from 'hooks/useVideos';\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\n\nimport {\n getVideoRoomState,\n setCallCompositePage,\n} from 'store/slices/videoRoomSlice';\n\nimport { usePicture } from '@guider-global/azure-storage-hooks';\nimport VideoRoom from 'components/VideoRoom';\nimport {\n useLocalization,\n useProfiles,\n useRelationships,\n useUsers,\n useVideoParticipants,\n} from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\n\nconst VideoPage: FC = () => {\n // Organization and Base language\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n // Local State\n const [joinedAt, setJoinedAt] = useState();\n const [submittedTimeInCall, setSubmittedTimeInCall] =\n useState(false);\n const [error, setError] = useState([]);\n\n // React Router\n const navigate = useNavigate();\n const { id: sessionId } = useParams();\n\n // REDUX\n const dispatch = useAppDispatch();\n const videoRoomState = useAppSelector(getVideoRoomState);\n const { transitionSidebar, callCompositePage } = videoRoomState;\n\n // Hooks\n const { getImage, loading: loadingPicture } = usePicture({\n containerName: 'pictures',\n });\n\n const { users } = useUsers({ getSilently: false });\n const user = users().at(0);\n\n const { getProfiles } = useProfiles({ getSilently: false });\n const profile = getProfiles().at(0);\n\n // Video Session\n const { video, errorVideo } = useVideos({ sessionId: sessionId! });\n\n const {\n displayName,\n roomId,\n communicationUserId,\n relationshipId,\n sessionName,\n } = video?.[0] ?? {};\n\n const {\n videoParticipants,\n reqVideoParticipants,\n isLoadingVideoParticipants,\n } = useVideoParticipants({});\n const videoParticipant = videoParticipants?.find(\n (videoParticipant) => videoParticipant.session === sessionId,\n );\n\n // Relationship\n const { relationships: getRelationships, isLoadingRelationships } =\n useRelationships({\n getSilently: true,\n getSilentlyUrl: `/relationships/${relationshipId}`,\n });\n const relationships = getRelationships();\n const relationship = relationships.find(\n (relationship) => relationship.id === relationshipId,\n );\n const relationshipProfiles = [\n ...(relationship?.traineeProfiles ?? []),\n ...(relationship?.guideProfiles ?? []),\n ];\n\n const handleFetchUserImages = async (\n communicationUserId: string,\n ): Promise => {\n const profile = relationshipProfiles.find(\n (profile) => profile?.communicationUserId === communicationUserId,\n );\n const user = relationship?.users?.find(\n (user) => user?.id === profile?.userId,\n );\n\n if (!user) return {};\n const imageUrl = profile?.picture\n ? getImage(profile?.picture)\n : user.picture;\n return { imageUrl };\n };\n\n // Users Video Token\n const { videoTokens, errorVideoTokens, isErrorVideoTokens } = useVideoTokens(\n {},\n );\n\n const { token } = videoTokens?.[0] ?? {};\n const errorsVideoToken = isErrorVideoTokens ? [errorVideoTokens] : [];\n\n // CMS\n\n const sanityBaseLanguageVideo =\n baseLanguage?.relationships?.sessions?.sessions_video;\n const {\n end_session_button_label: exitSessionLabel,\n toggle_chat_button_label: chatLabel,\n toggle_goals_button_label: goalsLabel,\n toggle_schedule_session_button_label: scheduleSessionLabel,\n } = sanityBaseLanguageVideo ?? {};\n\n // ACS Call Adapter\n const credential = useMemo(() => {\n try {\n if (!token) return undefined;\n return new AzureCommunicationTokenCredential(token);\n } catch (error) {\n console.warn(error);\n\n if (error instanceof Error) {\n setError([{ message: error.message }]);\n } else {\n setError([{ message: 'Failed to construct token credential' }]);\n }\n return undefined;\n }\n }, [token]);\n\n const callAdapterArgs: Partial =\n useMemo(() => {\n if (!roomId || !communicationUserId) return {};\n return {\n userId: fromFlatCommunicationIdentifier(\n communicationUserId,\n ) as CommunicationUserIdentifier,\n displayName,\n credential,\n locator: { groupId: roomId },\n };\n }, [communicationUserId, credential, displayName, roomId]);\n const callAdapter = useAzureCommunicationCallAdapter(callAdapterArgs);\n\n useEffect(() => {\n if (!callAdapter) return;\n const disposeAdapter = async (): Promise => {\n if (videoParticipant && joinedAt && !submittedTimeInCall) {\n setSubmittedTimeInCall(true);\n\n await reqVideoParticipants({\n method: 'PATCH',\n url: `/videoParticipants/${videoParticipant.id}`,\n data: {\n joinedAt,\n leftAt: new Date(),\n },\n });\n }\n\n callAdapter?.dispose();\n };\n\n const handlePageChange = (state: CallAdapterState) => {\n dispatch(setCallCompositePage(state.page));\n };\n callAdapter.onStateChange((state) => {\n handlePageChange(state);\n });\n window.addEventListener('beforeunload', disposeAdapter);\n return () => {\n callAdapter.offStateChange((state) => {\n handlePageChange(state);\n });\n window.removeEventListener('beforeunload', disposeAdapter);\n };\n }, [\n callAdapter,\n reqVideoParticipants,\n dispatch,\n navigate,\n submittedTimeInCall,\n relationshipId,\n joinedAt,\n videoParticipant,\n ]);\n\n useEffect(() => {\n if (isLoadingVideoParticipants) {\n return;\n }\n\n const handleCallCompositePage = async () => {\n if (callCompositePage === 'call') {\n const now = new Date();\n\n setSubmittedTimeInCall(false);\n\n if (!joinedAt || submittedTimeInCall) {\n setJoinedAt(now);\n }\n\n if (!videoParticipant && user && profile && sessionId && joinedAt) {\n await reqVideoParticipants({\n method: 'POST',\n url: '/videoParticipants',\n data: {\n organizationSlug,\n user: user.id,\n profile: profile.id,\n relationship: relationshipId,\n session: sessionId,\n joinedAt: now,\n },\n });\n }\n }\n\n if (\n callCompositePage === 'leftCall' &&\n videoParticipant &&\n joinedAt &&\n !submittedTimeInCall\n ) {\n setSubmittedTimeInCall(true);\n\n await reqVideoParticipants({\n method: 'PATCH',\n url: `/videoParticipants/${videoParticipant.id}`,\n data: {\n joinedAt,\n leftAt: new Date(),\n },\n });\n }\n };\n\n handleCallCompositePage();\n }, [\n reqVideoParticipants,\n submittedTimeInCall,\n isLoadingVideoParticipants,\n callCompositePage,\n videoParticipant,\n organizationSlug,\n user,\n profile,\n relationshipId,\n sessionId,\n joinedAt,\n ]);\n\n // Derivations\n const loading =\n isLoadingRelationships() ||\n !token ||\n !roomId ||\n !callAdapter ||\n loadingPicture;\n\n const errors = [...errorsVideoToken, ...error];\n\n return (\n \n );\n};\n\nexport default VideoPage;\n"],"names":["SettingsReviewsPage","organizationSlug","getSubDomain","localeCode","organizationTheme","palette","settings","useSettings","emptyStateAvatar","buildSanityImageUrl","source","static_media","relationships","no_relationships","width","getBaseLanguage","useSanityBaseLanguage","reviewsText","reviews","isLoadingReviews","theme","direction","pb","size","heading","text","title","variant","subtitles","description","color","length","sort","a","b","date","map","review","alignItems","gap","spacing","pt","alignSelf","empty_state_title","mb","src","fit","textAlign","empty_state_description","amount","skeletonHeight","RegistrationPage","dispatch","navigate","useEffect","organization","useOrganization","handleLanguageChange","useTheme","combinedPalette","ThemeProvider","bgColor","common","white","logo","white_label","auth0_logo","sx","maxHeight","maxWidth","onBackButtonClick","endAdornment","arrowColor","languageOptions","organizationLanguages","ariaLabel","onClickChange","display","flex","justifyContent","backgroundColor","py","xs","md","REACT_APP_AUTH0_CLIENT_ID","REACT_APP_AUTH0_DOMAIN","SettingsAccountPage","isMobile","showNewMessage","showNewMessageIntercom","requestCallback","useAxios","users","getUsers","isLoadingUsers","getIsLoadingUsers","getSilently","user","usersEmail","email","auth0UserId","isSSO","Boolean","includes","baseLanguage","account","change_email","changeEmail","change_password","changePassword","preferences","change_email_button_label","changeEmailButtonLabel","section_title","changeEmailSectionTitle","sso_user_alert_message","ssoUserAlertMessageEmail","change_email_input_label","changeEmailInputLabel","change_email_description","changeEmailDescription","change_password_button_label","changePasswordButtonLabel","changePasswordSectionTitle","server_error_alert_text","serverErrorAlertTextPassword","ssoUserAlertMessagePassword","success_alert_text","successAlertTextPassword","change_password_description","changePasswordDescription","preferencesSectionTitle","getOrganization","useSanityOrganization","organizationId","basic_info","auth0_organization_id","loadingButton","setLoadingButton","useState","alertEmail","setAlertEmail","alertPassword","setAlertPassword","severity","message","show","handlePasswordReset","useCallback","Error","request","method","url","headers","data","client_id","connection","status","console","log","err","handleEmailChangeRequest","flexFlow","CircularProgress","subheader","AccountPreferencesForm","my","SettingsAccountAlert","label","inputProps","sm","fullWidth","disabled","defaultValue","onClick","loading","Grow","in","timeout","unmountOnExit","Alert","SettingsCommunicationPage","Typography","SettingsIntegrationsPage","component","integrations","section_description","SettingsPage","location","navigation","userActionMenu","user_action_menu","communication","profile","integrationsBaseLanguage","whiteLabel","enabledIntegrations","video_conferencing","videoConferencing","calendar","isIntegrationEnabled","active_directory_teams","active_directory_outlook_calendar","isPathIntegration","pathname","integrationSidebardItem","primaryText","integrations_label","icon","MdCode","path","selected","dataCyLabel","pageSidebarItems","profile_link_label","MdPerson","account_link_label","MdShield","availability_link_label","reviews_link_label","MdReviews","flexDirection","header","p","pr","items","minWidth","flexGrow","locationIncludesPathname","profile_details","selectHeader","SettingsProfilePage","getProfiles","forceRefresh","getSilentlyUrl","queryParams","integrationsEnabled","at","ProfilePictureForm","EditProfileForm","SettingsAvailabilityPage","requestedAvailabilities","setRequestedAvailabilities","useBaseLanguage","availability","sectionTitle","sectionDescription","reqAvailabilities","isLoadingAvailabilities","error","requestLatestAvailabilities","AvailabilityForm","REACT_APP_BASE_API_URL","RelationshipsPage","isNewRelationshipLoading","setIsNewRelationshipLoading","relationshipId","navigationEventName","getRelationships","isLoadingRelationships","hasResultsRelationships","getHasResultsRelationships","isLoading","activeRelationships","useMemo","filter","relationship","isConcluded","timer","setTimeout","clearTimeout","currentRelationship","find","id","currentRelationshipArchived","shouldRenavigate","firstActiveRelationshipId","archivedRelationships","renderSidebar","_a","_b","position","zIndex","borderRight","divider","borderTop","overflowY","relationships_list","renderNoRelationships","_c","_d","_e","_f","_g","_h","_i","_j","_k","mt","ml","empty_state_illustration","no_relationships_state","mr","globals","programs","view_programs_button_label","explore_learning_hub","height","joinedAt","setJoinedAt","submittedTimeInCall","setSubmittedTimeInCall","setError","sessionId","videoRoomState","transitionSidebar","callCompositePage","getImage","loadingPicture","usePicture","containerName","video","errorVideo","useVideos","displayName","roomId","communicationUserId","sessionName","videoParticipants","reqVideoParticipants","isLoadingVideoParticipants","videoParticipant","session","relationshipProfiles","traineeProfiles","guideProfiles","videoTokens","errorVideoTokens","isErrorVideoTokens","useVideoTokens","token","errorsVideoToken","sanityBaseLanguageVideo","sessions","sessions_video","end_session_button_label","exitSessionLabel","toggle_chat_button_label","chatLabel","toggle_goals_button_label","goalsLabel","toggle_schedule_session_button_label","scheduleSessionLabel","credential","warn","callAdapterArgs","userId","locator","groupId","callAdapter","disposeAdapter","leftAt","Date","dispose","handlePageChange","state","page","onStateChange","window","addEventListener","offStateChange","removeEventListener","now","errors","VideoRoom","sessionTitle","onFetchUserImages","imageUrl","picture"],"sourceRoot":""}