{"version":3,"file":"static/js/app-deeac20a_3f06626b90b72ec8cccb.js","mappings":"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","sources":["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/ProgramsV2/Membership/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramsV2/Goals/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramsV2/Preview/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/ProgramsV2/Matches/index.tsx"],"sourcesContent":["// external\nimport { Box, Divider, Paper, useTheme } from '@mui/material';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { EProgramVariation } from '@guider-global/shared-types';\nimport { LoadingButton } from '@mui/lab';\nimport { PageCard } from 'components';\nimport { ProgramManageGuideDescription } from 'components/ProgramManageGuideDescription';\nimport { ProgramManageGuideTitle } from 'components/ProgramManageGuideTitle';\nimport {\n useLocalization,\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 IGroupGuideForm,\n selectGroupGuideForm,\n setGroupsGuideForm,\n} from 'store/slices/formsSlice';\nimport {\n useCustomFields,\n useMemberships,\n} from '@guider-global/front-end-hooks';\n\nexport const GuideGroupCreatePage: React.FC = () => {\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n\n const { isLoadingMemberships, memberships, isMutatingMemberships } =\n 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 groupGuideForm = useAppSelector((state) =>\n selectGroupGuideForm(state, programSlug),\n );\n\n const programMemberships = memberships?.filter(\n (membership) => membership.programSlug === programSlug,\n );\n\n const guideMembership = programMemberships?.find(\n (membership) => membership.role === 'guide',\n );\n\n useEffect(() => {\n if (guideMembership) {\n navigate(`/programs/${programSlug}/manage/guide`);\n }\n }, [guideMembership, navigate, programSlug]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid },\n } = useForm({\n mode: 'onChange',\n defaultValues: groupGuideForm,\n });\n\n const typedControl = control as unknown as Control;\n\n const organizationSlug = getSubDomain();\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\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 dispatch(hideNavbar(true));\n }, [dispatch]);\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 pageName = 'GuideGroupCreatePage';\n\n const programRegistration = program.registration;\n const registrationQuestions = programRegistration?.registration_questions;\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n\n const programVariations = programType?.program_type_text?.variations;\n\n const groupCopy = programVariations?.group;\n\n const skillsConfig = program.registration?.skills;\n const isSkillsEnabled = skillsConfig?.enable_skills_question;\n\n const onSubmit: SubmitHandler = async (data) => {\n dispatch(setGroupsGuideForm({ programSlug, data }));\n navigate('./preview');\n };\n\n return (\n \n \n {!isMobile && }\n \n \n \n {isSkillsEnabled &&\n renderSkills({\n skillsConfig,\n typedControl,\n errors,\n pageName,\n role: 'guide',\n isGroupProgram,\n })}\n {renderFields({\n registrationQuestions,\n isSkillsEnabled,\n typedControl,\n errors,\n pageName,\n role: 'guide',\n isGroupProgram,\n })}\n \n \n {baseLanguage?.globals?.common?.continue_button_label ?? 'Continue'}\n \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 { GroupCard, PageCard } from 'components';\n\n// store\nimport { useAppSelector } from 'store/hooks';\nimport { selectGroupGuideForm } from 'store/slices/formsSlice';\n\n// hooks\nimport { useLocalization, useMobileMediaQuery, useSkills } from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n} from '@guider-global/shared-types';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport {\n useCustomFields,\n useMemberships,\n useProfiles,\n} from '@guider-global/front-end-hooks';\nimport { useRelationships } from '@guider-global/front-end-hooks';\n\nexport const GuideGroupPreviewPage: React.FC = () => {\n // Utils\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n // Styling\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\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 // Profiles\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n const profileId = profile?.id ?? '';\n const profilePicture = profile?.picture;\n // Memberships\n const {\n isLoadingMemberships,\n reqMemberships,\n isMutatingMemberships,\n membershipsRevalidate,\n } = useMemberships({});\n // Skills\n const { isLoadingSkills } = useSkills({});\n // Relationships\n const {\n reqRelationships,\n isLoadingRelationships,\n isMutatingRelationships,\n relationshipsRevalidate,\n } = useRelationships({});\n\n // Custom fields\n const { reqCustomFields, isLoadingCustomFields, isMutatingCustomFields } =\n useCustomFields({});\n\n const isLoading =\n isLoadingCustomFields ||\n isLoadingMemberships ||\n isLoadingRelationships ||\n isLoadingSkills;\n const isMutating =\n isMutatingCustomFields || isMutatingMemberships || isMutatingRelationships;\n\n // Programs\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n // Events\n\n // Redux\n const groupGuideForm = useAppSelector((state) =>\n selectGroupGuideForm(state, programSlug),\n );\n\n useEffect(() => {\n if (!groupGuideForm) {\n navigate('./../');\n }\n }, [groupGuideForm, navigate]);\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 if (!groupGuideForm) {\n return <>;\n }\n\n const programType = program?.program_details?.program_type;\n const programTypeCopy = programType?.program_type_text;\n const requiresApproval =\n program.registration?.guide_membership_approval ?? false;\n\n const groupCopy = programTypeCopy?.variations?.group;\n\n const publishGroup = async () => {\n let customFields: ICustomField[] = [];\n\n const {\n title,\n description,\n skills: formSkills,\n ...formCustomFields\n } = groupGuideForm;\n\n const customFieldsPostData: Partial[] = Object.entries(\n formCustomFields,\n ).map(([fieldKey, fieldValue]) => {\n const fieldType = program?.registration?.registration_questions?.find(\n (registrationQuestion) => registrationQuestion.id.current === fieldKey,\n )?.type;\n\n return {\n fieldSlug: fieldKey,\n organizationSlug,\n programSlug,\n fieldType,\n value: fieldValue,\n profileId,\n };\n });\n\n if (customFieldsPostData.length > 0) {\n const customFieldsResponse = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData as Partial,\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 { data: relationshipsResponseData } = await reqRelationships({\n method: 'POST',\n url: '/relationships',\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 (!relationshipsResponseData) {\n return;\n }\n\n const relationshipId = relationshipsResponseData[0].id;\n\n const membershipData: Partial & { skillSlugs: string[] } = {\n role: 'guide',\n organizationSlug,\n programSlug,\n profile: profileId,\n isPublished: true,\n programFields: customFieldIds ?? [],\n skillSlugs: formSkills ?? [],\n requiresApproval: requiresApproval,\n programVariationTypeSlug: EProgramVariation.Group,\n };\n\n await reqMemberships({\n method: 'POST',\n url: '/memberships',\n data: membershipData,\n });\n\n membershipsRevalidate();\n relationshipsRevalidate();\n\n navigate(`/relationships/${relationshipId}`);\n };\n\n return (\n \n \n {!isMobile && }\n {profile ? (\n \n ) : (\n \n )}\n \n navigate('./../')}\n >\n {\n groupCopy?.registration?.registration_guide\n ?.registration_guide_review_profile\n ?.registration_guide_review_profile_edit_profile_button_label\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 useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { EProgramVariation } from '@guider-global/shared-types';\nimport { LoadingButton } from '@mui/lab';\nimport { Asterisk, FormAutocomplete, PageCard, Skeleton } from 'components';\nimport {\n useLocalization,\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';\nimport {\n useCustomFields,\n useMemberships,\n} from '@guider-global/front-end-hooks';\n\nexport const GuideRegistrationAboutYouPage: React.FC = () => {\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n\n const { trackMixpanelEvent, trackScreenTime } = useMixpanelEvents();\n\n const { isLoadingMemberships, memberships, isMutatingMemberships } =\n 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 = memberships?.filter(\n (membership) => membership.programSlug === programSlug,\n );\n\n const guideMembership = 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 { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { organization } = useOrganization({\n organizationSlug,\n });\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 } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useLocalization, useMobileMediaQuery } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\n\nexport const GuideRegistrationPendingPage: React.FC = () => {\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\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 theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n // Programs\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n // Base Language\n\n const { baseLanguage } = useBaseLanguage({ localeCode });\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 useLocalization,\n useMixpanelEvents,\n useMobileMediaQuery,\n useSkills,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n} from '@guider-global/shared-types';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n useCustomFields,\n useMemberships,\n useProfiles,\n useUsers,\n} from '@guider-global/front-end-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 { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\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({});\n const user = users?.at(0);\n // Profiles\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n const profilePicture = profile?.picture;\n // Memberships\n const {\n isLoadingMemberships,\n reqMemberships,\n isMutatingMemberships,\n membershipsRevalidate,\n } = useMemberships({});\n // Skills\n const { isLoadingSkills } = useSkills({});\n // Custom fields\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n // Programs\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 as Partial,\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 membershipsRevalidate();\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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useLocalization, useMobileMediaQuery } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\n\nexport const GuideRegistrationPublishedPage: React.FC = () => {\n const dispatch = useAppDispatch();\n const theme = useTheme();\n const navigate = useNavigate();\n const isMobile = useMobileMediaQuery();\n const organizationSlug = getSubDomain();\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\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 } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 { useOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useLocalization } from 'hooks';\n\nexport const ProgramRegistrationAboutYouPage: React.FC = () => {\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const organizationSlug = getSubDomain();\n\n const { localeCode } = useLocalization(organizationSlug);\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 { useLocalization, useMobileMediaQuery } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n useOrganization,\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';\nimport { useMemberships } from '@guider-global/front-end-hooks';\n\nexport const ProgramRegistrationGoalsPage: React.FC = () => {\n // Redux\n const dispatch = useAppDispatch();\n const organizationSlug = getSubDomain();\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 { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n // Organization\n const subdomain = getSubDomain();\n const { organization } = useOrganization({\n organizationSlug: subdomain,\n });\n\n // Programs\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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, membershipsRevalidate } = useMemberships(\n {},\n );\n\n useEffect(() => {\n if (!memberships?.length) {\n membershipsRevalidate();\n }\n }, [memberships, membershipsRevalidate]);\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(goalCategorySlugs: string[]) {\n setSelectedGoalCategories(goalCategorySlugs);\n checkGoalLimit(goalCategorySlugs);\n }\n\n function checkGoalLimit(goalCategorySlugs: string[]) {\n if (\n trainee_max_selected_goals &&\n goalCategorySlugs.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(goalCategorySlugs)\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 { useOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport { GuideGroupPreviewPage, GuideRegistrationPreviewPage } from 'pages';\nimport React from 'react';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useLocalization } from 'hooks';\n\nexport const ProgramRegistrationPreviewPage: React.FC = () => {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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\n\nimport {\n useLocalization,\n useMobileMediaQuery,\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';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n useCustomFields,\n useMemberships,\n useProfiles,\n useRelationships,\n} from '@guider-global/front-end-hooks';\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\n // Organization\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n // Base language\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n const profileId = profile?.id;\n\n const {\n isLoadingMemberships,\n reqMemberships,\n memberships,\n isMutatingMemberships,\n membershipsRevalidate,\n } = useMemberships({});\n\n const { relationships } = useRelationships({});\n\n const { isLoadingSkills, isMutatingSkills } = useSkills({});\n\n const {\n reqCustomFields,\n isLoadingCustomFields,\n isMutatingCustomFields,\n customFieldsRevalidate,\n } = useCustomFields({});\n\n const isMutating =\n isMutatingSkills || isMutatingMemberships || isMutatingCustomFields;\n\n const { programSlug = '' } = useParams<{\n programSlug: string;\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[] | undefined = 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 } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 = profileId\n ? relationshipTraineeProfileIds.includes(profileId)\n : false;\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 ?? 0) >= 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 as Partial,\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 membershipsRevalidate();\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 as Partial,\n });\n\n if (!!customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n customFieldsRevalidate();\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 membershipsRevalidate();\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 useLocalization,\n useMatches,\n useMobileMediaQuery,\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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { showAppAlert, showConfetti, toggleModal } from 'store/slices/appSlice';\nimport { useProfiles, useRelationships } from '@guider-global/front-end-hooks';\n\nexport const TraineeRegistrationChooseGroupPage: React.FC = () => {\n const dispatch = useAppDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const [loadingMessageIndex, setLoadingMessageIndex] = useState(0);\n const { profile } = useProfiles({});\n\n const { reqRelationships, isLoadingRelationships } = useRelationships({});\n\n const theme = useTheme();\n const isMobile = useMobileMediaQuery();\n\n // Organization\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n // Base language\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const navigate = useNavigate();\n\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 { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n const matchesToDisplay = program?.registration?.matches_to_display;\n\n const { isLoadingMatches, matches } = useMatches({\n options: { keepPreviousData: false },\n query: `?organizationSlug=${organizationSlug}&programSlug=${programSlug}${\n matchesToDisplay ? `&pageLimit=${matchesToDisplay}` : ''\n }`,\n });\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\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 ? [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 ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\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';\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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n useLocalization,\n useMixpanelEvents,\n useMobileMediaQuery,\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';\nimport {\n useCustomFields,\n useMemberships,\n useProfiles,\n} from '@guider-global/front-end-hooks';\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 organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { trackMixpanelEvent, trackScreenTime, unionUserProperty } =\n useMixpanelEvents();\n\n const { profile } = useProfiles({});\n const profileId = profile?.id;\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n const {\n isLoadingMemberships,\n reqMemberships,\n memberships,\n isMutatingMemberships,\n membershipsRevalidate,\n } = useMemberships({});\n\n const {\n reqCustomFields,\n isLoadingCustomFields,\n isMutatingCustomFields,\n customFieldsRevalidate,\n } = useCustomFields({});\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 as Partial,\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 membershipsRevalidate();\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 as Partial,\n });\n\n if (customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n\n customFieldsRevalidate();\n }\n }\n\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 membershipsRevalidate();\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 useLocalization,\n useMatches,\n useMixpanelEvents,\n useMobileMediaQuery,\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 useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n useSettings,\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';\nimport {\n useMemberships,\n useProfiles,\n useRelationships,\n} from '@guider-global/front-end-hooks';\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 navigate = useNavigate();\n const { trackScreenTime } = useMixpanelEvents();\n const organizationSlug = getSubDomain();\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 { profiles } = useProfiles({});\n const { reqGoals } = useGoals({});\n const profile = profiles?.at(0);\n const profileId = profile?.id ?? '';\n\n const { settings } = useSettings({\n localeCode: 'en_GB',\n });\n\n const isMobile = useMobileMediaQuery();\n\n // base lanuage\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\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 { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n const matchesToDisplay = program?.registration?.matches_to_display;\n\n const { isLoadingMatches, matches } = useMatches({\n query: `?organizationSlug=${organizationSlug}&programSlug=${programSlug}${\n matchesToDisplay ? `&pageLimit=${matchesToDisplay}` : ''\n }`,\n });\n\n const {\n relationships,\n isLoadingRelationships,\n reqRelationships,\n isMutatingRelationships,\n } = useRelationships({});\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 ?? 0) >= 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 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 profileVideo = 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:\n (isLoadingRelationships || isMutatingRelationships) &&\n index === selectedIndex,\n disabled:\n (isLoadingRelationships || isMutatingRelationships) &&\n 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(profileVideo?.spots_left_label, {\n guideSingular: programTypeText?.common?.guide?.singular ?? '',\n spotNumber: spotsLeft.toString(),\n spot:\n spotsLeft === 1\n ? profileVideo?.spot_singular\n : profileVideo?.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 { useOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport {\n TraineeRegistrationChooseGroupPage,\n TraineeRegistrationChooseGuidePage,\n} from 'pages';\nimport React from 'react';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useLocalization } from 'hooks';\n\nexport const TraineeRegistrationChoosePage: React.FC = () => {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const organizationSlug = getSubDomain();\n\n const { localeCode } = useLocalization(organizationSlug);\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 { 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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { useLocalization, useMobileMediaQuery } from 'hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useRelationships } from '@guider-global/front-end-hooks';\n\ninterface ProgramRegistrationPageProps {\n children: React.ReactElement;\n}\n\nexport const ProgramRegistrationPage = ({\n children,\n}: ProgramRegistrationPageProps) => {\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 organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n const { baseLanguage } = useBaseLanguage({ localeCode });\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 {children}\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 { ProgressContainer } from 'containers';\n\nimport { ProgramMembershipForm } from 'forms/ProgramMembershipForm';\nimport { useNavigate } from 'react-router-dom';\n\nexport function ProgramMembershipPage() {\n const navigate = useNavigate();\n return (\n navigate(-1)} percentage={25}>\n \n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { AvatarBox, Button, Loading } from '@guider-global/ui';\nimport { Stack } from '@mui/system';\nimport { ProgressContainer } from 'containers';\nimport { interpolate } from 'functions';\nimport { useLocalization } from 'hooks';\nimport { useEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport traineeIcon from 'assets/learn.svg';\nimport guideIcon from 'assets/users.svg';\nimport GoalCategoriesView from 'views/Registration/GoalCategoriesView';\nimport { IMembership } from '@guider-global/shared-types';\nimport { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport { useMemberships } from '@guider-global/front-end-hooks';\n\nexport function ProgramGoalsPage() {\n const [selectedGoalCategories, setSelectedGoalCategories] = useState<\n string[]\n >([]);\n\n const [loading, setLoading] = useState(false);\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n }>();\n\n const navigate = useNavigate();\n const organizationSlug = getSubDomain();\n const dispatch = useAppDispatch();\n\n const { organization, isLoadingOrganization } = useOrganization({\n organizationSlug,\n });\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage, isLoadingBaseLanguage } = useBaseLanguage({\n localeCode,\n });\n\n // Program\n const { getProgram, isLoadingPrograms } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n options: {\n keepPreviousData: false,\n },\n });\n const program = getProgram(programSlug);\n\n // Memberships\n const { memberships, reqMemberships, isLoadingMemberships } = useMemberships(\n {},\n );\n\n const membership = memberships?.find(\n (membership) =>\n membership?.programSlug === programSlug && membership?.role === role,\n );\n\n useEffect(() => {\n if (!membership || loading) return;\n\n if (membership?.goalCategories) {\n setSelectedGoalCategories(\n membership?.goalCategories\n ?.filter((goalCategory) =>\n role === 'guide' ? goalCategory?.offered : goalCategory?.sought,\n )\n ?.map((goalCategory) => goalCategory?.fieldSlug) ?? [],\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [membership, role]);\n\n const goalsSource =\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories;\n\n const goalCategories = goalsSource?.map((goalCategory) => ({\n label: goalCategory?.goal_category_name,\n slug: goalCategory?.goal_category_slug?.current,\n }));\n\n async function handleGoalsSubmit() {\n if (!membership || loading) return;\n\n setLoading(true);\n\n const data: Partial & { goalCategorySlugs: string[] } = {\n role,\n isPublished: membership?.isPublished,\n programSlug,\n goalCategorySlugs: selectedGoalCategories,\n };\n\n const membershipsResult = await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${membership?.id}`,\n data,\n });\n\n if (membershipsResult?.status === 'success') {\n role === 'guide' ? navigate('../preview') : navigate(`../choose`);\n } else {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: membershipsResult?.message,\n timeout: 3000,\n }),\n );\n }\n setLoading(false);\n }\n\n const isLoading =\n (!membership && isLoadingMemberships) ||\n isLoadingPrograms ||\n isLoadingOrganization ||\n isLoadingBaseLanguage;\n\n if (!baseLanguage)\n return (\n \n <>\n \n );\n\n if (isLoading && !loading) {\n return (\n navigate(-1)} percentage={50}>\n \n \n );\n }\n\n return (\n navigate(-1)} percentage={50}>\n \n <>\n \n {goalCategories && (\n setSelectedGoalCategories(slugs)}\n buttonLabels={{\n more: baseLanguage?.globals?.common?.show_more_button_label,\n less: baseLanguage?.globals?.common?.show_less_button_label,\n }}\n selectedGoalCategories={selectedGoalCategories}\n />\n )}\n \n handleGoalsSubmit()}\n data-cy=\"register-goals-continue-button\"\n loading={loading}\n />\n \n \n );\n}\n","import { ProgressContainer } from 'containers';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport guideIcon from 'assets/users.svg';\nimport AvatarImage from 'assets/no_relationships_avatar.svg';\nimport {\n getFormattedProgramFields,\n getSubDomain,\n getVisibleProfileFields,\n} from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n ICustomField,\n IMembership,\n ISkill,\n ProfileSkill,\n Program,\n} from '@guider-global/shared-types';\nimport { OrganizationProfileView } from '@guider-global/ui';\nimport {\n AvatarBox,\n Button,\n CustomModal,\n Loading,\n TextStack,\n} from '@guider-global/ui/lib/components';\nimport { Stack } from '@guider-global/ui/lib/components/Layout/Stack';\nimport { MDIcons, SanityIcon } from 'components';\nimport { useLocalization } from 'hooks';\nimport { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport {\n useMemberships,\n useProfiles,\n useUsers,\n} from '@guider-global/front-end-hooks';\n\nexport function ProgramPreviewPage() {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n const [showPublishedModal, setShowPublishedModal] = useState(false);\n const [loading, setLoading] = useState(false);\n\n // Hooks\n\n const navigate = useNavigate();\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { getProfileImage } = useProfileImage();\n const dispatch = useDispatch();\n\n // Prefetch image\n useEffect(() => {\n const img = new Image();\n img.src = AvatarImage;\n }, []);\n\n // Organization\n\n const { organization, isLoadingOrganization } = useOrganization({\n organizationSlug,\n });\n\n // Profile\n const { profile, isLoadingProfiles } = useProfiles({});\n\n // User\n const { user, isLoadingUsers } = useUsers({});\n\n // Program\n const { getProgram, isLoadingPrograms } = useOrganizationPrograms({\n localeCode,\n organizationSlug,\n });\n const program = getProgram(programSlug);\n\n // Base Language\n\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n // Memberships\n const { memberships, isLoadingMemberships, reqMemberships } = useMemberships(\n {},\n );\n\n const membership = memberships?.find(\n (membership) =>\n membership?.programSlug === programSlug && membership?.role === 'guide',\n );\n\n async function handlePublish() {\n if (!membership || !program || !programSlug) return;\n\n if (membership?.requiresApproval === false) {\n navigate('/dashboard');\n return;\n }\n\n setLoading(true);\n\n const requiresApproval =\n program?.registration?.guide_membership_approval ?? false;\n\n const membershipsResult = await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${membership?.id}`,\n data: {\n programSlug,\n requiresApproval,\n isPublished: true,\n },\n });\n\n await reqMemberships({\n method: 'GET',\n url: `/memberships`,\n });\n\n if (membershipsResult?.status === 'success') {\n setShowPublishedModal(true);\n } else {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: membershipsResult?.message,\n timeout: 5000,\n }),\n );\n }\n setLoading(false);\n }\n\n const customFields = getFormattedProgramFields(\n membership as IMembership,\n program as Program,\n );\n\n const userImage =\n getProfileImage({\n profilePicture: profile?.picture,\n userPicture: user?.picture,\n }) ?? '';\n\n const profileFieldsData =\n getVisibleProfileFields(\n organization?.profile_fields,\n profile?.organizationFields as ICustomField[],\n ) ?? [];\n\n const profileFields = profileFieldsData?.map((field) => {\n return {\n icon: ,\n label: field?.label?.toString() ?? '',\n };\n });\n\n const skills =\n (membership?.skills as ISkill[])?.map((skill, index) => {\n const allSkills = [\n ...(program?.registration?.skills?.soft_skills ?? []),\n ...(program?.registration?.skills?.hard_skills ?? []),\n ] as ProfileSkill[];\n\n let label =\n allSkills?.find((s) => s?.slug === skill?.fieldSlug)?.label ??\n undefined;\n\n if (label === '' || !label) {\n label =\n program?.registration?.skills?.options?.find(\n (s) => s?.id?.current === skill?.fieldSlug,\n )?.label ?? undefined;\n }\n\n return {\n key: `${label}-${index}`,\n isMatched: false,\n value: label ?? '',\n };\n }) ?? [];\n\n const goalsSource =\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories;\n\n const goals =\n membership?.goalCategories?.map((goalCategory, index) => {\n const label = goalsSource?.find(\n (g) => g?.goal_category_slug?.current === goalCategory?.fieldSlug,\n )?.goal_category_name;\n\n return {\n key: `${label}-${index}`,\n isMatched: false,\n value: label ?? '',\n };\n }) ?? [];\n\n const isLoading =\n isLoadingMemberships ||\n isLoadingProfiles ||\n isLoadingUsers ||\n isLoadingPrograms ||\n isLoadingOrganization;\n\n if (!baseLanguage)\n return (\n \n <>\n \n );\n\n if (isLoading && !loading)\n return (\n navigate(-1)}\n percentage={100}\n >\n \n \n );\n\n return (\n navigate(-1)} percentage={100}>\n \n \n\n \n \n \n \n \n \n navigate('/dashboard')}\n label={\n membership?.requiresApproval\n ? program?.program_details?.program_type?.program_type_text\n ?.variations?.individual?.registration?.registration_guide\n ?.registration_guide_membership_pending\n ?.dashboard_button_label\n : program?.program_details?.program_type?.program_type_text\n ?.variations?.individual?.registration?.registration_guide\n ?.registration_guide_complete\n ?.registration_guide_complete_dashboard_button_label\n }\n />\n \n \n \n );\n}\n","import { ProgressContainer } from 'containers';\n\nimport { useNavigate, useParams } from 'react-router-dom';\n\nimport { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport NoMatches from 'assets/no_relationships_avatar.svg';\nimport {\n getFormattedProgramFields,\n getSubDomain,\n getVisibleProfileFields,\n} from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n EProgramVariation,\n ICustomField,\n IMatchV2,\n IMembership,\n IProfile,\n IRelationship,\n ProfileSkill,\n Program,\n} from '@guider-global/shared-types';\nimport { OrganizationProfileView } from '@guider-global/ui';\nimport {\n Button,\n CircularAvatarPair,\n CustomModal,\n Image,\n Loading,\n TextStack,\n} from '@guider-global/ui/lib/components';\n\nimport { Stack } from '@guider-global/ui/lib/components/Layout/Stack';\nimport { MDIcons, SanityIcon } from 'components';\nimport { interpolate } from 'functions';\nimport { useLocalization } from 'hooks';\nimport { useMatchesV2 } from 'hooks/useMatchesV2';\nimport { useState } from 'react';\nimport { NoMatchesView } from 'views';\nimport { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport ConfettiExplosion from 'react-confetti-explosion';\nimport {\n useMemberships,\n useProfiles,\n useRelationships,\n useUsers,\n} from '@guider-global/front-end-hooks';\n\nexport function ProgramMatchesPage() {\n const { programSlug = '' } = useParams<{\n programSlug: string;\n }>();\n\n // State\n const [matchingLoading, setMatchingLoading] = useState(false);\n const [selectedProfileId, setSelectedProfileId] = useState<\n string | undefined\n >(undefined);\n const [showMatchedModal, setShowMatchedModal] = useState(false);\n const [selectedMatch, setSelectedMatch] = useState<{\n match: IMatchV2 | undefined;\n relationshipId: string | undefined;\n }>({ match: undefined, relationshipId: undefined });\n\n // Hooks\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const organizationSlug = getSubDomain();\n const { getProfileImage } = useProfileImage();\n\n // Organization\n\n const { organization } = useOrganization({\n organizationSlug,\n });\n\n // Profile\n const { profile } = useProfiles({});\n\n // User\n const { user } = useUsers({});\n // Base Language\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n // Program\n const { getProgram } = useOrganizationPrograms({\n localeCode,\n organizationSlug,\n });\n const program = getProgram(programSlug);\n\n // Memberships\n const { memberships } = useMemberships({});\n\n const membership = memberships?.find(\n (membership) =>\n membership?.programSlug === programSlug && membership?.role === 'trainee',\n );\n\n // Strings and assets\n\n const matchesToDisplay = program?.registration?.matches_to_display;\n\n // Matching\n\n const { matchesV2: matches, isLoadingMatchesV2 } = useMatchesV2({\n query: `?resultType=guideMembership&organizationSlug=${organizationSlug}&programSlug=${programSlug}${\n matchesToDisplay ? `&pageLimit=${matchesToDisplay}` : ''\n }`,\n });\n\n // Relationships\n\n const { relationships, reqRelationships, isLoadingRelationships } =\n useRelationships({});\n\n // Relationship limits\n\n const isTraineeRelationshipLimitSet =\n program?.relationships?.relationship_limits\n ?.enable_trainee_relationship_limit ?? false;\n\n const traineeRelationshipLimit = isTraineeRelationshipLimitSet\n ? program?.relationships?.relationship_limits?.trainee_relationship_limit\n : undefined;\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 profile && relationshipTraineeProfileIds.includes(profile?.id);\n return (\n relationship?.programSlug === programSlug &&\n !relationship?.isConcluded &&\n relationshipIncludesTrainee\n );\n });\n\n const showRegistrationLimitReachedModal =\n traineeRelationshipLimit !== undefined\n ? (programRelationships?.length ?? 0) >= traineeRelationshipLimit\n : false;\n\n const isRelationshipLimitModalOpen =\n !isLoadingRelationships &&\n !showMatchedModal &&\n showRegistrationLimitReachedModal;\n\n // Handle match\n\n const handleMatching = async (id: string, match: IMatchV2) => {\n if (!membership) return;\n\n setMatchingLoading(true);\n setSelectedProfileId(id);\n\n const result = await reqRelationships({\n method: 'POST',\n url: '/relationships',\n // TODO fix types\n // @ts-ignore\n data: {\n guideProfiles: [id],\n traineeProfiles: [(membership?.profile as Partial)?.id!],\n organizationSlug,\n programSlug,\n programTypeSlug:\n program?.program_details?.program_type?.metadata?.id?.current,\n programVariationTypeSlug: EProgramVariation.Individual,\n profileId: (membership?.profile as Partial)?.id,\n },\n });\n\n if (result.status === 'success' && result.data) {\n const relationshipId = (result?.data as IRelationship[])[0]?.id;\n\n setSelectedMatch({\n match,\n relationshipId,\n });\n setShowMatchedModal(true);\n setMatchingLoading(false);\n } else {\n setMatchingLoading(false);\n dispatch(\n showAppAlert({\n severity: 'error',\n message: result?.message,\n timeout: 5000,\n }),\n );\n }\n };\n\n if (!baseLanguage)\n return (\n \n <>\n \n );\n\n if (!matches || isLoadingMatchesV2)\n return (\n navigate(-1)}\n endAdornment={\n navigate('/dashboard')}\n label={baseLanguage?.globals?.common?.skip_button_label}\n />\n }\n >\n \n \n );\n\n if (matches?.length === 0 && !isLoadingMatchesV2) {\n const title = interpolate(\n baseLanguage?.registration?.open_matching?.matches?.empty_state_title,\n {\n rolePluralized:\n organization?.open_matching?.program_type?.program_type_text?.common\n ?.guide?.pluralized ?? 'Mentors',\n roleSingular:\n organization?.open_matching?.program_type?.program_type_text?.common\n ?.guide?.singular ?? 'Mentor',\n },\n );\n return (\n navigate(-1)}\n endAdornment={\n navigate('/dashboard')}\n label={baseLanguage?.globals?.common?.skip_button_label}\n />\n }\n percentage={100}\n >\n navigate(-1),\n },\n {\n key: 'matches-btn-2',\n variant: 'contained',\n label: baseLanguage?.globals?.common?.continue_button_label,\n color: 'info',\n onClick: () => navigate('/dashboard'),\n },\n ]}\n />\n \n );\n }\n\n // Match modal\n\n const matchImage =\n getProfileImage({\n profilePicture: selectedMatch?.match?.profile?.picture,\n userPicture: selectedMatch?.match?.user?.picture,\n }) ?? '';\n\n const userImage =\n getProfileImage({\n profilePicture: profile?.picture,\n userPicture: user?.picture,\n }) ?? '';\n\n return (\n navigate(-1)}\n endAdornment={\n navigate('/dashboard')}\n label={baseLanguage?.globals?.common?.skip_button_label}\n />\n }\n >\n \n \n\n {matches?.map((match, index) => {\n const profileFieldsData =\n getVisibleProfileFields(\n organization?.profile_fields,\n match?.profile?.organizationFields as ICustomField[],\n ) ?? [];\n\n const profileFields = profileFieldsData?.map((field) => {\n return {\n icon: ,\n label: field?.label?.toString() ?? '',\n };\n });\n\n const image = getProfileImage({\n profilePicture: match?.profile?.picture,\n userPicture: match?.user?.picture,\n });\n\n const buttonLabel = interpolate(\n program?.program_details?.program_type?.program_type_text\n ?.variations?.individual?.registration?.registration_trainee\n ?.registration_trainee_choose_a_guide\n ?.registration_trainee_choose_a_guide_choose_guide_button_label ??\n '',\n { name: match?.profile?.firstName ?? '' },\n );\n\n const bottomText =\n program?.relationships?.relationship_limits\n ?.enable_guide_relationship_limit &&\n program?.relationships?.relationship_limits\n ?.guide_relationship_limit &&\n match?.relationshipSpotsLeft &&\n interpolate(baseLanguage?.profile_card?.spots_left_label, {\n guideSingular:\n program?.program_details?.program_type?.program_type_text\n ?.common?.guide?.singular ?? '',\n spotNumber: match?.relationshipSpotsLeft?.toString(),\n spot:\n match.relationshipSpotsLeft === 1\n ? baseLanguage?.profile_card?.spot_singular\n : baseLanguage?.profile_card?.spots_plural,\n });\n\n const matchText =\n match?.percentage &&\n interpolate(baseLanguage?.profile_card?.match_percentage, {\n matchPercentage: match?.percentage.toFixed(0),\n });\n\n const skills = match?.skills?.map((skill, index) => {\n const allSkills = [\n ...(program?.registration?.skills?.soft_skills ?? []),\n ...(program?.registration?.skills?.hard_skills ?? []),\n ] as ProfileSkill[];\n\n let label =\n allSkills?.find((s) => s?.slug === skill?.fieldSlug)?.label ??\n undefined;\n\n if (label === '' || !label) {\n label =\n program?.registration?.skills?.options?.find(\n (s) => s?.id?.current === skill?.fieldSlug,\n )?.label ?? undefined;\n }\n\n return {\n key: `${'label'}-${index}`,\n isMatched: skill?.matched ?? false,\n value: label ?? '',\n };\n });\n\n const goalsSource =\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories;\n\n const goals = match?.goalCategories.map((goalCategory, index) => {\n const label = goalsSource?.find(\n (g) => g?.goal_category_slug?.current === goalCategory?.fieldSlug,\n )?.goal_category_name;\n\n return {\n key: `${'label'}-${index}`,\n isMatched: true,\n value: label ?? '',\n };\n });\n\n const matchSkills =\n match?.skills?.length !== 0\n ? {\n title: baseLanguage?.profile_card?.matched_on_skills_label,\n skills,\n }\n : undefined;\n\n const matchGoals =\n match?.goalCategories?.length !== 0\n ? {\n title: baseLanguage?.profile_card?.matched_on_goals_label,\n goals,\n }\n : undefined;\n\n const customFields = getFormattedProgramFields(\n match?.membership as IMembership,\n program as Program,\n );\n\n return (\n \n handleMatching(match?.profile?.id ?? '', match),\n loading:\n matchingLoading && selectedProfileId === match?.profile?.id,\n disabled:\n matchingLoading && selectedProfileId !== match?.profile?.id,\n },\n ]}\n bottomText={bottomText}\n />\n );\n })}\n \n \n \n \n \n navigate(`/relationships`)}\n />\n \n \n \n \n \n \n \n \n \n navigate(`/relationships/${selectedMatch?.relationshipId}`)\n }\n />\n \n \n \n \n \n );\n}\n"],"names":["GuideGroupCreatePage","navigate","dispatch","isLoadingMemberships","memberships","isMutatingMemberships","useMemberships","isLoadingSkills","waitForAuthentication","isLoadingCustomFields","useCustomFields","programSlug","groupGuideForm","state","programMemberships","filter","membership","guideMembership","find","role","useEffect","handleSubmit","control","formState","errors","isValid","mode","defaultValues","typedControl","organizationSlug","getSubDomain","localeCode","baseLanguage","useBaseLanguage","track","eventKey","eventParams","organization","program","theme","useTheme","isMobile","getProgram","useOrganizationPrograms","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","sx","pt","pb","borderTop","palette","secondary","main","borderRadius","title","registration_guide","registration_guide_about_you","registration_guide_about_you_title","subtitle","registration_guide_about_you_description","Divider","my","mx","onSubmit","data","style","padding","ProgramManageGuideTitle","ProgramManageGuideDescription","Box","width","display","justifyContent","alignItems","mt","LoadingButton","variant","color","size","type","disabled","fullWidth","loading","globals","common","continue_button_label","GuideGroupPreviewPage","profiles","useProfiles","profile","at","profileId","id","profilePicture","picture","reqMemberships","membershipsRevalidate","reqRelationships","isLoadingRelationships","isMutatingRelationships","relationshipsRevalidate","useRelationships","reqCustomFields","isMutatingCustomFields","isLoading","isMutating","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","onClick","registration_guide_review_profile_edit_profile_button_label","mb","_b","_c","customFields","_a","description","formSkills","formCustomFields","customFieldsPostData","Object","entries","map","fieldKey","fieldValue","fieldType","registrationQuestion","current","fieldSlug","value","length","customFieldsResponse","method","url","Array","isArray","customFieldIds","customField","relationshipsResponseData","guideProfiles","isConcluded","programTypeSlug","metadata","programVariationTypeSlug","relationshipId","membershipData","isPublished","programFields","skillSlugs","registration_guide_review_profile_publish_profile_button_label","GuideRegistrationAboutYouPage","trackMixpanelEvent","trackScreenTime","membershipGuideForm","replace","useOrganization","getISOStringWithoutMilliseconds","isGoalsDisabled","goals","guide_disable_goals","customGoalCategories","custom_goal_categories","selectedGoalSource","goal_categories","categories","goalCategories","goalCategory","label","goal_category_name","goal_category_slug","goalsValidation","programVariation","individual","direction","_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","_q","_p","_o","options","rules","required","validate","_s","_r","GuideRegistrationPendingPage","membershipPending","registration_guide_membership_pending","icon","textAlign","xs","md","actions_label","mr","dashboard_button_label","explore_learning_hub","GuideRegistrationPreviewPage","users","useUsers","user","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","organizationTheme","combinedPalette","subdomain","selectGoalLabel","select_goals_custom_label","select_goals_label","trainee_min_selected_goals","trainee_max_selected_goals","selectedGoalCategories","setSelectedGoalCategories","useState","setIsLoading","alert","setAlert","slug","handleGoalCategoriesToggle","max_goals_validation_message","checkGoalLimit","disableContinueButton","registration_trainee","registration_trainee_goals","registration_trainee_goals_title","registration_trainee_goals_description","text","fontSize","fontWeight","message","backgroundColor","onSelected","buttonLabels","more","show_more_button_label","less","show_less_button_label","membershipsResult","status","severity","timeout","ProgramRegistrationPreviewPage","TraineeGroupJoinPage","isFormReady","setIsFormReady","relationships","isMutatingSkills","customFieldsRevalidate","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","relationshipTraineeProfileIds","traineeProfiles","relationshipIncludesTrainee","audience","showRegistrationLimitReachedModal","updateMembership","newCustomFieldIds","newCustomFields","Promise","all","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","matchesToDisplay","matches_to_display","isLoadingMatches","matches","keepPreviousData","query","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","flexFlow","gap","modal_title","headerLineColor","actions","return_to_dashboard_button_label","modal_description","TraineeRegistrationChooseGuidePage","setRelationshipId","selectedIndex","setSelectedIndex","isModalOpen","setIsModalOpen","chosenGuide","setChosenGuide","reqGoals","settings","useSettings","getProfileImage","useProfileImage","membershipTraineeGoals","isProgramAvailable","isRoleAvailable","isTraineeRelationshipLimitSet","isGuideRelationshipLimitSet","enable_guide_relationship_limit","guideRelationshipLimit","guide_relationship_limit","isLimitModalOpen","loadingMessages","connectWithGuide","userPicture","relationshipsResponse","forEach","cardSx","getFormattedProgramFields","spotsLeft","relationshipCount","image","profileVideo","profile_card","organizationFieldsToShow","getVisibleProfileFields","profile_fields","fields","toString","location","country","profileFields","guideReviews","reviewsPlural","reviews_plural","reviewsSingular","reviews_singular","buttonLabel","reviews_button_label","noReviewsText","no_reviews_yet_label","reviews","bestMatchLabel","programs","program_registration","best_match_label","subtitles","avatarSrc","matched_on_skills_label","option","key","isMatched","matched","viewLinkedInLabel","linkedin_profile_button_label","buttons","registration_trainee_choose_a_guide_choose_guide_button_label","bottomText","spots_left_label","guideSingular","singular","spotNumber","spot","spot_singular","spots_plural","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","src","buildSanityImageUrl","source","static_media","relationship_created","ml","view_relationship","TraineeRegistrationChoosePage","ProgramRegistrationPage","children","useAuth","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","spacing","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","ProgramMembershipPage","onBackButtonClick","percentage","ProgramMembershipForm","ProgramGoalsPage","setLoading","isLoadingOrganization","isLoadingBaseLanguage","isLoadingPrograms","offered","sought","goalsSource","orientation","textSpacing","heading","open_matching","title_guide","traineeSingular","trainee","title_trainee","lineHeight","select_number_of_goals","avatarSx","GoalCategoriesView","slugs","handleGoalsSubmit","ProgramPreviewPage","showPublishedModal","setShowPublishedModal","useDispatch","Image","isLoadingProfiles","isLoadingUsers","userImage","profileFieldsData","allSkills","soft_skills","hard_skills","s","g","question_heading","save_changes_button_label","isOpen","align","alt","ProgramMatchesPage","matchingLoading","setMatchingLoading","selectedProfileId","setSelectedProfileId","showMatchedModal","setShowMatchedModal","selectedMatch","setSelectedMatch","matchesV2","isLoadingMatchesV2","useMatchesV2","isRelationshipLimitModalOpen","handleMatching","result","endAdornment","skip_button_label","empty_state_title","rolePluralized","pluralized","roleSingular","imageSrc","empty_state_description","matchImage","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","relationshipSpotsLeft","matchText","match_percentage","matchPercentage","toFixed","matchSkills","matchGoals","matched_on_goals_label","score","parseFloat","fit","force","mainAvatar","secondaryAvatar"],"sourceRoot":""}