{"version":3,"file":"static/js/app-deeac20a_437e1bb5a85a099e60df.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/Skills/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 IRelationship,\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';\nimport { ITypedApiResult } from '@guider-global/swr';\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 { reqRelationships, isLoadingRelationships, isMutatingRelationships } =\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],\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 reqRelationships(\n {\n method: 'PUT',\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 onSuccess: (result, key) => {\n const relationshipId = result.data.at(0)?.id;\n const membershipData: Partial & {\n skillSlugs: string[];\n } = {\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 reqMemberships(\n {\n method: 'POST',\n url: '/memberships',\n data: membershipData,\n },\n {\n onSuccess: () => {\n membershipsRevalidate();\n navigate(`/relationships/${relationshipId}`);\n },\n onError: () => {},\n },\n );\n },\n populateCache: (result, currentData) => {\n const resultIds = result.data.map((relationship) => relationship.id);\n const filterOutNewRelationships =\n currentData?.data.filter((relationship) => {\n return !resultIds.includes(relationship.id);\n }) ?? [];\n\n const newCache = {\n ...currentData,\n data: [...filterOutNewRelationships, ...result.data],\n } as ITypedApiResult;\n return newCache;\n },\n },\n );\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],\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 const [isLoading, setIsLoading] = useState(false);\n const [alert, setAlert] = useState(undefined);\n const [isMembershipLoaded, setIsMembershipLoaded] = useState(false);\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 setIsMembershipLoaded(true);\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 || !isMembershipLoaded) {\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],\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],\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// 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 { useProfiles, useRelationships } from '@guider-global/front-end-hooks';\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';\n\nexport const TraineeRegistrationChooseGroupPage: React.FC = () => {\n const dispatch = useAppDispatch();\n const [isLoading, setIsLoading] = useState(true);\n const [groupLoadingState, setGroupLoadingState] = useState<\n Record\n >({});\n const [loadingMessageIndex, setLoadingMessageIndex] = useState(0);\n const { profile } = useProfiles({});\n\n const { reqRelationships } = 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 setGroupLoadingState((prev) => ({ ...prev, [relationshipId]: true }));\n\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 setGroupLoadingState((prev) => ({ ...prev, [relationshipId]: false }));\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={groupLoadingState[relationshipId] || false}\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],\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],\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 IMatchedGoalCategory,\n IMatchedSkill,\n IMembership,\n IProfile,\n IRelationship,\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 {\n useMemberships,\n useProfiles,\n useRelationships,\n} from '@guider-global/front-end-hooks';\nimport countries from 'i18n-iso-countries';\nimport { ITypedApiResult } from '@guider-global/swr';\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 { membershipsRevalidate } = useMemberships({});\n const { profiles } = useProfiles({});\n const { revalidateGoals } = 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 {\n relationships,\n isLoadingRelationships,\n reqRelationships,\n isMutatingRelationships,\n isValidatingRelationships,\n } = useRelationships({});\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, isValidatingMatches } = useMatches({\n query: `?organizationSlug=${organizationSlug}&programSlug=${programSlug}${\n matchesToDisplay ? `&pageLimit=${matchesToDisplay}` : ''\n }`,\n });\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 loadingResources =\n isLoadingRelationships ||\n isValidatingRelationships ||\n isLoadingMatches ||\n isValidatingMatches;\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 = (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 reqRelationships(\n {\n method: 'PUT',\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 onSuccess: (result) => {\n const relationshipData = result?.data;\n const relationship = relationshipData && relationshipData[0];\n if (relationship) {\n dispatch(setMembershipTraineeForm({}));\n const relationshipId = relationship?.id || '';\n setRelationshipId(relationshipId);\n dispatch(showConfetti(true));\n setIsModalOpen(true);\n }\n membershipsRevalidate();\n revalidateGoals();\n },\n populateCache: (result, currentData) => {\n const resultIds = result.data.map((relationship) => relationship.id);\n const filterOutNewRelationships =\n currentData?.data.filter((relationship) => {\n return !resultIds.includes(relationship.id);\n }) ?? [];\n\n const newCache = {\n ...currentData,\n data: [...filterOutNewRelationships, ...result.data],\n } as ITypedApiResult;\n\n return newCache;\n },\n onError: (err) => {\n if (err.message?.includes('relationship limit reached')) {\n handleLimitReachedAlert(err.message);\n } else {\n dispatch(\n showAppAlert({\n severity: 'error',\n message: err.message,\n timeout: 5000,\n }),\n );\n }\n },\n },\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 goalCategories = membership.goalCategories as IMatchedGoalCategory[];\n\n const goalsSource =\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories;\n\n const goals = 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: goalCategory?.matched ?? false,\n value: label ?? '',\n };\n });\n\n const matchGoals =\n membership?.goalCategories && membership?.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,\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 const profileBio = {\n value: guideProfile.bio ?? '',\n label: profileVideo?.bio_title ?? '',\n };\n\n const isProfileBioEnabled =\n organization?.personal_details.enable_bio === true;\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 (isMutatingRelationships || loadingResources) &&\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 profileBio={\n isProfileBioEnabled ? { ...profileBio, type: 'free-text' } : undefined\n }\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 || !matches) {\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 ':dir(rtl)': {\n '& .MuiButton-startIcon': {\n transform: 'rotate(180deg)',\n },\n },\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={20}>\n \n \n );\n}\n","import { useMemberships } from '@guider-global/front-end-hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { IMembership } from '@guider-global/shared-types';\nimport { AvatarBox, Button } from '@guider-global/ui';\nimport { FormHelperText } from '@mui/material';\nimport { Stack } from '@mui/system';\nimport traineeIcon from 'assets/learn.svg';\nimport guideIcon from 'assets/users.svg';\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 { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport GoalCategoriesView from 'views/Registration/GoalCategoriesView';\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 } = useOrganization({\n organizationSlug,\n });\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({\n localeCode,\n });\n\n // Program\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const program = getProgram(programSlug);\n\n const min = program?.registration?.goals?.trainee_min_selected_goals;\n const max = program?.registration?.goals?.trainee_max_selected_goals;\n const errorMessage =\n baseLanguage?.globals?.goals?.max_goals_validation_message;\n\n const limitNotMet = Boolean(\n selectedGoalCategories?.length === 0 ||\n (min && selectedGoalCategories?.length < min),\n );\n const limitExceeded = Boolean(max && selectedGoalCategories?.length > max);\n\n // Memberships\n const { memberships, reqMemberships, isMutatingMemberships } = 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 || selectedGoalCategories?.length !== 0) 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 navigate('../skills/soft');\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 if (!membership)\n return (\n navigate(-1)} percentage={40}>\n {' '}\n <>{' '}\n \n );\n\n return (\n navigate(-1)} percentage={40}>\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 || isMutatingMemberships}\n disabled={limitExceeded || limitNotMet}\n />\n {limitExceeded && (\n \n {errorMessage}\n \n )}\n \n \n );\n}\n","import {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport {\n Button,\n MultiSelectAreaInputValue,\n RoleChip,\n SideBarIndicator,\n SkillCategoriesView,\n TextStack,\n} from '@guider-global/ui';\nimport { Stack } from '@guider-global/ui/lib/components/Layout/Stack';\nimport { useLocalization } from 'hooks';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { ProgressContainer } from 'containers';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { SubmitHandler, useForm } from 'react-hook-form';\nimport guideAvatar from 'assets/guideAvatar.svg';\nimport traineeAvatar from 'assets/traineeAvatar.svg';\nimport { useContext, useEffect } from 'react';\nimport {\n useMemberships,\n useRelationships,\n} from '@guider-global/front-end-hooks';\nimport {\n EProgramVariation,\n IMembership,\n ISkill,\n} from '@guider-global/shared-types';\nimport { interpolate } from 'functions';\nimport { GroupsContext, GroupValues } from 'containers/Groups';\n\ntype SkillFormValues = {\n [key: string]: MultiSelectAreaInputValue;\n};\n\nexport function ProgramSkillsPage() {\n const navigate = useNavigate();\n const { groupValues, setGroupValues } = useContext(GroupsContext);\n\n const {\n programSlug = '',\n role,\n type,\n id,\n } = useParams<{\n programSlug: string;\n role: 'guide' | 'trainee';\n type: 'hard' | 'soft';\n id: string | undefined;\n }>();\n\n const skillType = type === 'soft' ? 'soft_skills' : 'hard_skills';\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { reqMemberships, memberships, isMutatingMemberships } = useMemberships(\n {},\n );\n const { reqRelationships, relationships, isMutatingRelationships } =\n useRelationships({});\n\n const membership = memberships?.find(\n (membership) =>\n membership?.programSlug === programSlug && role === membership?.role,\n );\n\n const relationship = relationships?.find(\n (relationship) => relationship?.id === id,\n );\n\n // Program\n const { getProgram } = useOrganizationPrograms({\n localeCode,\n organizationSlug,\n });\n const program = getProgram(programSlug);\n\n const isGroup =\n program?.program_details?.program_variation === EProgramVariation.Group;\n\n const validationSettings =\n type === 'hard'\n ? program?.skills?.config?.hard_skills_validation\n : program?.skills?.config?.soft_skills_validation;\n\n const min = validationSettings?.minimum_selections;\n const max = validationSettings?.maximum_selections;\n const maxSkillsErrorMessage = interpolate(\n baseLanguage?.globals?.errors?.maximum_selections_exceeded,\n { number: `${max}` },\n 'Please select less options',\n );\n\n const {\n control,\n handleSubmit,\n reset,\n formState: { isValid },\n } = useForm({\n mode: 'onChange',\n });\n\n const onSubmit: SubmitHandler = async (\n data: SkillFormValues,\n ) => {\n if (!type) return;\n\n const skills = data?.[skillType]?.value;\n\n if (isGroup && role === 'guide') {\n if (id) {\n const existingSkillsOfDifferentType = (\n relationship?.skills as Partial[]\n )\n ?.filter(\n (skill) =>\n skill?.fieldSlug &&\n (type === 'soft' ? skill.type === 'hard' : skill.type === 'soft'),\n )\n ?.map((skill) => skill.fieldSlug);\n\n await reqRelationships({\n method: 'PATCH',\n url: `/relationships/${id}`,\n data: {\n ...(type === 'soft' && {\n softSkillSlugs: skills,\n hardSkillSlugs: existingSkillsOfDifferentType as string[],\n }),\n ...(type === 'hard' && {\n softSkillSlugs: existingSkillsOfDifferentType as string[],\n hardSkillSlugs: skills,\n }),\n },\n });\n if (type === 'soft') {\n return navigate(`../skills/hard`);\n } else {\n return navigate(`/relationships/${id}`);\n }\n } else {\n const groupData: GroupValues = {\n ...groupValues,\n ...(type === 'soft' && {\n softSkillSlugs: skills,\n }),\n ...(type === 'hard' && {\n hardSkillSlugs: skills,\n }),\n };\n setGroupValues(groupData);\n if (type === 'soft') {\n return navigate(`../skills/hard`);\n } else {\n return navigate(`../preview-group`);\n }\n }\n }\n\n const existingSkillsOfOppositeTypeSlugs = (\n membership?.skills as Partial[]\n )\n ?.filter(\n (skill) =>\n skill?.fieldSlug &&\n (type === 'soft' ? skill.type === 'hard' : skill.type === 'soft'),\n )\n ?.map((skill) => skill.fieldSlug);\n\n const membershipData: Partial & {\n hardSkillSlugs?: string[];\n softSkillSlugs?: string[];\n } = {\n ...(type === 'soft' && {\n softSkillSlugs: skills,\n hardSkillSlugs: existingSkillsOfOppositeTypeSlugs as string[],\n }),\n ...(type === 'hard' && {\n softSkillSlugs: existingSkillsOfOppositeTypeSlugs as string[],\n hardSkillSlugs: skills,\n }),\n role,\n programSlug,\n isPublished: membership?.isPublished,\n };\n\n await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${membership?.id}`,\n data: membershipData,\n });\n if (type === 'soft') {\n navigate('../skills/hard');\n } else {\n if (isGroup) {\n return navigate('../choose-group');\n } else {\n return role === 'guide'\n ? navigate('../preview')\n : navigate('../choose');\n }\n }\n };\n\n useEffect(() => {\n if (!type || !membership) return;\n\n const skillOptions = program?.skills?.[skillType]?.flatMap(\n (skill) => skill.skills,\n );\n\n if (id && relationship && isGroup) {\n const relationshipSkills = (\n relationship?.skills as Partial[]\n )?.map((skill) => skill.fieldSlug);\n\n const value =\n skillOptions\n ?.filter((option) => relationshipSkills?.includes(option?.slug))\n ?.map((skill) => skill.slug) ?? [];\n\n return reset({\n [skillType]: {\n fieldType: 'multi-select',\n name: skillType,\n value,\n },\n });\n }\n\n if (groupValues && isGroup) {\n const groupFormSkills = [\n ...(groupValues?.hardSkillSlugs ?? []),\n ...(groupValues?.softSkillSlugs ?? []),\n ];\n\n const value =\n skillOptions\n ?.filter(\n (option) => option?.slug && groupFormSkills?.includes(option?.slug),\n )\n ?.map((skill) => skill.slug) ?? [];\n\n return reset({\n [skillType]: {\n fieldType: 'multi-select',\n name: skillType,\n value,\n },\n });\n }\n\n const membershipSkills = (membership?.skills as Partial[])?.map(\n (skill) => skill.fieldSlug,\n );\n\n const value =\n skillOptions\n ?.filter((option) => membershipSkills?.includes(option?.slug))\n ?.map((skill) => skill.slug) ?? [];\n\n return reset({\n [skillType]: {\n fieldType: 'multi-select',\n name: skillType,\n value,\n },\n });\n }, [\n type,\n reset,\n skillType,\n membership,\n relationship,\n id,\n isGroup,\n groupValues,\n program?.skills,\n ]);\n\n if (!membership || !role || !type)\n return (\n navigate(-1)}\n percentage={type === 'soft' ? 60 : 80}\n >\n <>\n \n );\n\n return (\n navigate(-1)}\n percentage={type === 'soft' ? 60 : 80}\n >\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport {\n useMemberships,\n useProfiles,\n useUsers,\n} from '@guider-global/front-end-hooks';\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 Program,\n SanitySkills,\n} from '@guider-global/shared-types';\nimport { OrganizationProfileView } from '@guider-global/ui';\nimport {\n AvatarBox,\n Button,\n CustomModal,\n TextStack,\n} from '@guider-global/ui/lib/components';\nimport { Stack } from '@guider-global/ui/lib/components/Layout/Stack';\nimport AvatarImage from 'assets/no_relationships_avatar.svg';\nimport guideIcon from 'assets/users.svg';\nimport { MDIcons, SanityIcon } from 'components';\nimport { ProgressContainer } from 'containers';\nimport { useLocalization } from 'hooks';\nimport { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport { getGoalCategoryLabels, getSkillLabels } from 'utils';\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 } = useOrganization({\n organizationSlug,\n });\n\n // Profile\n const { profile } = useProfiles({});\n\n // User\n const { user } = useUsers({});\n\n // Program\n const { getProgram } = 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, reqMemberships, isMutatingMemberships } = 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 getSkillLabels({\n options: program?.skills as SanitySkills,\n source: membership,\n }) ?? [];\n\n const goals =\n getGoalCategoryLabels({\n options:\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories,\n source: membership,\n }) ?? [];\n\n if (!membership)\n return (\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 {\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 Program,\n SanitySkills,\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';\nimport NoMatches from 'assets/no_relationships_avatar.svg';\n\nimport {\n useMemberships,\n useProfiles,\n useRelationships,\n useUsers,\n} from '@guider-global/front-end-hooks';\nimport { ITypedApiResult } from '@guider-global/swr';\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 ConfettiExplosion from 'react-confetti-explosion';\nimport { useAppDispatch } from 'store/hooks';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport { getGoalCategoryLabels, getSkillLabels } from 'utils';\nimport { NoMatchesView } from 'views';\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 =\n 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 const isProfileBioEnabled =\n organization?.personal_details.enable_bio === true;\n\n // Handle match\n\n const handleMatching = (id: string, match: IMatchV2) => {\n if (!membership) return;\n\n setMatchingLoading(true);\n setSelectedProfileId(id);\n const traineeProfile = (membership?.profile as Partial)?.id;\n\n reqRelationships(\n {\n method: 'PUT',\n data: {\n guideProfiles: [id],\n traineeProfiles: traineeProfile ? [traineeProfile] : [],\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 onError: (err) => {\n setMatchingLoading(false);\n dispatch(\n showAppAlert({\n severity: 'error',\n message: err?.message,\n timeout: 5000,\n }),\n );\n },\n onSuccess: (result) => {\n const relationshipId = (result?.data as IRelationship[])[0]?.id;\n\n setSelectedMatch({\n match,\n relationshipId,\n });\n setShowMatchedModal(true);\n setMatchingLoading(false);\n },\n populateCache: (result, currentData) => {\n const resultIds = result.data.map((relationship) => relationship.id);\n const filterOutNewRelationships =\n currentData?.data.filter((relationship) => {\n return !resultIds.includes(relationship.id);\n }) ?? [];\n\n const newCache = {\n ...currentData,\n data: [...filterOutNewRelationships, ...result.data],\n } as ITypedApiResult;\n return newCache;\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 = getSkillLabels({\n options: program?.skills as SanitySkills,\n source: match,\n });\n\n const goals =\n getGoalCategoryLabels({\n options:\n program?.registration?.goals?.custom_goal_categories ??\n organization?.goal_categories?.categories,\n source: match,\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 const profileBio = {\n value: match?.profile?.bio ?? '',\n label: baseLanguage.profile_card?.bio_title ?? '',\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 profileBio={\n isProfileBioEnabled\n ? { ...profileBio, type: 'free-text' }\n : undefined\n }\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","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","guideProfiles","isConcluded","programTypeSlug","metadata","programVariationTypeSlug","onSuccess","result","key","relationshipId","membershipData","isPublished","programFields","skillSlugs","onError","populateCache","currentData","resultIds","relationship","filterOutNewRelationships","includes","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","isMembershipLoaded","setIsMembershipLoaded","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","fromEntries","reset","trigger","keys","handleRegistrationLimitReachedModalAction","useCallback","programRelationshipLimits","relationship_limits","traineeRelationshipLimit","enable_trainee_relationship_limit","trainee_relationship_limit","programRegistrationTraineeGuideLimitModal","registration_trainee_guide_limit_modal","programRelationships","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","groupLoadingState","setGroupLoadingState","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","prev","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","revalidateGoals","settings","useSettings","getProfileImage","useProfileImage","membershipTraineeGoals","isValidatingRelationships","isValidatingMatches","isProgramAvailable","isRoleAvailable","isTraineeRelationshipLimitSet","isGuideRelationshipLimitSet","enable_guide_relationship_limit","guideRelationshipLimit","guide_relationship_limit","isLimitModalOpen","loadingMessages","loadingResources","connectWithGuide","userPicture","renderGuide","_t","_u","_v","_w","_x","_y","_z","goalsSource","g","isMatched","matched","matchGoals","profile_card","matched_on_goals_label","getFormattedProgramFields","spotsLeft","relationshipCount","image","profileVideo","organizationFieldsToShow","getVisibleProfileFields","profile_fields","fields","toString","location","country","profileBio","bio","bio_title","isProfileBioEnabled","personal_details","enable_bio","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","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","cardSx","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","min","max","errorMessage","limitNotMet","Boolean","limitExceeded","offered","sought","Stack","orientation","textSpacing","heading","open_matching","title_guide","traineeSingular","trainee","title_trainee","lineHeight","select_number_of_goals","avatarSx","GoalCategoriesView","slugs","handleGoalsSubmit","FormHelperText","ProgramSkillsPage","groupValues","setGroupValues","useContext","Groups","skillType","isGroup","validationSettings","config","hard_skills_validation","soft_skills_validation","maxSkillsErrorMessage","maximum_selections_exceeded","number","skillOptions","flatMap","relationshipSkills","groupFormSkills","hardSkillSlugs","softSkillSlugs","membershipSkills","items","soft_skill_label","hard_skill_label","existingSkillsOfDifferentType","groupData","existingSkillsOfOppositeTypeSlugs","preheader","roleSingular","guideAvatar","traineeAvatar","placeholder","maxErrorMessage","ProgramPreviewPage","showPublishedModal","setShowPublishedModal","useDispatch","Image","userImage","profileFieldsData","question_heading","save_changes_button_label","isOpen","align","alt","ProgramMatchesPage","matchingLoading","setMatchingLoading","selectedProfileId","setSelectedProfileId","showMatchedModal","setShowMatchedModal","selectedMatch","setSelectedMatch","matchesV2","isLoadingMatchesV2","useMatchesV2","isRelationshipLimitModalOpen","endAdornment","skip_button_label","empty_state_title","rolePluralized","pluralized","imageSrc","empty_state_description","matchImage","_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","_ea","_fa","_ga","_ha","relationshipSpotsLeft","matchText","match_percentage","matchPercentage","toFixed","matchSkills","score","parseFloat","traineeProfile","handleMatching","fit","force","mainAvatar","secondaryAvatar"],"sourceRoot":""}