{"version":3,"file":"static/js/app-fa3728c7_c04bdfcefe285939f928.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/apps/front-end/src/pages/OtpSurveyPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/PaginationDemo/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/Group/GuideGroupCreatePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/Group/GuideGroupPreviewPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/GuideRegistrationAboutYouPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/GuideRegistrationPendingPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/GuideRegistrationPreviewPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Guide/GuideRegistrationPublishedPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/ProgramRegistration/ProgramRegistrationAboutYouPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/ProgramRegistration/ProgramRegistrationGoalsPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/ProgramRegistration/ProgramRegistrationPreviewPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Trainee/Group/TraineeGroupJoinPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Trainee/Group/TraineeRegistrationChooseGroupPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Trainee/TraineeRegistrationAboutYouPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Trainee/TraineeRegistrationChooseGuidePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/Trainee/TraineeRegistrationChoosePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/utils/renderFields/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramRegistrationPage/utils/renderSkills/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramManageGuideMobilePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramManageGuidePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramsListPage/index.tsx"],"sourcesContent":["import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useSanityOrganization,\n useSanitySettings,\n} from '@guider-global/sanity-hooks';\nimport { TOTPSurvey } from '@guider-global/shared-types';\nimport { Avatar, Header, theme } from '@guider-global/ui';\nimport { ThemeProvider, useTheme } from '@mui/system';\nimport { PageWrapper } from 'components';\nimport { OTPSurveyContainer } from 'containers/Surveys/OTPSurveyContainer';\nimport { useOTPSurveys } from 'hooks/useOTPSurveys';\nimport { useEffect } from 'react';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { useAppDispatch } from 'store/hooks';\nimport { hideNavbar, showNavbar } from 'store/slices/appSlice';\nimport { deepMerge } from 'utils';\nimport { SurveyErrorView } from 'views';\n\nexport function OTPSurveyPage() {\n const { id } = useParams();\n const [searchParams] = useSearchParams();\n const userId = searchParams.get('userId');\n const localeCode = searchParams.get('locale') ?? 'en_GB';\n const organizationSlug = getSubDomain();\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n return () => {\n dispatch(showNavbar(true));\n };\n }, [dispatch]);\n\n const { getOrganization } = useSanityOrganization({\n organizationSlug,\n localeCode,\n });\n\n const { settings } = useSanitySettings({\n getSilently: true,\n localeCode,\n });\n\n const organization = getOrganization();\n\n const organizationTheme = useTheme();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n const { getResponse, reqOTPSurveys } = useOTPSurveys({\n waitForAuthentication: false,\n });\n\n useEffect(() => {\n reqOTPSurveys({\n url: `/otp/surveys/${id}?userId=${userId}`,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const result = getResponse();\n\n const [otpSurvey] = (result?.data?.data as TOTPSurvey[]) ?? [];\n\n if (!result) {\n return <>;\n }\n\n const errorSettings =\n result.data.code === 409\n ? settings?.guider_surveys?.survey_already_submitted_state\n : settings?.guider_surveys?.survey_not_found_state;\n\n return (\n \n \n }\n />\n \n {result.data.status === 'error' ||\n otpSurvey.organizationSlug !== organizationSlug ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import { useGoals } from 'hooks';\nimport { LoadingOverlay } from 'components';\nimport { useAuth } from '@guider-global/auth-hooks';\nimport { Button, Stack, TextField, Text } from '@guider-global/ui';\nimport { useState } from 'react';\n\nexport const PaginationDemoPage: React.FC = () => {\n // Handle auth\n useAuth({});\n\n const {\n goals,\n isSuccessGoals,\n getMeta,\n getNextPage,\n getPreviousPage,\n getPage,\n getMore,\n hasMore,\n } = useGoals({\n getSilently: true,\n isPaginated: true,\n pageLimit: 2,\n });\n\n const [page, setPage] = useState(1);\n\n const isReady = isSuccessGoals();\n\n if (!isReady) return ;\n\n return (\n \n \n \n
{JSON.stringify(goals(), null, 2)}
\n \n
{JSON.stringify(getMeta(), null, 2)}
\n \n
{hasMore() ? 'true' : 'false'}
\n\n \n \n \n {\n groupCopy?.registration?.registration_guide\n ?.registration_guide_review_profile\n ?.registration_guide_review_profile_publish_profile_button_label\n }\n \n \n \n );\n};\n","// external\nimport { Box, Divider, Paper, Typography, useTheme } from '@mui/material';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport {\n getISOStringWithoutMilliseconds,\n getSubDomain,\n} from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { EProgramVariation, IMembership } from '@guider-global/shared-types';\nimport { LoadingButton } from '@mui/lab';\nimport { Asterisk, FormAutocomplete, PageCard, Skeleton } from 'components';\nimport {\n useCustomFields,\n useMemberships,\n useMixpanelEvents,\n useMobileMediaQuery,\n useSkills,\n useTrackEvent,\n} from 'hooks';\nimport {\n renderFields,\n renderSkills,\n} from 'pages/ProgramRegistrationPage/utils';\nimport React, { useEffect } from 'react';\nimport { Control, SubmitHandler, useForm } from 'react-hook-form';\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport { hideNavbar } from 'store/slices/appSlice';\nimport {\n IMembershipForm,\n selectMembershipGuideForm,\n setMembershipGuideForm,\n} from 'store/slices/formsSlice';\nimport { Stack } from '@mui/system';\n\nexport const GuideRegistrationAboutYouPage: React.FC = () => {\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n const { trackMixpanelEvent, trackScreenTime } = useMixpanelEvents();\n\n const { isLoadingMemberships, memberships } = useMemberships({});\n\n const { isLoadingSkills } = useSkills({ waitForAuthentication: true });\n\n const { isLoadingCustomFields } = useCustomFields({});\n\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n const membershipGuideForm = useAppSelector((state) =>\n selectMembershipGuideForm(state, programSlug),\n );\n\n const programMemberships: IMembership[] = memberships().filter(\n (membership) => membership.programSlug === programSlug,\n );\n\n const guideMembership: IMembership | undefined = programMemberships.find(\n (membership) => membership.role === 'guide',\n );\n\n useEffect(() => {\n if (guideMembership) {\n navigate(`/programs/${programSlug}/manage/guide`, { replace: true });\n }\n }, [guideMembership, navigate, programSlug]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid },\n } = useForm({\n mode: 'onChange',\n defaultValues: membershipGuideForm,\n });\n const typedControl = control as Control;\n\n const organizationSlug = getSubDomain();\n\n const { getOrganization } = useSanityOrganization({\n getSilently: true,\n organizationSlug: organizationSlug,\n localeCode: 'en_GB',\n });\n\n const organization = getOrganization();\n\n useTrackEvent({\n track: {\n eventKey: 'program-guide-registration-viewed',\n eventParams: {\n organization: { organizationSlug },\n program: {\n organizationSlug,\n programSlug,\n },\n },\n },\n });\n\n useEffect(() => {\n trackMixpanelEvent('Guide Program Registration - Viewed', {\n 'Date viewed': getISOStringWithoutMilliseconds(),\n 'Program ID': programSlug,\n });\n }, [trackMixpanelEvent, programSlug]);\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n }, [dispatch]);\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n useEffect(() => {\n if (!program) {\n navigate('./../');\n }\n }, [navigate, program]);\n\n if (!program) {\n return <>;\n }\n\n const isGoalsDisabled = program?.registration?.goals?.guide_disable_goals;\n const registrationQuestions = program?.registration?.registration_questions;\n const customGoalCategories =\n program.registration?.goals?.custom_goal_categories;\n const selectedGoalSource =\n customGoalCategories && customGoalCategories.length > 0\n ? customGoalCategories\n : organization?.goal_categories?.categories;\n\n // Get Sanity Goal Categories\n\n const goalCategories = selectedGoalSource?.map((goalCategory) => ({\n label: goalCategory.goal_category_name,\n value: goalCategory.goal_category_slug?.current,\n }));\n // Events\n const goalsValidation = (value: unknown) => {\n const valueLength = (value as string[]).length;\n if (valueLength < 1) return false;\n return true;\n };\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n const programVariation =\n programType?.program_type_text?.variations?.individual;\n\n const skillsConfig = program?.registration?.skills;\n const isSkillsEnabled = skillsConfig?.enable_skills_question;\n\n const onSubmit: SubmitHandler = async (data) => {\n dispatch(setMembershipGuideForm({ programSlug, data }));\n trackScreenTime('Guide Program Registration - About you Completed');\n navigate('./preview');\n };\n\n const renderForm = () =>\n program && (\n \n {isSkillsEnabled &&\n renderSkills({\n skillsConfig,\n typedControl,\n errors,\n pageName: 'GuideRegistrationAboutYouPage',\n role: 'guide',\n isGroupProgram,\n })}\n {!isGoalsDisabled && goalCategories && !isGroupProgram && (\n \n \n {isSkillsEnabled ? '2. ' : '1. '}\n {\n program.program_details?.program_type?.program_type_text\n .variations?.individual?.registration?.registration_guide\n ?.registration_guide_goals?.registration_guide_goals_title\n }\n \n \n \n {\n program.program_details?.program_type?.program_type_text\n .variations?.individual?.registration?.registration_guide\n ?.registration_guide_goals\n ?.registration_guide_goals_description\n }\n \n\n \n \n )}\n\n {renderFields({\n registrationQuestions,\n isSkillsEnabled,\n typedControl,\n errors,\n pageName: 'GuideRegistrationAboutYouPage',\n role: 'guide',\n isGroupProgram,\n isGoalsDisabled,\n })}\n \n \n {baseLanguage.globals?.common?.continue_button_label ?? 'Continue'}\n \n \n \n );\n\n return (\n \n \n {!isMobile && }\n {!program ? : renderForm()}\n \n );\n};\n","// external\nimport React, { useEffect } from 'react';\nimport { Box, Button, Paper, Typography, useTheme } from '@mui/material';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport PersonPinSharp from '@mui/icons-material/PersonPinSharp';\n\n// components\nimport { PageCard } from 'components';\n\n// internal\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useMobileMediaQuery } from 'hooks';\n\nexport const GuideRegistrationPendingPage: React.FC = () => {\n // React Router\n const navigate = useNavigate();\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n // Styling\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n // Programs\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n // Base Language\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n const isGuide = role === 'guide';\n\n useEffect(() => {\n if (!isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n if (!program || !role) {\n return <>;\n }\n\n const programType = program.program_details?.program_type;\n const programVariation =\n programType?.program_type_text?.variations?.individual?.registration\n ?.registration_guide;\n const membershipPending =\n programVariation?.registration_guide_membership_pending;\n\n return (\n \n \n \n {membershipPending?.actions_label}\n \n \n navigate('/dashboard')}\n sx={{ mr: { xs: 0, md: 3 } }}\n >\n {membershipPending?.dashboard_button_label}\n \n navigate('/learn')}\n >\n {baseLanguage.globals.common.explore_learning_hub}\n \n \n \n );\n};\n","// external\nimport { LoadingButton } from '@mui/lab';\nimport { Box, Button, Divider, Paper, Skeleton, useTheme } from '@mui/material';\nimport React, { useEffect } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// components\nimport { GuideRegistrationCard, PageCard } from 'components';\n\n// store\nimport { useAppSelector } from 'store/hooks';\nimport { selectMembershipGuideForm } from 'store/slices/formsSlice';\n\n// hooks\nimport {\n useCustomFields,\n useMemberships,\n useMixpanelEvents,\n useMobileMediaQuery,\n useProfiles,\n useSkills,\n useUsers,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n ISkill,\n} from '@guider-global/shared-types';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\n\nexport const GuideRegistrationPreviewPage: React.FC = () => {\n // Utils\n const organizationSlug = getSubDomain();\n\n // Styling\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n // React router\n const navigate = useNavigate();\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n // Internal hooks\n // Users\n const { users } = useUsers({ getSilently: false });\n const user = users().at(0);\n // Profiles\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profilePicture = profile?.picture;\n // Memberships\n const { isLoadingMemberships, reqMemberships } = useMemberships({});\n // Skills\n const { isLoadingSkills } = useSkills({});\n // Custom fields\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n // Programs\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n // Events\n const { trackMixpanelEvent, unionUserProperty } = useMixpanelEvents();\n\n // Redux\n const membershipGuideForm = useAppSelector((state) =>\n selectMembershipGuideForm(state, programSlug),\n );\n\n const isGuide = role === 'guide';\n\n useEffect(() => {\n if (!isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n if (!program || !role) {\n return <>;\n }\n\n const programTypeText =\n program?.program_details?.program_type?.program_type_text;\n const reviewProfile =\n programTypeText?.variations?.individual?.registration?.registration_guide\n ?.registration_guide_review_profile;\n const requiresApproval =\n program.registration?.guide_membership_approval ?? false;\n\n const publishProfile = async () => {\n let customFields: ICustomField[] = [];\n\n const customFieldsPostData: Partial[] = Object.entries(\n membershipGuideForm,\n )\n .filter(\n ([fieldKey]) =>\n fieldKey !== 'skills' && fieldKey !== 'goalCategorySlugs',\n )\n .map(([fieldKey, fieldValue]) => {\n const fieldType = program?.registration?.registration_questions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === fieldKey,\n )?.type;\n\n return {\n fieldSlug: fieldKey,\n organizationSlug,\n programSlug: programSlug,\n fieldType,\n value: fieldValue,\n profileId: profile.id,\n };\n });\n\n if (customFieldsPostData.length > 0) {\n const customFieldsResponse = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n Array.isArray(customFieldsResponse.data) &&\n (customFields = customFieldsResponse.data);\n }\n\n const customFieldIds: string[] | undefined = customFields.map(\n (customField) => customField.id,\n );\n\n const membershipData: Partial & {\n goalCategorySlugs: string[];\n skillSlugs: string[];\n } = {\n role: 'guide',\n organizationSlug,\n programSlug,\n profile: profile.id,\n isPublished: true,\n programFields: customFieldIds ?? [],\n skillSlugs: membershipGuideForm?.skills ?? [],\n requiresApproval,\n programVariationTypeSlug: EProgramVariation.Individual,\n goalCategorySlugs:\n (membershipGuideForm.goalCategorySlugs as string[]) ?? [],\n };\n\n await reqMemberships({\n method: 'POST',\n url: '/memberships',\n data: membershipData,\n });\n\n await reqMemberships({ url: '/memberships' });\n if (requiresApproval) {\n navigate('./../membership-pending');\n } else {\n navigate('./../published');\n }\n };\n\n const handlePublishProfileButtonClick = async () => {\n try {\n await publishProfile();\n trackMixpanelEvent('Guide Program Registration - Profile published', {\n 'Program type': programTypeText?.common?.verb,\n 'Program ID': programSlug,\n });\n unionUserProperty(\n 'Guide profiles',\n `${organizationSlug}-${programTypeText?.common?.verb}`,\n );\n } catch (err) {\n console.error(err);\n }\n };\n\n return (\n \n \n {!isMobile && }\n {profile ? (\n \n ) : (\n \n )}\n \n navigate('./../')}\n >\n {baseLanguage.globals.common.edit_profile_button_label}\n \n \n {\n reviewProfile?.registration_guide_review_profile_publish_profile_button_label\n }\n \n \n \n );\n};\n","// external\nimport React, { useEffect } from 'react';\nimport { Box, Button, Paper, Typography, useTheme } from '@mui/material';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';\n// components\nimport { PageCard } from 'components';\n\n// internal\nimport { useAppDispatch } from 'store/hooks';\nimport { hideConfetti, showConfetti } from 'store/slices/appSlice';\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useMobileMediaQuery } from 'hooks';\n\nexport const GuideRegistrationPublishedPage: React.FC = () => {\n const dispatch = useAppDispatch();\n const theme = useTheme();\n const navigate = useNavigate();\n const isMobile = useMobileMediaQuery();\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n useEffect(() => {\n dispatch(showConfetti(true));\n const timer = setTimeout(() => {\n dispatch(hideConfetti(true));\n }, 5000);\n return () => clearTimeout(timer);\n }, [dispatch]);\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const isGuide = role === 'guide';\n useEffect(() => {\n if (!isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n if (!program || !role) {\n return <>;\n }\n\n const programType = program.program_details?.program_type;\n const programVariation =\n programType?.program_type_text?.variations?.individual;\n\n return (\n \n \n \n {\n programVariation?.registration?.registration_guide\n ?.registration_guide_complete\n ?.registration_guide_complete_actions_label\n }\n \n \n navigate('/dashboard')}\n sx={{ mr: isMobile ? 0 : 3 }}\n >\n {\n programVariation?.registration?.registration_guide\n ?.registration_guide_complete\n ?.registration_guide_complete_dashboard_button_label\n }\n \n navigate('/learn')}\n >\n {baseLanguage.globals.common.explore_learning_hub}\n \n \n \n );\n};\n","// external\nimport { useParams } from 'react-router-dom';\n\n// internal\nimport React from 'react';\nimport {\n GuideGroupCreatePage,\n GuideRegistrationAboutYouPage,\n TraineeGroupJoinPage,\n TraineeRegistrationAboutYouPage,\n} from 'pages';\nimport { useSanityOrganizationPrograms } from '@guider-global/sanity-hooks';\n\nexport const ProgramRegistrationAboutYouPage: React.FC = () => {\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const programVariation = program?.program_details?.program_variation;\n const isGroupProgram = programVariation === 'group';\n const isGuide = role === 'guide';\n\n const GuideComponent = isGroupProgram\n ? GuideGroupCreatePage\n : GuideRegistrationAboutYouPage;\n\n const TraineeComponent = isGroupProgram\n ? TraineeGroupJoinPage\n : TraineeRegistrationAboutYouPage;\n\n return isGuide ? : ;\n};\n","import { Box, Divider, Paper, ThemeProvider, useTheme } from '@mui/material';\nimport React, { useEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { PageCard } from 'components';\nimport { useAppDispatch } from 'store/hooks';\nimport { useMemberships, useMobileMediaQuery } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { IMembership } from '@guider-global/shared-types';\nimport { Stack, StaticAlert, Text, theme } from '@guider-global/ui';\nimport { LoadingButton } from '@mui/lab';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport { deepMerge } from 'utils';\nimport GoalCategoriesView from 'views/Registration/GoalCategoriesView';\n\nexport const ProgramRegistrationGoalsPage: React.FC = () => {\n // Redux\n const dispatch = useAppDispatch();\n\n // React Router\n const navigate = useNavigate();\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n // Styling\n const organizationTheme = useTheme();\n const isMobile = useMobileMediaQuery();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n // Base Language\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n // Organization\n const subdomain = getSubDomain();\n const { getOrganization } = useSanityOrganization({\n organizationSlug: subdomain,\n localeCode: 'en_GB',\n });\n const organization = getOrganization();\n\n // Programs\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n // Programs - baseLanguage\n const programType = program?.program_details?.program_type?.program_type_text;\n const programRegistration = programType?.variations?.individual?.registration;\n const selectGoalLabel =\n program?.registration?.goals?.select_goals_custom_label ||\n baseLanguage.globals.goals.select_goals_label;\n const trainee_min_selected_goals =\n program?.registration?.goals?.trainee_min_selected_goals;\n const trainee_max_selected_goals =\n program?.registration?.goals?.trainee_max_selected_goals;\n\n // Internal state\n const [selectedGoalCategories, setSelectedGoalCategories] = useState<\n string[]\n >([]);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const [alert, setAlert] = useState(undefined);\n\n // - Memberships\n const { reqMemberships, memberships } = useMemberships({});\n\n useEffect(() => {\n if (!memberships().length) {\n reqMemberships({\n url: '/memberships',\n });\n }\n }, [reqMemberships, memberships]);\n\n const programMemberships = memberships().filter(\n (membership) => membership.programSlug === programSlug,\n );\n const membership = programMemberships.find(\n (membership) => membership.role === role,\n );\n\n useEffect(() => {\n if (!membership?.goalCategories) return;\n setSelectedGoalCategories(\n membership.goalCategories.map((goalCategory) => goalCategory.fieldSlug),\n );\n }, [membership]);\n\n const customGoalCategories =\n program?.registration?.goals?.custom_goal_categories;\n\n const selectedGoalSource =\n customGoalCategories && customGoalCategories.length > 0\n ? customGoalCategories\n : organization?.goal_categories?.categories;\n\n const goalCategories = selectedGoalSource.map((goalCategory) => ({\n label: goalCategory.goal_category_name,\n slug: goalCategory.goal_category_slug?.current,\n }));\n\n if (!program || !role || !goalCategories) {\n return null;\n }\n\n function handleGoalCategoriesToggle(goalCategoriesSlugs: string[]) {\n setSelectedGoalCategories(goalCategoriesSlugs);\n if (\n trainee_max_selected_goals &&\n selectedGoalCategories.length > trainee_max_selected_goals\n ) {\n setAlert(\n baseLanguage?.globals?.goals?.max_goals_validation_message ??\n `You've selected too many goals`,\n );\n } else {\n setAlert(undefined);\n }\n }\n\n async function handleGoalCategoriesUpdate() {\n if (!selectedGoalCategories || isLoading) {\n return;\n }\n setIsLoading(true);\n\n const data: Partial & { goalCategorySlugs: string[] } = {\n role: role,\n isPublished: true,\n programSlug,\n goalCategorySlugs: selectedGoalCategories,\n };\n\n const membershipsResult = await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${membership?.id}`,\n data,\n });\n await reqMemberships({\n url: `/memberships`,\n });\n\n if (membershipsResult.status === 'success') {\n navigate('../choose');\n } else {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: membershipsResult.errors?.at(0)?.message,\n timeout: 3000,\n }),\n );\n }\n setIsLoading(false);\n }\n\n const disableContinueButton =\n !!(\n trainee_min_selected_goals &&\n selectedGoalCategories.length < trainee_min_selected_goals\n ) ||\n !!(\n trainee_max_selected_goals &&\n selectedGoalCategories.length > trainee_max_selected_goals\n );\n\n return (\n \n \n {!isMobile && }\n \n \n \n \n {alert && (\n \n )}\n {goalCategories && (\n \n handleGoalCategoriesToggle(goalCategoriesSlugs)\n }\n buttonLabels={{\n more:\n baseLanguage?.globals?.common?.show_more_button_label ??\n 'Show more',\n less:\n baseLanguage?.globals?.common?.show_less_button_label ??\n 'Show less',\n }}\n />\n )}\n \n \n \n\n \n \n {baseLanguage.globals.common.continue_button_label}\n \n \n \n );\n};\n","// external\nimport { useParams } from 'react-router-dom';\n\n// internal\nimport { useSanityOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport { GuideGroupPreviewPage, GuideRegistrationPreviewPage } from 'pages';\nimport React from 'react';\n\nexport const ProgramRegistrationPreviewPage: React.FC = () => {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const programVariation = program?.program_details?.program_variation;\n const isGroupProgram = programVariation === 'group';\n\n return isGroupProgram ? (\n \n ) : (\n \n );\n};\n","// external\nimport { Box, Divider, Paper, useTheme } from '@mui/material';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Control, SubmitHandler, useForm } from 'react-hook-form';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n IProfile,\n ISkill,\n ProgramRegistrationSkills,\n} from '@guider-global/shared-types';\nimport { LoadingButton } from '@mui/lab';\nimport { PageCard, Skeleton } from 'components';\nimport { RegistrationLimitReachedModal } from 'modals';\n// Hooks\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n useCustomFields,\n useMatches,\n useMemberships,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n useSkills,\n useTrackEvent,\n} from 'hooks';\n\n// Store\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport { hideNavbar } from 'store/slices/appSlice';\nimport {\n IMembershipForm,\n selectMembershipTraineeForm,\n setMembershipTraineeForm,\n} from 'store/slices/formsSlice';\n// utils\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n renderFields,\n renderSkills,\n} from 'pages/ProgramRegistrationPage/utils';\nimport { areArraysEqual } from 'utils';\n\nexport const TraineeGroupJoinPage: React.FC = () => {\n const [isFormReady, setIsFormReady] = useState(false);\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n const organizationSlug = getSubDomain();\n\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profileId = profile.id;\n\n const { isLoadingMemberships, reqMemberships, memberships } = useMemberships(\n {},\n );\n\n const { relationships: getRelationships } = useRelationships({});\n const relationships = getRelationships();\n\n const { isLoadingSkills } = useSkills({});\n\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n const { reqMatches, isLoadingMatches } = useMatches({\n getSilently: false,\n });\n\n const membershipTraineeForm = useAppSelector((state) =>\n selectMembershipTraineeForm(state, programSlug),\n );\n\n useTrackEvent({\n track: {\n eventKey: 'program-trainee-registration-visited',\n eventParams: {\n organization: { organizationSlug },\n program: {\n organizationSlug,\n programSlug,\n },\n },\n },\n for: programSlug,\n });\n\n const programMemberships: IMembership[] = memberships().filter(\n (membership) => membership.programSlug === programSlug,\n );\n\n const traineeMembership: IMembership | undefined = programMemberships.find(\n (membership) => membership.role === 'trainee',\n );\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const skillsConfig = useMemo(\n () => program?.registration?.skills as ProgramRegistrationSkills,\n [program],\n );\n\n const skillsOptions = useMemo(\n () => skillsConfig?.options?.map((skill) => skill.id.current) ?? [],\n [skillsConfig],\n );\n\n const membershipProgramFields = useMemo(\n () => (traineeMembership?.programFields as ICustomField[]) ?? [],\n [traineeMembership],\n );\n\n const defaultFormFields = useMemo(() => {\n const programSkills =\n (traineeMembership?.skills as Partial[]) ?? [];\n\n return {\n ...(programSkills.length !== 0 && {\n skills: programSkills\n .map((skill) => skill.fieldSlug)\n .filter(\n (skillValue) => skillValue && skillsOptions.includes(skillValue),\n ),\n }),\n ...Object.fromEntries(\n membershipProgramFields.map((customField) => [\n customField.fieldSlug,\n customField.value,\n ]),\n ),\n };\n }, [membershipProgramFields, traineeMembership, skillsOptions]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid },\n reset,\n trigger,\n } = useForm({\n mode: 'onChange',\n defaultValues: membershipTraineeForm || defaultFormFields,\n });\n const typedControl: Control = control as unknown as Control;\n\n useEffect(() => {\n if (!isFormReady && Object.keys(defaultFormFields).length !== 0) {\n reset(defaultFormFields);\n\n setTimeout(() => {\n trigger();\n }, 1);\n\n setIsFormReady(true);\n }\n }, [isFormReady, defaultFormFields, reset, trigger]);\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n }, [dispatch]);\n\n const handleRegistrationLimitReachedModalAction = useCallback(() => {\n navigate('/relationships');\n }, [navigate]);\n\n if (!program) {\n return <>;\n }\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n const programTypeText = programType?.program_type_text;\n const programVariation = programTypeText?.variations?.individual;\n const programRelationshipLimits = program.relationships.relationship_limits;\n const isTraineeRelationshipLimitSet =\n programRelationshipLimits?.enable_trainee_relationship_limit;\n const traineeRelationshipLimit = isTraineeRelationshipLimitSet\n ? programRelationshipLimits?.trainee_relationship_limit\n : undefined;\n const programRegistrationTraineeGuideLimitModal =\n programTypeText?.variations?.individual?.registration?.registration_trainee\n ?.registration_trainee_guide_limit_modal;\n const programRelationships = relationships.filter((relationship) => {\n const relationshipTraineeProfileIds = (\n relationship.traineeProfiles as IProfile[]\n ).map((relationship) => relationship.id);\n const relationshipIncludesTrainee =\n relationshipTraineeProfileIds.includes(profileId);\n return (\n relationship.programSlug === programSlug &&\n !relationship.isConcluded &&\n relationshipIncludesTrainee\n );\n });\n\n const registrationQuestions =\n program?.registration?.registration_questions?.filter(\n (registrationQuestion) =>\n ['trainee', 'both'].includes(registrationQuestion.audience),\n );\n\n const showRegistrationLimitReachedModal =\n traineeRelationshipLimit !== undefined\n ? programRelationships.length >= traineeRelationshipLimit\n : false;\n\n const isSkillsEnabled = program?.registration?.skills?.enable_skills_question;\n\n const publishMembership = async (data: IMembershipForm) => {\n let customFields: ICustomField[] = [];\n\n const customFieldsPostData: Partial[] = Object.entries(data)\n .filter(([fieldKey]) => fieldKey !== 'skills')\n .map(([fieldKey, fieldValue]) => {\n const fieldType = program?.registration?.registration_questions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === fieldKey,\n )?.type;\n\n return {\n fieldSlug: fieldKey,\n organizationSlug: organizationSlug,\n programSlug: programSlug,\n fieldType,\n value: fieldValue,\n profileId,\n };\n });\n\n if (customFieldsPostData && customFieldsPostData.length !== 0) {\n const customFieldsResponse = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n Array.isArray(customFieldsResponse.data) &&\n (customFields = customFieldsResponse.data);\n }\n\n const customFieldIds: string[] | undefined = customFields.map(\n (customField) => customField.id,\n );\n\n const membershipData = {\n role: 'trainee' as 'trainee',\n organizationSlug,\n programSlug,\n profile: profileId,\n isPublished: true,\n programFields: customFieldIds ?? [],\n skillSlugs: data.skills ?? [],\n programVariationTypeSlug: EProgramVariation.Group,\n };\n\n await reqMemberships({\n method: 'POST',\n url: '/memberships',\n data: membershipData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqMatches({\n url: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n }),\n ]);\n\n navigate('./choose');\n };\n\n const updateMembership: SubmitHandler = async (data) => {\n let newCustomFieldIds: string[] = [];\n\n const { isPublished } = data;\n delete data.isPublished;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { skills, ...newCustomFields } = data;\n\n if (Object.keys(newCustomFields).length !== 0) {\n let customFieldsPostData: ICustomField[] = [];\n\n await Promise.all(\n Object.entries(newCustomFields).map(\n async ([newCustomFieldSlug, newCustomFieldValue]) => {\n const oldMembershipProgramField = membershipProgramFields.find(\n (membershipProgramField) =>\n membershipProgramField.fieldSlug === newCustomFieldSlug,\n );\n const oldValue = oldMembershipProgramField?.value;\n\n const isNew = !oldValue;\n\n if (!isNew) {\n let hasValueChanged = false;\n\n const fieldId = oldMembershipProgramField.id;\n const fieldType = oldMembershipProgramField.fieldType;\n\n const newValue = newCustomFieldValue;\n\n if (fieldType === 'multi-select') {\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n hasValueChanged = !areArraysEqual(newValue, oldValue);\n }\n } else {\n hasValueChanged = oldValue !== newValue;\n }\n\n if (!hasValueChanged) {\n return;\n }\n\n return await reqCustomFields({\n method: 'PATCH',\n url: `/customfields/${fieldId}`,\n data: {\n value: newValue,\n fieldType,\n },\n });\n } else {\n const currentRegistrationQuestion = registrationQuestions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === newCustomFieldSlug,\n );\n\n return customFieldsPostData.push({\n fieldSlug: newCustomFieldSlug,\n organizationSlug,\n fieldType: currentRegistrationQuestion?.type,\n value: newCustomFieldValue,\n profileId,\n programSlug,\n } as ICustomField);\n }\n },\n ),\n );\n\n if (customFieldsPostData?.length !== 0) {\n const { data: customFieldsResponseData } = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n if (!!customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n\n await reqCustomFields({ url: '/customfields' });\n }\n }\n\n const reqMembershipsData: Partial & { skillSlugs?: string[] } =\n {\n isPublished: !!isPublished,\n skillSlugs: data.skills,\n programSlug,\n ...(newCustomFieldIds && {\n programFields: [\n ...membershipProgramFields.map((field) => field.id),\n ...newCustomFieldIds,\n ],\n }),\n };\n\n await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${traineeMembership?.id}`,\n data: reqMembershipsData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqMatches({\n url: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n }),\n ]);\n\n navigate('./choose');\n };\n\n const onSubmit: SubmitHandler = async (data) => {\n dispatch(setMembershipTraineeForm({ programSlug, data }));\n\n if (traineeMembership) {\n await updateMembership(data);\n } else {\n await publishMembership(data);\n }\n };\n\n const renderForm = () =>\n program && (\n \n {isSkillsEnabled &&\n renderSkills({\n skillsConfig,\n typedControl,\n errors,\n pageName: 'TraineeRegistrationAboutYouPage',\n role: 'trainee',\n isGroupProgram,\n })}\n {renderFields({\n registrationQuestions,\n isSkillsEnabled,\n typedControl,\n errors,\n pageName: 'TraineeGroupJoinPage',\n role: 'trainee',\n isGroupProgram,\n })}\n \n \n {baseLanguage.globals?.common?.continue_button_label ?? 'Continue'}\n \n \n \n );\n\n return (\n \n \n \n {!isMobile && }\n {!program ? : renderForm()}\n \n );\n};\n","// external\nimport PersonSearchSharp from '@mui/icons-material/PersonSearchSharp';\nimport {\n Box,\n Button,\n CircularProgress,\n Divider,\n Fade,\n Paper,\n Typography,\n useTheme,\n} from '@mui/material';\nimport React, { useEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\n\n// components\nimport { GroupCard, PageCard } from 'components';\n\n// store\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport { selectMembershipTraineeForm } from 'store/slices/formsSlice';\n\n// hooks\nimport {\n useMatches,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n useTrackEvent,\n} from 'hooks';\n\n// types\nimport {\n ICustomField,\n IMatch,\n IMembership,\n IProfile,\n ISkill,\n} from '@guider-global/shared-types';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { showAppAlert, showConfetti, toggleModal } from 'store/slices/appSlice';\n\nexport const TraineeRegistrationChooseGroupPage: React.FC = () => {\n const dispatch = useAppDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const [loadingMessageIndex, setLoadingMessageIndex] = useState(0);\n const { getProfiles } = useProfiles({ waitForAuthentication: true });\n const [profile] = getProfiles();\n\n const { reqRelationships, isLoadingRelationships } = useRelationships({});\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n const navigate = useNavigate();\n\n const organizationSlug = getSubDomain();\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const membershipTraineeForm = useAppSelector((state) =>\n selectMembershipTraineeForm(state, programSlug),\n );\n\n useTrackEvent({\n track: {\n eventKey: 'programs-trainee-viewed-group-list',\n eventParams: {\n organization: { organizationSlug },\n program: { organizationSlug, programSlug, includeChooseGuideUrl: true },\n },\n },\n });\n\n const { isLoadingMatches, matches: getMatches } = useMatches({\n getSilentlyUrl: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n getSilently: true,\n });\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setIsLoading(false);\n }, 6000);\n return () => clearTimeout(timer);\n }, []);\n\n useEffect(() => {\n if (!isLoading) return;\n const timer = setTimeout(() => {\n loadingMessageIndex !== 3\n ? setLoadingMessageIndex(loadingMessageIndex + 1)\n : setLoadingMessageIndex(0);\n }, 3000);\n return () => clearTimeout(timer);\n }, [loadingMessageIndex, isLoading]);\n\n useEffect(() => {\n if (!program || !role) {\n navigate('./..');\n }\n }, [navigate, program, role]);\n\n const isGuide = role === 'guide';\n useEffect(() => {\n if (isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n const isMembershipTraineeFormEmpty =\n !membershipTraineeForm || Object.keys(membershipTraineeForm).length === 0;\n useEffect(() => {\n if (isMembershipTraineeFormEmpty) {\n navigate('./..');\n }\n }, [isMembershipTraineeFormEmpty, navigate]);\n\n if (!program || !role) {\n return <>;\n }\n\n const maxSpots = program.relationships.group_settings?.max_trainees ?? 0;\n const matches = getMatches();\n const filteredMatches = matches.filter((match) => {\n const traineeProfiles = match.relationship?.traineeProfiles ?? [];\n const spotsOccupied = traineeProfiles.length;\n const spotsLeft = maxSpots - spotsOccupied;\n\n return spotsLeft > 0;\n });\n\n if (isGuide) {\n return <>;\n }\n\n if (isMembershipTraineeFormEmpty) {\n return <>;\n }\n\n const programType = program.program_details?.program_type;\n const programVariation = programType?.program_type_text?.variations?.group;\n\n const registrationLoadingMessages =\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_choose_a_guide\n ?.registration_trainee_choose_a_guide_loading_state_messages;\n const loadingMessages = registrationLoadingMessages\n ? Object.values(registrationLoadingMessages)\n : [];\n\n const renderLoadingMessage = loadingMessages.map((loadingMessage, index) => {\n return (\n \n \n {loadingMessage}\n \n \n );\n });\n\n const renderLoading = () => {\n return (\n \n \n \n {renderLoadingMessage}\n \n \n );\n };\n\n const renderNoMatches = () => {\n return (\n <>\n \n \n {\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_no_matches_found\n ?.registration_trainee_no_matches_actions_label\n }\n \n \n navigate('./../')}\n variant=\"contained\"\n color=\"info\"\n size=\"large\"\n fullWidth={isMobile}\n sx={{\n mr: isMobile ? 0 : 3,\n mb: isMobile ? 2 : 0,\n width: '230px',\n fontWeight: '600',\n maxWidth: '100%',\n }}\n >\n {baseLanguage.globals.common.edit_profile_button_label}\n \n navigate('/learn')}\n variant=\"outlined\"\n color=\"info\"\n size=\"large\"\n fullWidth={isMobile}\n sx={{\n width: '230px',\n fontWeight: '600',\n maxWidth: '100%',\n }}\n >\n {baseLanguage.globals.common.explore_learning_hub}\n \n \n \n );\n };\n\n const joinGroup = async (relationshipId: string) => {\n const relationshipResponse = await reqRelationships({\n method: 'PATCH',\n url: `/relationships/${relationshipId}`,\n // TODO fix Types\n // @ts-ignore\n data: {\n traineeProfiles: [profile.id],\n },\n });\n\n if (relationshipResponse.status === 'error') {\n return dispatch(\n showAppAlert({\n severity: 'error',\n message: relationshipResponse.errors?.[0].message,\n timeout: 5000,\n }),\n );\n }\n\n const relationshipData = relationshipResponse?.data;\n const relationship = relationshipData?.[0];\n\n if (!relationship) {\n return;\n }\n\n await reqRelationships({ url: '/relationships' });\n\n navigate(`/relationships/${relationship.id}`);\n dispatch(showConfetti(true));\n dispatch(toggleModal('traineeModal'));\n };\n\n const renderGroup = (match: IMatch, index: number) => {\n const membership: Partial =\n match.membership as Partial;\n\n const traineeProfiles: string[] | undefined =\n match.relationship?.traineeProfiles;\n\n const relationshipId = match.relationship?.id;\n\n if (!relationshipId) {\n console.error('relationshipId missing');\n return;\n }\n\n const guideProfile: Partial =\n membership.profile as Partial;\n\n if (!guideProfile?.id) {\n return;\n }\n const skills: Partial[] = membership.skills as Partial[];\n const skillsSlugs = skills.map((skill) => skill.fieldSlug ?? '');\n\n const programFields: Partial[] =\n membership.programFields as Partial[];\n\n const programFieldsFormatted = Object.fromEntries(\n programFields.map((programField) => [\n programField.fieldSlug,\n programField.value,\n ]),\n );\n\n return (\n joinGroup(relationshipId)}\n blurred={index !== 0}\n isLoading={isLoadingRelationships()}\n />\n );\n };\n\n const renderFoundGuide = () => {\n const renderGroups = () =>\n filteredMatches.map((match, index) => renderGroup(match, index));\n\n return (\n <>\n \n \n {renderGroups()}\n \n );\n };\n\n const renderContent = () => {\n if (filteredMatches.length === 0) {\n return renderNoMatches();\n }\n\n return renderFoundGuide();\n };\n\n return (\n \n {isLoading || isLoadingMatches() ? renderLoading() : renderContent()}\n \n );\n};\n","// external\nimport {\n Box,\n Divider,\n Modal,\n Paper,\n Typography,\n useTheme,\n} from '@mui/material';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { Control, SubmitHandler, useForm } from 'react-hook-form';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\n\n// internal\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n ISkill,\n ProgramRegistrationSkills,\n} from '@guider-global/shared-types';\nimport { LoadingButton } from '@mui/lab';\nimport { ModalCard, PageCard } from 'components';\n// Hooks\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n useCustomFields,\n useMatches,\n useMemberships,\n useMixpanelEvents,\n useMobileMediaQuery,\n useProfiles,\n useTrackEvent,\n} from 'hooks';\n\n// Store\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport { hideNavbar } from 'store/slices/appSlice';\nimport {\n IMembershipForm,\n selectMembershipTraineeForm,\n setMembershipTraineeForm,\n} from 'store/slices/formsSlice';\n// utils\nimport {\n getISOStringWithoutMilliseconds,\n getSubDomain,\n} from '@guider-global/front-end-utils';\nimport {\n renderFields,\n renderSkills,\n} from 'pages/ProgramRegistrationPage/utils';\nimport { areArraysEqual } from 'utils';\n\nexport const TraineeRegistrationAboutYouPage: React.FC = () => {\n const [isFormReady, setIsFormReady] = useState(false);\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n const organizationSlug = getSubDomain();\n const { trackMixpanelEvent, trackScreenTime, unionUserProperty } =\n useMixpanelEvents();\n\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profileId = profile.id;\n\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const { isLoadingMemberships, reqMemberships, memberships } = useMemberships(\n {},\n );\n\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n\n const { reqMatches, isLoadingMatches } = useMatches({\n getSilently: false,\n });\n\n const membershipTraineeForm = useAppSelector((state) =>\n selectMembershipTraineeForm(state, programSlug),\n );\n\n const disableTraineeRegistration =\n program?.program_details?.trainee_registration_rules\n ?.disable_trainee_registration ?? false;\n\n useTrackEvent({\n track: {\n eventKey: 'program-trainee-registration-visited',\n eventParams: {\n organization: { organizationSlug },\n program: {\n organizationSlug,\n programSlug,\n },\n },\n },\n for: programSlug,\n if: !disableTraineeRegistration,\n });\n\n useEffect(() => {\n if (!disableTraineeRegistration) {\n trackMixpanelEvent('Trainee Program Registration - Viewed', {\n 'Date viewed': getISOStringWithoutMilliseconds(),\n 'Program ID': programSlug,\n });\n }\n }, [trackMixpanelEvent, programSlug, disableTraineeRegistration]);\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n }, [dispatch]);\n\n const programMemberships = memberships().filter(\n (membership) => membership.programSlug === programSlug,\n );\n\n const traineeMembership = programMemberships.find(\n (membership) => membership.role === 'trainee',\n );\n\n const skillsConfig = useMemo(\n () => program?.registration?.skills as ProgramRegistrationSkills,\n [program],\n );\n\n const skillsOptions = useMemo(\n () => skillsConfig?.options?.map((skill) => skill.id.current) ?? [],\n [skillsConfig],\n );\n\n const membershipProgramFields = useMemo(\n () => (traineeMembership?.programFields as ICustomField[]) ?? [],\n [traineeMembership],\n );\n\n const defaultFormFields = useMemo(() => {\n const programSkills =\n (traineeMembership?.skills as Partial[]) ?? [];\n\n return {\n ...(programSkills.length !== 0 && {\n skills: programSkills\n .map((skill) => skill.fieldSlug)\n .filter(\n (skillValue) => skillValue && skillsOptions.includes(skillValue),\n ),\n }),\n ...Object.fromEntries(\n membershipProgramFields.map((customField) => [\n customField.fieldSlug,\n customField.value,\n ]),\n ),\n };\n }, [membershipProgramFields, traineeMembership, skillsOptions]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid },\n reset,\n trigger,\n } = useForm({\n mode: 'onChange',\n defaultValues: membershipTraineeForm || defaultFormFields,\n });\n const typedControl = control as Control;\n\n useEffect(() => {\n if (!isFormReady && Object.keys(defaultFormFields).length !== 0) {\n reset(defaultFormFields);\n\n setTimeout(() => {\n trigger();\n }, 1);\n\n setIsFormReady(true);\n }\n }, [isFormReady, defaultFormFields, reset, trigger]);\n\n if (!program) {\n return <>;\n }\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n const programTypeText = programType?.program_type_text;\n const programVariation = programTypeText?.variations?.individual;\n\n const registrationQuestions =\n program.registration?.registration_questions?.filter(\n (registrationQuestion) =>\n ['trainee', 'both'].includes(registrationQuestion.audience),\n );\n\n const isSkillsEnabled = program.registration?.skills?.enable_skills_question;\n\n const publishMembership = async (data: IMembershipForm) => {\n let customFields: ICustomField[] = [];\n\n const customFieldsPostData: Partial[] = Object.entries(data)\n .filter(([fieldKey]) => fieldKey !== 'skills')\n .map(([fieldKey, fieldValue]) => {\n const fieldType = program.registration?.registration_questions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === fieldKey,\n )?.type;\n\n return {\n fieldSlug: fieldKey,\n organizationSlug: organizationSlug,\n programSlug: programSlug,\n fieldType,\n value: fieldValue,\n profileId,\n };\n });\n\n if (customFieldsPostData && customFieldsPostData.length !== 0) {\n const customFieldsResponse = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n Array.isArray(customFieldsResponse.data) &&\n (customFields = customFieldsResponse.data);\n }\n\n const customFieldIds: string[] | undefined = customFields.map(\n (customField) => customField.id,\n );\n\n const membershipData: Partial & { skillSlugs: string[] } = {\n role: 'trainee',\n organizationSlug,\n programSlug,\n profile: profileId,\n isPublished: true,\n programFields: customFieldIds ?? [],\n skillSlugs: data.skills ?? [],\n programVariationTypeSlug: EProgramVariation.Individual,\n };\n\n await reqMemberships({\n method: 'POST',\n url: '/memberships',\n data: membershipData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqMatches({\n url: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n }),\n ]);\n\n navigate('./goals');\n };\n\n const updateMembership: SubmitHandler = async (data) => {\n let newCustomFieldIds: string[] = [];\n\n const { isPublished } = data;\n delete data.isPublished;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { skills, ...newCustomFields } = data;\n\n if (Object.keys(newCustomFields).length !== 0) {\n let customFieldsPostData: ICustomField[] = [];\n\n await Promise.all(\n Object.entries(newCustomFields).map(\n async ([newCustomFieldSlug, newCustomFieldValue]) => {\n const oldMembershipProgramField = membershipProgramFields.find(\n (membershipProgramField) =>\n membershipProgramField.fieldSlug === newCustomFieldSlug,\n );\n const oldValue = oldMembershipProgramField?.value;\n\n const isNew = !oldValue;\n\n if (!isNew) {\n let hasValueChanged = false;\n\n const fieldId = oldMembershipProgramField.id;\n const fieldType = oldMembershipProgramField.fieldType;\n\n const newValue = newCustomFieldValue;\n\n if (fieldType === 'multi-select') {\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n hasValueChanged = !areArraysEqual(newValue, oldValue);\n }\n } else {\n hasValueChanged = oldValue !== newValue;\n }\n\n if (!hasValueChanged) {\n return;\n }\n\n return await reqCustomFields({\n method: 'PATCH',\n url: `/customfields/${fieldId}`,\n data: {\n value: newValue,\n fieldType,\n },\n });\n } else {\n const currentRegistrationQuestion = registrationQuestions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === newCustomFieldSlug,\n );\n\n return customFieldsPostData.push({\n fieldSlug: newCustomFieldSlug,\n organizationSlug,\n fieldType: currentRegistrationQuestion?.type,\n value: newCustomFieldValue,\n profileId,\n programSlug,\n } as ICustomField);\n }\n },\n ),\n );\n\n if (customFieldsPostData?.length !== 0) {\n const { data: customFieldsResponseData } = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n if (customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n\n await reqCustomFields({ url: '/customfields' });\n }\n }\n console.log(skills);\n const membershipData: Partial & { skillSlugs: string[] } = {\n isPublished: !!isPublished,\n programSlug,\n skillSlugs: skills ?? [],\n ...(newCustomFieldIds && {\n programFields: [\n ...membershipProgramFields.map((field) => field.id),\n ...newCustomFieldIds,\n ],\n }),\n };\n\n await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${traineeMembership?.id}`,\n data: membershipData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqMatches({\n url: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n }),\n ]);\n\n navigate('./goals');\n };\n\n const onSubmit: SubmitHandler = async (data) => {\n try {\n dispatch(setMembershipTraineeForm({ programSlug, data }));\n\n if (traineeMembership) {\n await updateMembership(data);\n } else {\n await publishMembership(data);\n trackScreenTime('Trainee Program Registration - About you Completed', {\n 'Program type': programTypeText?.common?.verb,\n 'Program ID': programSlug,\n });\n unionUserProperty(\n 'Trainee profiles',\n `${organizationSlug}-${programTypeText?.common?.verb}`,\n );\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n return (\n <>\n \n \n {!isMobile && }\n \n {isSkillsEnabled &&\n renderSkills({\n skillsConfig,\n typedControl,\n errors,\n pageName: 'TraineeRegistrationAboutYouPage',\n role: 'trainee',\n isGroupProgram,\n })}\n {renderFields({\n registrationQuestions,\n isSkillsEnabled,\n typedControl,\n errors,\n pageName: 'TraineeRegistrationAboutYouPage',\n role: 'trainee',\n isGroupProgram,\n })}\n \n \n {baseLanguage.globals?.common?.continue_button_label ??\n 'Continue'}\n \n \n \n \n\n \n \n \n {program.program_details?.trainee_registration_rules\n ?.modal_title ?? ''}\n \n }\n headerLineColor=\"warning\"\n actions={[\n {\n label:\n program.program_details?.trainee_registration_rules\n ?.return_to_dashboard_button_label ?? '',\n action: () => navigate('/dashboard'),\n variant: 'contained',\n color: 'info',\n },\n ]}\n >\n \n {program.program_details?.trainee_registration_rules\n ?.modal_description ?? ''}\n \n \n \n \n );\n};\n","// external\nimport PersonSearchSharp from '@mui/icons-material/PersonSearchSharp';\nimport {\n Avatar,\n Box,\n Button,\n Card,\n CircularProgress,\n Fade,\n Modal,\n ThemeProvider,\n Typography,\n useTheme,\n} from '@mui/material';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport { deepMerge, hexToRGB } from 'utils';\n\n// components\nimport { AvatarUser, MDIcons, PageCard, SanityIcon } from 'components';\n\n// store\nimport { useAppDispatch, useAppSelector } from 'store/hooks';\nimport {\n hideConfetti,\n showAppAlert,\n showConfetti,\n} from 'store/slices/appSlice';\nimport {\n selectMembershipTraineeForm,\n setMembershipTraineeForm,\n} from 'store/slices/formsSlice';\n\n// hooks\nimport {\n useGoals,\n useMatches,\n useMemberships,\n useMixpanelEvents,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n useTrackEvent,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMatch,\n IMatchMembership,\n IMatchedSkill,\n IMembership,\n IProfile,\n} from '@guider-global/shared-types';\n\nimport { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport {\n getFormattedProgramFields,\n getSubDomain,\n getVisibleProfileFields,\n} from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useOrganization,\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n useSanitySettings,\n} from '@guider-global/sanity-hooks';\nimport {\n IProfileViewField,\n OrganizationProfileView,\n theme,\n} from '@guider-global/ui';\nimport { interpolate } from 'functions';\nimport { RegistrationLimitReachedModal } from 'modals';\n\nimport countries from 'i18n-iso-countries';\n\nexport const TraineeRegistrationChooseGuidePage: React.FC = () => {\n const organizationTheme = useTheme();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n const dispatch = useAppDispatch();\n const [relationshipId, setRelationshipId] = useState('');\n const [selectedIndex, setSelectedIndex] = useState();\n const [isLoading, setIsLoading] = useState(true);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [chosenGuide, setChosenGuide] = useState<{\n userPicture?: string;\n profile?: Partial;\n }>();\n const [loadingMessageIndex, setLoadingMessageIndex] = useState(0);\n\n const { reqMemberships } = useMemberships({});\n const { getProfiles } = useProfiles({ waitForAuthentication: true });\n const { reqGoals } = useGoals({ waitForAuthentication: true });\n const [profile] = getProfiles();\n const profileId = profile?.id ?? '';\n\n const { settings } = useSanitySettings({});\n\n const isMobile = useMobileMediaQuery();\n\n // base lanuage\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n const navigate = useNavigate();\n const { trackScreenTime } = useMixpanelEvents();\n const organizationSlug = getSubDomain();\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const { getProfileImage } = useProfileImage();\n\n countries.registerLocale(require(`i18n-iso-countries/langs/en.json`));\n\n const membershipTraineeForm = useAppSelector((state) =>\n selectMembershipTraineeForm(state, programSlug),\n );\n const membershipTraineeGoals = membershipTraineeForm?.goals || [];\n\n useTrackEvent({\n track: {\n eventKey: 'program-trainee-viewed-guide-list',\n eventParams: {\n organization: { organizationSlug },\n program: { organizationSlug, programSlug, includeChooseGuideUrl: true },\n },\n },\n });\n\n const { isLoadingMatches, matches: getMatches } = useMatches({\n getSilentlyUrl: `/matches?organizationSlug=${organizationSlug}&programSlug=${programSlug}`,\n getSilently: true,\n });\n const matches = getMatches();\n\n const {\n relationships: getRelationships,\n isLoadingRelationships,\n reqRelationships,\n } = useRelationships({});\n const relationships = getRelationships();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const { organization } = useOrganization({ organizationSlug });\n\n const handleRegistrationLimitReachedModalAction = useCallback(() => {\n navigate('/relationships');\n }, [navigate]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setIsLoading(false);\n }, 6000);\n return () => clearTimeout(timer);\n }, []);\n\n useEffect(() => {\n if (!isLoading) return;\n const timer = setTimeout(() => {\n loadingMessageIndex !== 3\n ? setLoadingMessageIndex(loadingMessageIndex + 1)\n : setLoadingMessageIndex(0);\n }, 3000);\n return () => clearTimeout(timer);\n }, [loadingMessageIndex, isLoading]);\n\n const programType = program?.program_details?.program_type;\n\n useEffect(() => {\n if (matches.length === 0) {\n trackScreenTime('Trainee Program Registration - No guides found', {\n 'Program type': programType?.program_type_text.common?.verb,\n 'Program ID': programSlug,\n });\n } else {\n trackScreenTime('Trainee Program Registration - Select a guide', {\n 'Program type': programType?.program_type_text.common?.verb,\n 'Program ID': programSlug,\n 'Count of available guides': matches.length,\n });\n }\n }, [\n matches,\n programSlug,\n programType?.program_type_text.common?.verb,\n trackScreenTime,\n ]);\n\n const isProgramAvailable = program != null;\n const isRoleAvailable = role != null;\n useEffect(() => {\n if (!isProgramAvailable || !isRoleAvailable) {\n navigate('./..');\n }\n }, [isProgramAvailable, isRoleAvailable, navigate]);\n\n const isGuide = role === 'guide';\n useEffect(() => {\n if (isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n const isMembershipTraineeFormEmpty =\n !membershipTraineeForm || Object.keys(membershipTraineeForm).length === 0;\n useEffect(() => {\n if (isMembershipTraineeFormEmpty) {\n navigate('./..');\n }\n }, [isMembershipTraineeFormEmpty, navigate]);\n\n if (!program) {\n return <>;\n }\n\n const programTypeText = programType?.program_type_text;\n const programVariation = programTypeText?.variations?.individual;\n const programRelationshipLimits = program.relationships.relationship_limits;\n\n // Relationship limits\n\n const isTraineeRelationshipLimitSet =\n programRelationshipLimits?.enable_trainee_relationship_limit ?? false;\n\n const isGuideRelationshipLimitSet =\n programRelationshipLimits?.enable_guide_relationship_limit ?? false;\n\n const traineeRelationshipLimit = isTraineeRelationshipLimitSet\n ? programRelationshipLimits?.trainee_relationship_limit\n : undefined;\n\n const guideRelationshipLimit = isGuideRelationshipLimitSet\n ? programRelationshipLimits?.guide_relationship_limit\n : undefined;\n\n const programRegistrationTraineeGuideLimitModal =\n programTypeText?.variations?.individual?.registration?.registration_trainee\n ?.registration_trainee_guide_limit_modal;\n\n const programRelationships = relationships.filter((relationship) => {\n const relationshipTraineeProfileIds = (\n relationship.traineeProfiles as IProfile[]\n ).map((relationship) => relationship.id);\n\n const relationshipIncludesTrainee =\n relationshipTraineeProfileIds.includes(profileId);\n return (\n relationship.programSlug === programSlug &&\n !relationship.isConcluded &&\n relationshipIncludesTrainee\n );\n });\n\n const showRegistrationLimitReachedModal =\n traineeRelationshipLimit !== undefined\n ? programRelationships.length >= traineeRelationshipLimit\n : false;\n\n const isLimitModalOpen =\n !isLoadingRelationships() &&\n !isLoadingRelationships() &&\n !isModalOpen &&\n showRegistrationLimitReachedModal;\n\n const registrationLoadingMessages =\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_choose_a_guide\n ?.registration_trainee_choose_a_guide_loading_state_messages;\n const loadingMessages = registrationLoadingMessages\n ? Object.values(registrationLoadingMessages)\n : [];\n\n const handleLimitReachedAlert = (message: string) => {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: message,\n timeout: 5000,\n }),\n );\n };\n\n const renderLoadingMessage = loadingMessages.map((loadingMessage, index) => {\n return (\n \n \n {loadingMessage}\n \n \n );\n });\n\n const renderLoading = () => {\n return (\n \n \n \n {renderLoadingMessage}\n \n \n );\n };\n\n const renderNoMatches = () => {\n return (\n <>\n \n \n {\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_no_matches_found\n ?.registration_trainee_no_matches_actions_label\n }\n \n \n navigate('./../')}\n variant=\"contained\"\n color=\"info\"\n size=\"large\"\n fullWidth={isMobile}\n sx={{\n mr: isMobile ? 0 : 3,\n mb: isMobile ? 2 : 0,\n width: '230px',\n fontWeight: '600',\n maxWidth: '100%',\n }}\n >\n {baseLanguage.globals.common.edit_profile_button_label}\n \n navigate('/learn')}\n variant=\"outlined\"\n color=\"info\"\n size=\"large\"\n fullWidth={isMobile}\n sx={{\n width: '230px',\n fontWeight: '600',\n maxWidth: '100%',\n }}\n >\n {baseLanguage.globals.common.explore_learning_hub}\n \n \n \n );\n };\n\n const connectWithGuide = async (match?: Partial) => {\n const guideProfile = match?.profile as Partial;\n if (!guideProfile?.id) {\n console.error('No `guideProfile` provided.');\n return;\n }\n\n setChosenGuide({\n userPicture: match?.userPicture,\n profile: guideProfile,\n });\n\n const relationshipsResponse = await reqRelationships({\n method: 'POST',\n url: '/relationships',\n // TODO fix types\n // @ts-ignore\n data: {\n guideProfiles: [guideProfile.id],\n traineeProfiles: [profileId],\n programSlug,\n organizationSlug,\n programTypeSlug: programType?.metadata?.id?.current,\n programVariationTypeSlug: EProgramVariation.Individual,\n profileId,\n goals: membershipTraineeGoals,\n },\n });\n\n relationshipsResponse.errors?.forEach((error) => {\n if (error.message?.includes('relationship limit reached')) {\n handleLimitReachedAlert(error.message);\n } else {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: error.message,\n timeout: 5000,\n }),\n );\n }\n });\n\n const relationshipData = relationshipsResponse?.data;\n const relationship = relationshipData && relationshipData[0];\n\n if (relationship) {\n dispatch(setMembershipTraineeForm({}));\n const relationshipId = relationship?.id || '';\n setRelationshipId(relationshipId);\n dispatch(showConfetti(true));\n setIsModalOpen(true);\n }\n\n await Promise.all([\n reqRelationships({ url: '/relationships' }),\n reqMemberships({ url: '/memberships' }),\n reqGoals({ url: '/goals' }),\n ]);\n };\n\n const renderGuide = (match: IMatch, index: number) => {\n const membership: Partial =\n match.membership as Partial;\n\n const guideProfile: Partial =\n membership.profile as Partial;\n\n if (!guideProfile?.id) {\n return;\n }\n\n const skills = membership.skills as IMatchedSkill[];\n\n const skillsConfig = program?.registration?.skills;\n\n const customFields = getFormattedProgramFields(\n match.membership as IMembership,\n program,\n );\n\n let spotsLeft: number | undefined;\n if (guideRelationshipLimit) {\n spotsLeft = guideRelationshipLimit - (match.relationshipCount ?? 0);\n }\n const image = getProfileImage({\n profilePicture: guideProfile.picture,\n userPicture: membership.userPicture,\n });\n\n const {\n matched_on_skills_label,\n no_reviews_yet_label,\n reviews_singular,\n reviews_plural,\n reviews_button_label,\n spot_singular,\n spots_left_label,\n spots_plural,\n } = baseLanguage.profile_card;\n\n const organizationFieldsToShow = getVisibleProfileFields(\n organization?.profile_fields,\n guideProfile.organizationFields as ICustomField[],\n );\n\n const fields = organizationFieldsToShow?.map((field) => {\n return {\n icon: ,\n label: field?.label?.toString() ?? '',\n };\n });\n\n const location = `${guideProfile.townOrCity ?? ''}${\n guideProfile.townOrCity && guideProfile.country ? ', ' : ''\n }${\n guideProfile.country ? countries.getName(guideProfile.country, 'en') : ''\n }`;\n\n return (\n {\n const label =\n skillsConfig?.options?.find(\n (option) => option.id.current === skill.fieldSlug,\n )?.label ?? undefined;\n\n return {\n key: `${label}-${index}`,\n isMatched: skill.matched ?? false,\n value: label ?? '',\n };\n }),\n }}\n linkedInUrl={guideProfile.linkedInUrl}\n viewLinkedInLabel={\n baseLanguage.programs.program_registration\n .linkedin_profile_button_label\n }\n buttons={[\n {\n label: interpolate(\n programTypeText?.variations?.individual?.registration\n ?.registration_trainee?.registration_trainee_choose_a_guide\n ?.registration_trainee_choose_a_guide_choose_guide_button_label ??\n '',\n { name: guideProfile.firstName ?? '' },\n ),\n key: '1',\n variant: 'contained',\n color: 'info',\n sx: { px: 3 },\n loading: isLoadingRelationships() && index === selectedIndex,\n disabled: isLoadingRelationships() && index !== selectedIndex,\n onClick: async () => {\n setSelectedIndex(index);\n await connectWithGuide(membership);\n setSelectedIndex(undefined);\n },\n },\n ]}\n bottomText={\n spotsLeft &&\n guideRelationshipLimit &&\n interpolate(spots_left_label, {\n guideSingular: programTypeText?.common?.guide?.singular ?? '',\n spotNumber: spotsLeft.toString(),\n spot: spotsLeft === 1 ? spot_singular : spots_plural,\n })\n }\n customFields={customFields as IProfileViewField[]}\n />\n );\n };\n\n const renderFoundGuide = () => {\n const renderGuides = () =>\n matches.map((match, index) => renderGuide(match, index));\n\n return (\n <>\n \n \n {renderGuides()}\n \n \n );\n };\n\n const renderContent = () => {\n if (matches.length === 0) {\n return renderNoMatches();\n }\n\n return renderFoundGuide();\n };\n\n const handleViewRelationship = () => {\n dispatch(hideConfetti(true));\n setIsModalOpen(false);\n trackScreenTime('Trainee Program Registration - View relationship');\n navigate(`/relationships/${relationshipId}`);\n };\n\n if (!program || !role) {\n return <>;\n }\n if (isGuide) {\n return <>;\n }\n if (isMembershipTraineeFormEmpty) {\n return <>;\n }\n\n const image = getProfileImage({\n profilePicture: chosenGuide?.profile?.picture,\n userPicture: chosenGuide?.userPicture,\n });\n\n return (\n <>\n {isLoading || isLoadingMatches() ? renderLoading() : renderContent()}\n \n \n \n \n \n \n {\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_relationship_created_successfully\n ?.registration_trainee_relationship_created_successfully_title\n }\n \n \n {interpolate(\n programVariation?.registration?.registration_trainee\n ?.registration_trainee_relationship_created_successfully\n ?.registration_trainee_relationship_created_successfully_description ??\n '',\n {\n firstName: chosenGuide?.profile?.firstName || '',\n lastName: chosenGuide?.profile?.lastName || '',\n },\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {baseLanguage.globals.relationships.view_relationship}\n \n \n \n \n \n );\n};\n","// external\nimport { useParams } from 'react-router-dom';\n\n// internal\nimport { useSanityOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport {\n TraineeRegistrationChooseGroupPage,\n TraineeRegistrationChooseGuidePage,\n} from 'pages';\nimport React from 'react';\n\nexport const TraineeRegistrationChoosePage: React.FC = () => {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const programVariation = program?.program_details?.program_variation;\n const isGroupProgram = programVariation === 'group';\n\n return isGroupProgram ? (\n \n ) : (\n \n );\n};\n","// external\nimport { useAuth } from '@guider-global/auth-hooks';\nimport ArrowBack from '@mui/icons-material/ArrowBack';\nimport {\n AppBar,\n Box,\n Button,\n Grid,\n Toolbar,\n Typography,\n useScrollTrigger,\n useTheme,\n} from '@mui/material';\nimport React, { useEffect } from 'react';\nimport { Outlet, useNavigate, useParams } from 'react-router-dom';\n\n// store\nimport { useAppDispatch } from 'store/hooks';\nimport { hideNavbar, showNavbar } from 'store/slices/appSlice';\n\n// hooks\nimport {\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useMobileMediaQuery, useRelationships } from 'hooks';\n\nexport const ProgramRegistrationPage: React.FC = () => {\n useAuth({});\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n\n return () => {\n dispatch(showNavbar(true));\n };\n }, [dispatch]);\n\n const { palette, transitions } = useTheme();\n const isMobile = useMobileMediaQuery();\n\n const { isLoadingRelationships } = useRelationships({});\n\n const scrollTrigger = useScrollTrigger({\n disableHysteresis: true,\n threshold: 0,\n });\n\n const { programSlug = '', role } = useParams();\n const isInvalidRole = role !== 'guide' && role !== 'trainee';\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n useEffect(() => {\n if (!program || !role || isInvalidRole) {\n navigate('./../');\n }\n }, [isInvalidRole, navigate, program, role]);\n\n if (!program || !role || isInvalidRole) {\n return <>;\n }\n\n const programType = program.program_details?.program_type;\n const programVariation = program.program_details?.program_variation;\n const isGroupProgram = programVariation === 'group';\n\n const programVariations = programType?.program_type_text?.variations;\n\n const individualCopy = programVariations?.individual;\n const groupCopy = programVariations?.group;\n\n const isGuide = role === 'guide';\n\n const guideTitle = isGroupProgram\n ? groupCopy?.registration?.registration_guide?.registration_guide_title\n : individualCopy?.registration?.registration_guide\n ?.registration_guide_title;\n\n const traineeTitle = isGroupProgram\n ? groupCopy?.registration?.registration_trainee?.registration_trainee_title\n : individualCopy?.registration?.registration_trainee\n ?.registration_trainee_title;\n\n return (\n <>\n \n \n }\n fullWidth={false}\n disabled={isLoadingRelationships()}\n onClick={() => navigate(-1)}\n sx={{\n color: palette.default.text.primary,\n }}\n >\n {baseLanguage.globals.common.go_back_button_label}\n \n \n \n \n \n \n \n {program.metadata.program_name}\n \n \n {isGuide ? guideTitle : traineeTitle}\n \n \n \n \n \n \n );\n};\n","import { ProgramRegistrationQuestion } from '@guider-global/shared-types';\nimport { Box, Typography } from '@mui/material';\nimport { Asterisk, FormTextFieldTyped } from 'components';\nimport { FormAutocomplete } from 'components/FormAutocomplete';\nimport { Control, FieldErrors } from 'react-hook-form';\n\nexport const renderFields = ({\n registrationQuestions,\n isSkillsEnabled,\n typedControl,\n errors,\n pageName,\n role,\n isGroupProgram,\n isGoalsDisabled,\n}: {\n registrationQuestions: ProgramRegistrationQuestion[] | undefined;\n isSkillsEnabled: boolean | undefined;\n typedControl: Control;\n errors: FieldErrors;\n pageName: string;\n role: 'guide' | 'trainee';\n isGroupProgram: boolean;\n isGoalsDisabled?: boolean | undefined;\n}) => {\n const filteredRegistrationQuestions =\n registrationQuestions?.filter((registrationQuestion) =>\n [role, 'both'].includes(registrationQuestion.audience),\n ) || [];\n\n return filteredRegistrationQuestions.map((question, index) =>\n renderFieldWrapper({\n question,\n typedControl,\n errors,\n pageName,\n index,\n isSkillsEnabled,\n role,\n isGroupProgram,\n isGoalsDisabled,\n }),\n );\n};\n\nexport const renderFieldWrapper = ({\n question,\n typedControl,\n errors,\n pageName,\n index,\n isSkillsEnabled,\n role,\n isGroupProgram,\n isGoalsDisabled,\n}: {\n question: ProgramRegistrationQuestion;\n typedControl: Control;\n errors: FieldErrors;\n pageName: string;\n index: number;\n isSkillsEnabled: boolean | undefined;\n role: 'guide' | 'trainee';\n isGroupProgram: boolean;\n isGoalsDisabled?: boolean | undefined;\n}) => {\n const isGuide = role === 'guide';\n const questionId = question.id.current;\n const goalsOffset = !isGoalsDisabled ? 1 : 0;\n const questionIndexOffset = isGroupProgram && isGuide ? 2 : 0;\n const questionIndex = isGuide\n ? index + (isSkillsEnabled ? 2 : 1) + goalsOffset + questionIndexOffset\n : index + (isSkillsEnabled ? 2 : 1) + questionIndexOffset;\n const isRequired = question.required ?? false;\n\n return (\n \n \n {`${questionIndex}. `}\n {question?.[role]?.question_title}\n {isRequired && }\n \n \n {question?.[role]?.question_description}\n \n {renderField({ question, typedControl, errors, pageName })}\n \n );\n};\n\nexport const renderField = ({\n question,\n typedControl,\n errors,\n pageName,\n}: {\n question: ProgramRegistrationQuestion;\n typedControl: Control;\n errors: FieldErrors;\n pageName: string;\n}) => {\n const isRequired = question.required ?? false;\n\n const questionId = question.id.current;\n const questionType = question.type;\n const questionLabel = question?.text?.input_label ?? '';\n\n const requiredErrorText =\n (isRequired ? question.required_validation_error_text : '') ?? '';\n\n if (questionType === 'free-text') {\n const freeTextConfig = question.free_text_config;\n const rows = freeTextConfig?.text_area_size === 'multiline' ? 4 : 1;\n const minLengthErrorMessage =\n freeTextConfig?.text?.minimum_length_not_met_validation_error;\n const maxLengthErrorMessage =\n freeTextConfig?.text?.maximum_length_exceeded_validation_error;\n const minLength = freeTextConfig?.minimum_length;\n const maxLength = freeTextConfig?.maximum_length;\n\n return (\n \n );\n }\n\n if (questionType === 'select') {\n const questionOptions =\n question?.options?.map((option) => ({\n label: option.label ?? '',\n value: option.id.current,\n })) ?? [];\n\n return (\n \n );\n }\n\n if (questionType === 'multi-select') {\n const multiselectConfig = question.multi_select_config;\n const questionOptions =\n question?.options?.map((option) => ({\n label: option.label ?? '',\n value: option.id.current,\n })) ?? [];\n\n const maximumSelections = multiselectConfig?.maximum_selections ?? 5;\n const minimumSelections = multiselectConfig?.minimum_selections ?? 0;\n const errorText = multiselectConfig?.text;\n\n const minimumSelectionsNotMetValidationError =\n errorText?.minimum_selections_not_met_validation_error;\n const maximumSelectionsExceededValidationError =\n errorText?.maximum_selections_exceeded_validation_error;\n\n // Events\n const multiSelectValidate = (value: unknown) => {\n if (question.type === 'multi-select') {\n const valueLength = (value as string[]).length;\n if (valueLength > maximumSelections)\n return maximumSelectionsExceededValidationError;\n if (valueLength < minimumSelections)\n return minimumSelectionsNotMetValidationError;\n return true;\n }\n };\n\n return (\n \n );\n }\n};\n","import { ProgramRegistrationSkills } from '@guider-global/shared-types';\nimport { Typography } from '@mui/material';\nimport { Asterisk } from 'components';\nimport { FormAutocomplete } from 'components/FormAutocomplete';\nimport { Control, FieldErrors } from 'react-hook-form';\n\nexport const renderSkills = ({\n skillsConfig,\n typedControl,\n errors,\n pageName,\n role,\n isGroupProgram,\n index = 1,\n}: {\n skillsConfig: ProgramRegistrationSkills | undefined;\n typedControl: Control;\n errors: FieldErrors;\n pageName: string;\n role: 'guide' | 'trainee';\n isGroupProgram: boolean;\n index?: number;\n}) => {\n const isGuide = role === 'guide';\n const questionIndexOffset = isGroupProgram && isGuide ? 2 : 0; // guide has 2 extra required questions\n const questionIndex = index + questionIndexOffset;\n\n const skillsOptions =\n skillsConfig?.options?.map((skill) => ({\n label: skill.label ?? '',\n value: skill.id.current,\n })) ?? [];\n\n const maximumSelections =\n skillsConfig?.multi_select_config?.maximum_selections ?? 5;\n const minimumSelections =\n skillsConfig?.multi_select_config?.minimum_selections ?? 0;\n const errorText = skillsConfig?.multi_select_config?.text;\n\n const minimumSelectionsNotMetValidationError =\n errorText?.minimum_selections_not_met_validation_error;\n const maximumSelectionsExceededValidationError =\n errorText?.maximum_selections_exceeded_validation_error;\n\n // Events\n const multiSelectValidate = (value: unknown) => {\n const valueLength = (value as string[]).length;\n if (valueLength > maximumSelections)\n return maximumSelectionsExceededValidationError;\n if (valueLength < minimumSelections)\n return minimumSelectionsNotMetValidationError;\n return true;\n };\n\n return (\n <>\n \n {`${questionIndex}. `}\n {skillsConfig?.[role].question_title}\n \n \n \n {skillsConfig?.[role].question_description}\n \n \n \n );\n};\n","import { IMembership, Program } from '@guider-global/shared-types';\nimport { Paper, Divider, Typography, Skeleton } from '@mui/material';\nimport { FC } from 'react';\nimport {\n Control,\n FieldErrors,\n SubmitHandler,\n UseFormHandleSubmit,\n FieldValues,\n} from 'react-hook-form';\n\nimport { IMembershipForm } from 'store/slices/formsSlice';\n\nimport { FlatPageHeader } from 'components/Page/FlatPageHeader';\nimport ProgramManageGuideForm from 'forms/ProgramManageGuideForm';\nimport { ProgramManageGuidePageRole } from '../ProgramManageGuidePage';\n\nexport interface ProgramManageGuideMobilePageProps {\n title: string;\n pageSubtitle: string;\n programName: string;\n profileTypeHeading: string;\n\n control: Control;\n errors: FieldErrors;\n onSubmit: SubmitHandler;\n program?: Program;\n handleSubmit: UseFormHandleSubmit;\n guideMembership?: IMembership;\n role: ProgramManageGuidePageRole;\n profilePublishHeading: string;\n profilePublishDescription: string;\n discardChangesButtonLabel: string;\n updateProfileButtonLabel: string;\n profilePendingHeading: string;\n profilePendingDescription: string;\n goalCategories: { label?: string | undefined; value: string }[];\n loading: boolean;\n isValid: boolean;\n isDirty: boolean;\n}\n\nconst ProgramManageGuideMobilePage: FC = ({\n title,\n pageSubtitle,\n programName,\n profileTypeHeading,\n control,\n errors,\n onSubmit,\n program,\n handleSubmit,\n loading,\n guideMembership,\n profilePublishHeading,\n profilePublishDescription,\n discardChangesButtonLabel,\n updateProfileButtonLabel,\n profilePendingHeading,\n profilePendingDescription,\n isValid,\n isDirty,\n role,\n goalCategories,\n}) => {\n return (\n <>\n \n \n \n {programName}\n \n {profileTypeHeading}\n \n {guideMembership ? (\n \n ) : (\n <>\n \n \n \n \n )}\n \n \n );\n};\n\nexport default ProgramManageGuideMobilePage;\n","// external\nimport { Box, Paper, Skeleton, Typography } from '@mui/material';\nimport { useEffect, useMemo } from 'react';\nimport {\n Control,\n FieldErrors,\n FieldValues,\n SubmitHandler,\n useForm,\n} from 'react-hook-form';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport { areArraysEqual } from 'utils';\n\n// components\nimport { PageHeader, PageWrapper } from 'components';\nimport ProgramManageGuideMobilePage from '../ProgramManageGuideMobilePage';\n\n// forms\nimport ProgramManageGuideForm from 'forms/ProgramManageGuideForm';\n\n// store\nimport { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\n\n// hooks\nimport {\n useCustomFields,\n useMemberships,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n ISkill,\n} from '@guider-global/shared-types';\nimport { IMembershipForm } from 'store/slices/formsSlice';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { interpolate } from 'functions';\n\nexport interface BaseReactHookFormComponentProps {\n control: Control;\n errors: FieldErrors;\n}\n\nexport type ProgramManageGuidePageRole = 'guide' | 'trainee';\n\nexport const ProgramManageGuidePage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const isMobile = useMobileMediaQuery();\n const {\n memberships,\n hasResultsMemberships,\n reqMemberships,\n isLoadingMemberships,\n } = useMemberships({\n getSilently: true,\n });\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n const discardChangesButtonLabel =\n baseLanguage.globals.common.discard_changes_button_label;\n\n const organizationSlug = getSubDomain();\n\n const { getOrganization } = useSanityOrganization({\n getSilently: true,\n organizationSlug: organizationSlug,\n localeCode: 'en_GB',\n });\n\n const organization = getOrganization();\n\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profileId = profile?.id ?? '';\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: ProgramManageGuidePageRole;\n }>();\n const isGuide = role === 'guide';\n\n const {\n relationships: getRelationships,\n isLoadingRelationships,\n reqRelationships,\n } = useRelationships({});\n const relationships = getRelationships();\n const relationship = relationships?.find(\n (relationship) =>\n !relationship.isConcluded &&\n relationship.programSlug === programSlug &&\n relationship.profileId === profileId,\n );\n\n const guideMembership = useMemo(\n () =>\n memberships().find(\n (membership) =>\n membership.role === 'guide' && membership.programSlug === programSlug,\n ),\n [memberships, programSlug],\n );\n const guideMembershipId = guideMembership?.id;\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const skillsConfig = useMemo(() => program?.registration?.skills, [program]);\n\n const skillsOptions = useMemo(\n () => skillsConfig?.options?.map((skill) => skill.id.current) ?? [],\n [skillsConfig],\n );\n\n const goalCategories = organization?.goal_categories?.categories?.map(\n (goalCategory) => ({\n label: goalCategory.goal_category_name,\n value: goalCategory.goal_category_slug.current,\n }),\n );\n\n const membershipProgramFields = useMemo(\n () => (guideMembership?.programFields as ICustomField[]) || [],\n [guideMembership],\n );\n\n const defaultFormValues = useMemo(() => {\n const programSkills = (guideMembership?.skills as Partial[]) ?? [];\n const initialGoalCategories = guideMembership?.goalCategories?.map(\n (goalCategory) => goalCategory.fieldSlug,\n );\n\n return {\n goalCategorySlugs: initialGoalCategories,\n title: relationship?.title ?? '',\n description: relationship?.description ?? '',\n ...(programSkills.length !== 0 && {\n skills: programSkills\n .map((skill) => skill.fieldSlug)\n .filter(\n (skillValue) => skillValue && skillsOptions.includes(skillValue),\n ),\n }),\n ...Object.fromEntries(\n membershipProgramFields.map((customField) => [\n customField.fieldSlug,\n customField.value,\n ]),\n ),\n } as FieldValues;\n }, [\n guideMembership?.skills,\n guideMembership?.goalCategories,\n relationship?.description,\n relationship?.title,\n skillsOptions,\n membershipProgramFields,\n ]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid, isDirty },\n reset,\n } = useForm({\n mode: 'onChange',\n defaultValues: defaultFormValues,\n });\n\n useEffect(() => {\n if (relationship) {\n reset(defaultFormValues);\n }\n }, [relationship, defaultFormValues, reset]);\n\n const isMissingGuideMembership = hasResultsMemberships() && !guideMembership;\n useEffect(() => {\n if (isMissingGuideMembership) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isMissingGuideMembership, navigate, programSlug]);\n\n useEffect(() => {\n if (!isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n if (isMissingGuideMembership) {\n return <>;\n }\n\n if (!program || !role) {\n return <>;\n }\n\n const registrationQuestions =\n program?.registration?.registration_questions?.filter(\n (registrationQuestion) =>\n [role, 'both'].includes(registrationQuestion.audience),\n );\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n const programName = program.metadata.program_name;\n\n const programTypeText =\n program?.program_details?.program_type?.program_type_text;\n const programRegistrationGuide =\n programTypeText?.variations?.individual?.registration?.registration_guide;\n const membershipPending =\n programRegistrationGuide?.registration_guide_membership_pending;\n const guideSingular = programTypeText?.common?.guide?.singular;\n const traineeSingular = programTypeText?.common?.trainee?.singular;\n\n const onSubmit: SubmitHandler = async (data) => {\n if (!guideMembershipId) {\n console.error('Failed to submit. No `guideMembershipId` provided.');\n return;\n }\n\n let newCustomFieldIds: string[] = [];\n\n const { isPublished, ...restData } = data;\n\n const {\n title,\n description,\n skills,\n goalCategorySlugs,\n ...newCustomFields\n } = restData;\n\n if (Object.keys(newCustomFields).length !== 0) {\n let customFieldsPostData: ICustomField[] = [];\n\n await Promise.all(\n Object.entries(newCustomFields).map(\n async ([newCustomFieldSlug, newCustomFieldValue]) => {\n const oldMembershipProgramField = membershipProgramFields.find(\n (membershipProgramField) =>\n membershipProgramField.fieldSlug === newCustomFieldSlug,\n );\n const oldValue = oldMembershipProgramField?.value;\n\n const isNew = !oldValue;\n\n if (!isNew) {\n let hasValueChanged = false;\n\n const fieldId = oldMembershipProgramField.id;\n const fieldType = oldMembershipProgramField.fieldType;\n\n const newValue = newCustomFieldValue;\n\n if (fieldType === 'multi-select') {\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n hasValueChanged = !areArraysEqual(newValue, oldValue);\n }\n } else {\n hasValueChanged = oldValue !== newValue;\n }\n\n if (!hasValueChanged) {\n return;\n }\n\n return await reqCustomFields({\n method: 'PATCH',\n url: `/customfields/${fieldId}`,\n data: {\n value: newValue,\n fieldType,\n },\n });\n } else {\n const currentRegistrationQuestion = registrationQuestions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === newCustomFieldSlug,\n );\n\n return customFieldsPostData.push({\n fieldSlug: newCustomFieldSlug,\n organizationSlug,\n fieldType: currentRegistrationQuestion?.type,\n value: newCustomFieldValue,\n profileId,\n programSlug,\n } as ICustomField);\n }\n },\n ),\n );\n\n if (customFieldsPostData?.length !== 0) {\n const { data: customFieldsResponseData } = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n if (customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n\n await reqCustomFields({ url: '/customfields' });\n }\n }\n\n let newRelationshipId: string | undefined;\n\n if (isGroupProgram && isGuide) {\n if (!relationship) {\n const { data: relationships } = await reqRelationships({\n method: 'POST',\n url: '/relationships',\n // TODO Fix Types\n // @ts-ignore\n data: {\n guideProfiles: [profileId],\n isConcluded: false,\n programSlug,\n organizationSlug,\n programTypeSlug: programType?.metadata?.id?.current,\n programVariationTypeSlug: EProgramVariation.Group,\n profileId,\n title,\n description,\n },\n });\n\n if (relationships) {\n const [newRelationship] = relationships;\n newRelationshipId = newRelationship.id;\n }\n } else {\n await reqRelationships({\n method: 'PATCH',\n url: `/relationships/${relationship.id}`,\n data: {\n title,\n description,\n },\n });\n }\n }\n\n const updateMembershipData: Partial & {\n goalCategorySlugs: string[];\n skillSlugs: string[];\n } = {\n role: 'guide',\n goalCategorySlugs: goalCategorySlugs as string[],\n isPublished: !relationship && isGroupProgram ? true : !!isPublished,\n programSlug,\n skillSlugs: data.skills ?? [],\n ...(newCustomFieldIds && {\n programFields: [\n ...membershipProgramFields.map((field) => field.id),\n ...newCustomFieldIds,\n ],\n }),\n };\n\n await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${guideMembershipId}`,\n data: updateMembershipData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqRelationships({ url: '/relationships' }),\n ]);\n\n if (isGroupProgram && isGuide) {\n // created new group\n if (newRelationshipId) {\n navigate(`/relationships/${newRelationshipId}`);\n }\n // updated existing group\n else if (relationship) {\n navigate(`/relationships/${relationship.id}`);\n }\n } else {\n dispatch(\n showAppAlert({\n severity: 'success',\n message: 'Profile updated successfully',\n timeout: 5000,\n }),\n );\n\n navigate('/dashboard');\n }\n };\n\n // Base language Derivations\n const {\n title,\n subtitle,\n profile: sanityBaseLanguageProgramsProfile,\n profile_published_boolean_label: profilePublishedBooleanLabel,\n profile_published_boolean_description: profilePublishedBooleanDescription,\n update_profile_button_label: updateProfileButtonLabel,\n } = baseLanguage.programs.manage_guide_profile;\n const profileTypeHeading = isGuide\n ? `${guideSingular} ${sanityBaseLanguageProgramsProfile}`\n : `${traineeSingular} ${sanityBaseLanguageProgramsProfile}`;\n\n const pageSubtitle = interpolate(\n subtitle ?? '',\n {\n program_name: programName ?? '',\n },\n 'Manage your profile',\n );\n if (isMobile)\n return (\n \n );\n\n return (\n <>\n \n \n \n ({\n py: 4,\n px: 3,\n borderTop: `8px solid ${theme.palette.secondary.main}`,\n })}\n >\n {programName}\n \n {profileTypeHeading}\n \n {guideMembership ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n","// external\nimport { useAuth } from '@guider-global/auth-hooks';\nimport { ThemeProvider, useTheme } from '@mui/material';\n\n// hooks\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useOrganization,\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\n\nimport {\n useLocalization,\n useMemberships,\n useMixpanelEvents,\n useProfiles,\n useTrackEvent,\n} from 'hooks';\nimport { ProgramListContainer } from 'containers/Programs';\nimport { deepMerge } from 'utils';\nimport { AlertBox, ButtonStackItem, theme } from '@guider-global/ui';\nimport { useState } from 'react';\nimport { FilterPageView } from 'views';\nimport { EProgramVariation, ICustomField } from '@guider-global/shared-types';\n\nexport const ProgramsListPage = () => {\n const [value, setValue] = useState('all');\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n // Styles\n\n const organizationTheme = useTheme();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n // Base Language\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n // Derivations\n\n const {\n title: programsListTitle,\n subtitle: programsListSubtitle,\n all_programs_label,\n cohort_programs_label,\n group_programs_label,\n empty_state,\n } = baseLanguage.programs.programs_list;\n\n // Profile\n const { getProfiles } = useProfiles({});\n const [profile] = getProfiles();\n const profileOrganizationFields =\n profile?.organizationFields as ICustomField[];\n\n // Org\n\n const { organization } = useOrganization({ organizationSlug });\n const openMatchingEnabled =\n organization?.open_matching.enable_open_matching ?? false;\n\n // Auth\n const auth = useAuth({ waitForAuthentication: true });\n\n // Memberships\n const { memberships: getMemberships } = useMemberships({});\n const memberships = getMemberships();\n\n // Programs\n\n const { getAuthorizedPrograms } = useSanityOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const programs = getAuthorizedPrograms(\n profileOrganizationFields,\n memberships,\n );\n\n const availableProgramsToFilter = [\n 'all',\n openMatchingEnabled ? 'open' : undefined,\n ...new Set(\n programs.map((program) => program.program_details?.program_variation),\n ),\n ].filter(Boolean);\n\n useTrackEvent({\n track: {\n eventKey: 'program-list-visited',\n eventParams: {\n organization: { organizationSlug },\n programList: { organizationSlug },\n },\n },\n for: organizationSlug,\n if: auth.isAuthorized,\n });\n\n useMixpanelEvents({ navigationEventName: 'Programs' });\n\n function getFilterButtonText(variation?: string) {\n switch (variation) {\n case 'all': {\n return all_programs_label;\n }\n case 'open': {\n return 'On-going';\n }\n case EProgramVariation.Individual: {\n return cohort_programs_label;\n }\n case EProgramVariation.Group: {\n return group_programs_label;\n }\n default:\n break;\n }\n }\n\n const hasMultipleProgramVariations = availableProgramsToFilter.length > 2;\n\n return (\n \n {\n return {\n key: `${index}-filter-button`,\n variant: value === variation ? 'contained' : 'outlined',\n label: getFilterButtonText(variation),\n color: 'info',\n onClick: () => setValue(variation ?? 'all'),\n sx: { borderRadius: '20px', width: '33%' },\n } as ButtonStackItem;\n }),\n ]}\n >\n {availableProgramsToFilter.length === 0 ? (\n \n ) : (\n \n )}\n \n \n );\n};\n"],"names":["OTPSurveyPage","id","searchParams","useSearchParams","userId","get","localeCode","organizationSlug","getSubDomain","dispatch","useEffect","getOrganization","useSanityOrganization","settings","useSanitySettings","getSilently","organization","organizationTheme","combinedPalette","palette","getResponse","reqOTPSurveys","waitForAuthentication","url","result","otpSurvey","data","errorSettings","code","guider_surveys","survey_already_submitted_state","survey_not_found_state","theme","logo","size","hasBorder","sx","objectFit","src","buildSanityImageUrl","source","white_label","auth0_logo","status","title","description","buttonLabel","return_to_the_platform_button_label","survey","PaginationDemoPage","useAuth","goals","isSuccessGoals","getMeta","getNextPage","getPreviousPage","getPage","getMore","hasMore","isPaginated","pageLimit","page","setPage","useState","isReady","direction","spacing","variant","text","mb","JSON","stringify","label","onClick","amount","type","value","onChange","e","Number","target","loading","GuideGroupCreatePage","navigate","getBaseLanguage","useSanityBaseLanguage","baseLanguage","isLoadingMemberships","memberships","isLoadingSkills","isLoadingCustomFields","programSlug","groupGuideForm","state","guideMembership","filter","membership","find","role","handleSubmit","control","formState","errors","isValid","mode","defaultValues","typedControl","track","eventKey","eventParams","program","useTheme","isMobile","getProgram","useSanityOrganizationPrograms","pageName","programRegistration","registration","registrationQuestions","registration_questions","isGroupProgram","program_details","program_variation","EProgramVariation","programType","program_type","programVariations","program_type_text","variations","groupCopy","group","skillsConfig","skills","isSkillsEnabled","enable_skills_question","Paper","pt","pb","borderTop","secondary","main","borderRadius","registration_guide","registration_guide_about_you","registration_guide_about_you_title","subtitle","registration_guide_about_you_description","Divider","my","mx","onSubmit","style","padding","ProgramManageGuideTitle","ProgramManageGuideDescription","Box","width","display","justifyContent","alignItems","mt","LoadingButton","color","disabled","fullWidth","globals","common","continue_button_label","GuideGroupPreviewPage","getProfiles","profile","profileId","profilePicture","picture","reqMemberships","reqRelationships","isLoadingRelationships","reqCustomFields","isGuide","programTypeCopy","requiresApproval","guide_membership_approval","registration_guide_review_profile","registration_guide_review_profile_title","registration_guide_review_profile_description","userRole","guide","displayName","jobTitle","townOrCity","linkedInUrl","organizationFields","Skeleton","height","transform","flexDirection","px","Button","registration_guide_review_profile_edit_profile_button_label","_b","_c","customFields","_a","formSkills","formCustomFields","customFieldsPostData","Object","entries","map","fieldKey","fieldValue","fieldType","registrationQuestion","current","fieldSlug","length","customFieldsResponse","method","Array","isArray","customFieldIds","customField","relationshipsResponseData","guideProfiles","isConcluded","programTypeSlug","metadata","programVariationTypeSlug","relationshipId","membershipData","isPublished","programFields","skillSlugs","Promise","all","registration_guide_review_profile_publish_profile_button_label","GuideRegistrationAboutYouPage","trackMixpanelEvent","trackScreenTime","membershipGuideForm","replace","getISOStringWithoutMilliseconds","isGoalsDisabled","guide_disable_goals","customGoalCategories","custom_goal_categories","selectedGoalSource","goal_categories","categories","goalCategories","goalCategory","goal_category_name","goal_category_slug","goalsValidation","programVariation","individual","_g","_f","_e","_d","registration_guide_goals","registration_guide_goals_title","whiteSpace","_n","_m","_l","_k","_j","_i","_h","registration_guide_goals_description","multiple","defaultValue","name","_o","options","rules","required","validate","_r","_q","_p","GuideRegistrationPendingPage","membershipPending","registration_guide_membership_pending","icon","textAlign","xs","md","actions_label","mr","dashboard_button_label","explore_learning_hub","GuideRegistrationPreviewPage","users","user","at","unionUserProperty","programTypeText","reviewProfile","firstName","lastName","pictures","edit_profile_button_label","goalCategorySlugs","verb","err","console","error","GuideRegistrationPublishedPage","timer","setTimeout","clearTimeout","registration_guide_complete","registration_guide_complete_title","registration_guide_complete_description","registration_guide_complete_actions_label","registration_guide_complete_dashboard_button_label","ProgramRegistrationAboutYouPage","GuideComponent","TraineeComponent","ProgramRegistrationGoalsPage","subdomain","selectGoalLabel","select_goals_custom_label","select_goals_label","trainee_min_selected_goals","trainee_max_selected_goals","selectedGoalCategories","setSelectedGoalCategories","isLoading","setIsLoading","alert","setAlert","slug","disableContinueButton","registration_trainee","registration_trainee_goals","registration_trainee_goals_title","registration_trainee_goals_description","fontSize","fontWeight","message","backgroundColor","onSelected","goalCategoriesSlugs","max_goals_validation_message","handleGoalCategoriesToggle","buttonLabels","more","show_more_button_label","less","show_less_button_label","membershipsResult","severity","timeout","ProgramRegistrationPreviewPage","TraineeGroupJoinPage","isFormReady","setIsFormReady","relationships","getRelationships","reqMatches","isLoadingMatches","membershipTraineeForm","for","traineeMembership","useMemo","skillsOptions","skill","membershipProgramFields","defaultFormFields","programSkills","skillValue","includes","fromEntries","reset","trigger","keys","handleRegistrationLimitReachedModalAction","useCallback","programRelationshipLimits","relationship_limits","traineeRelationshipLimit","enable_trainee_relationship_limit","trainee_relationship_limit","programRegistrationTraineeGuideLimitModal","registration_trainee_guide_limit_modal","programRelationships","relationship","relationshipIncludesTrainee","traineeProfiles","audience","showRegistrationLimitReachedModal","updateMembership","newCustomFieldIds","newCustomFields","newCustomFieldSlug","newCustomFieldValue","oldMembershipProgramField","membershipProgramField","oldValue","currentRegistrationQuestion","push","hasValueChanged","fieldId","newValue","customFieldsResponseData","reqMembershipsData","field","publishMembership","open","registration_trainee_guide_limit_modal_title","content","registration_trainee_guide_limit_modal_description","action","registration_trainee_guide_limit_modal_button_label","registration_trainee_about_you","registration_trainee_about_you_title","registration_trainee_about_you_description","TraineeRegistrationChooseGroupPage","loadingMessageIndex","setLoadingMessageIndex","includeChooseGuideUrl","matches","getMatches","getSilentlyUrl","isMembershipTraineeFormEmpty","maxSpots","group_settings","max_trainees","filteredMatches","match","spotsOccupied","registrationLoadingMessages","registration_trainee_choose_a_guide","registration_trainee_choose_a_guide_loading_state_messages","renderLoadingMessage","values","loadingMessage","index","Fade","in","enter","exit","Typography","position","joinGroup","relationshipResponse","relationshipData","renderFoundGuide","registration_trainee_choose_a_guide_title","registration_trainee_choose_a_guide_description","guideProfile","skillsSlugs","programFieldsFormatted","programField","isBestMatch","blurred","renderGroup","p","CircularProgress","registration_trainee_no_matches_found","registration_trainee_no_matches_found_title","registration_trainee_no_matches_found_description","PersonSearchSharp","registration_trainee_no_matches_actions_label","maxWidth","TraineeRegistrationAboutYouPage","disableTraineeRegistration","trainee_registration_rules","disable_trainee_registration","if","log","flexFlow","gap","modal_title","headerLineColor","actions","return_to_dashboard_button_label","modal_description","TraineeRegistrationChooseGuidePage","setRelationshipId","selectedIndex","setSelectedIndex","isModalOpen","setIsModalOpen","chosenGuide","setChosenGuide","reqGoals","getProfileImage","useProfileImage","membershipTraineeGoals","useOrganization","isProgramAvailable","isRoleAvailable","isTraineeRelationshipLimitSet","isGuideRelationshipLimitSet","enable_guide_relationship_limit","guideRelationshipLimit","guide_relationship_limit","isLimitModalOpen","loadingMessages","connectWithGuide","userPicture","relationshipsResponse","forEach","cardSx","getFormattedProgramFields","spotsLeft","relationshipCount","image","matched_on_skills_label","no_reviews_yet_label","reviews_singular","reviews_plural","reviews_button_label","spot_singular","spots_left_label","spots_plural","profile_card","organizationFieldsToShow","getVisibleProfileFields","profile_fields","fields","toString","location","country","profileFields","guideReviews","reviewsPlural","reviewsSingular","noReviewsText","reviews","bestMatchLabel","programs","program_registration","best_match_label","subtitles","avatarSrc","option","key","isMatched","matched","viewLinkedInLabel","linkedin_profile_button_label","buttons","registration_trainee_choose_a_guide_choose_guide_button_label","bottomText","guideSingular","singular","spotNumber","spot","renderGuide","minHeight","maxwidth","py","boxSizing","top","left","info","component","registration_trainee_relationship_created_successfully","registration_trainee_relationship_created_successfully_title","registration_trainee_relationship_created_successfully_description","zIndex","border","static_media","relationship_created","ml","view_relationship","TraineeRegistrationChoosePage","ProgramRegistrationPage","transitions","scrollTrigger","disableHysteresis","threshold","isInvalidRole","individualCopy","guideTitle","registration_guide_title","traineeTitle","registration_trainee_title","elevation","transition","duration","standard","easing","easeInOut","startIcon","default","primary","go_back_button_label","container","rowSpacing","item","paper","program_name","renderFields","question","renderFieldWrapper","questionId","questionIndexOffset","questionIndex","isRequired","question_title","question_description","renderField","questionType","questionLabel","input_label","requiredErrorText","required_validation_error_text","freeTextConfig","free_text_config","rows","text_area_size","minLengthErrorMessage","minimum_length_not_met_validation_error","maxLengthErrorMessage","maximum_length_exceeded_validation_error","minLength","minimum_length","maxLength","maximum_length","requiredErrorMessage","questionOptions","FormAutocomplete","multiselectConfig","multi_select_config","maximumSelections","maximum_selections","minimumSelections","minimum_selections","errorText","minimumSelectionsNotMetValidationError","minimum_selections_not_met_validation_error","maximumSelectionsExceededValidationError","maximum_selections_exceeded_validation_error","multiSelectValidate","valueLength","renderSkills","pageSubtitle","programName","profileTypeHeading","profilePublishHeading","profilePublishDescription","discardChangesButtonLabel","updateProfileButtonLabel","profilePendingHeading","profilePendingDescription","isDirty","FlatPageHeader","header","subheader","ProgramManageGuideForm","ProgramManageGuidePage","hasResultsMemberships","discard_changes_button_label","guideMembershipId","defaultFormValues","initialGoalCategories","isMissingGuideMembership","programRegistrationGuide","traineeSingular","trainee","newRelationshipId","newRelationship","updateMembershipData","sanityBaseLanguageProgramsProfile","profile_published_boolean_label","profilePublishedBooleanLabel","profile_published_boolean_description","profilePublishedBooleanDescription","update_profile_button_label","manage_guide_profile","ProgramsListPage","setValue","programsListTitle","programsListSubtitle","all_programs_label","cohort_programs_label","group_programs_label","empty_state","programs_list","profileOrganizationFields","openMatchingEnabled","open_matching","enable_open_matching","auth","getMemberships","getAuthorizedPrograms","availableProgramsToFilter","Set","Boolean","getFilterButtonText","variation","programList","isAuthorized","navigationEventName","hasMultipleProgramVariations","displayButtons","iconVariant"],"sourceRoot":""}