{"version":3,"file":"static/js/app-cfe54c77_8217c1b762f20f4bbfc1.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramManageGuideMobilePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramManageGuidePage/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/pages/Programs/ProgramsListPage/index.tsx"],"sourcesContent":["import { IMembership, Program } from '@guider-global/shared-types';\nimport { Paper, Divider, Typography, Skeleton } from '@mui/material';\nimport { FC } from 'react';\nimport {\n Control,\n FieldErrors,\n SubmitHandler,\n UseFormHandleSubmit,\n FieldValues,\n} from 'react-hook-form';\n\nimport { IMembershipForm } from 'store/slices/formsSlice';\n\nimport { FlatPageHeader } from 'components/Page/FlatPageHeader';\nimport ProgramManageGuideForm from 'forms/ProgramManageGuideForm';\nimport { ProgramManageGuidePageRole } from '../ProgramManageGuidePage';\n\nexport interface ProgramManageGuideMobilePageProps {\n title: string | undefined;\n pageSubtitle: string;\n programName: string;\n profileTypeHeading: string;\n\n control: Control;\n errors: FieldErrors;\n onSubmit: SubmitHandler;\n program?: Program;\n handleSubmit: UseFormHandleSubmit;\n guideMembership?: IMembership;\n role: ProgramManageGuidePageRole;\n profilePublishHeading: string | undefined;\n profilePublishDescription: string | undefined;\n discardChangesButtonLabel: string | undefined;\n updateProfileButtonLabel: string | undefined;\n profilePendingHeading: string;\n profilePendingDescription: string;\n goalCategories: { label?: string | undefined; value: string }[];\n loading: boolean;\n isValid: boolean;\n isDirty: boolean;\n}\n\nconst ProgramManageGuideMobilePage: FC = ({\n title,\n pageSubtitle,\n programName,\n profileTypeHeading,\n control,\n errors,\n onSubmit,\n program,\n handleSubmit,\n loading,\n guideMembership,\n profilePublishHeading,\n profilePublishDescription,\n discardChangesButtonLabel,\n updateProfileButtonLabel,\n profilePendingHeading,\n profilePendingDescription,\n isValid,\n isDirty,\n role,\n goalCategories,\n}) => {\n return (\n <>\n \n \n \n {programName}\n \n {profileTypeHeading}\n \n {guideMembership ? (\n \n ) : (\n <>\n \n \n \n \n )}\n \n \n );\n};\n\nexport default ProgramManageGuideMobilePage;\n","// external\nimport {\n AppBar,\n Box,\n Button,\n Paper,\n Skeleton,\n Toolbar,\n Typography,\n useScrollTrigger,\n useTheme,\n} from '@mui/material';\nimport { useEffect, useMemo } from 'react';\nimport {\n Control,\n FieldErrors,\n FieldValues,\n SubmitHandler,\n useForm,\n} from 'react-hook-form';\nimport { useNavigate, useParams } from 'react-router-dom';\n\n// internal\nimport { areArraysEqual } from 'utils';\n\n// components\nimport { PageHeader, PageWrapper } from 'components';\nimport ProgramManageGuideMobilePage from '../ProgramManageGuideMobilePage';\n\n// forms\nimport ProgramManageGuideForm from 'forms/ProgramManageGuideForm';\n\n// store\nimport { useAppDispatch } from 'store/hooks';\nimport { hideNavbar, showAppAlert, showNavbar } from 'store/slices/appSlice';\n\n// hooks\nimport {\n useCustomFields,\n useLocalization,\n useMemberships,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n ISkill,\n} from '@guider-global/shared-types';\nimport { IMembershipForm } from 'store/slices/formsSlice';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useSanityOrganization,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { interpolate } from 'functions';\nimport { ArrowBack } from '@mui/icons-material';\n\nexport interface BaseReactHookFormComponentProps {\n control: Control;\n errors: FieldErrors;\n}\n\nexport type ProgramManageGuidePageRole = 'guide' | 'trainee';\n\nexport const ProgramManageGuidePage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const { palette, transitions } = useTheme();\n\n useEffect(() => {\n dispatch(hideNavbar(true));\n\n return () => {\n dispatch(showNavbar(true));\n };\n }, [dispatch]);\n\n const scrollTrigger = useScrollTrigger({\n disableHysteresis: true,\n threshold: 0,\n });\n\n const isMobile = useMobileMediaQuery();\n const {\n memberships,\n hasResultsMemberships,\n reqMemberships,\n isLoadingMemberships,\n } = useMemberships({\n getSilently: true,\n });\n const { reqCustomFields, isLoadingCustomFields } = useCustomFields({});\n\n const organizationSlug = getSubDomain();\n\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const discardChangesButtonLabel =\n baseLanguage?.globals?.common?.discard_changes_button_label;\n\n const { getOrganization } = useSanityOrganization({\n getSilently: true,\n organizationSlug: organizationSlug,\n localeCode: 'en_GB',\n });\n\n const organization = getOrganization();\n\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profileId = profile?.id ?? '';\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: ProgramManageGuidePageRole;\n }>();\n const isGuide = role === 'guide';\n\n const {\n relationships: getRelationships,\n isLoadingRelationships,\n reqRelationships,\n } = useRelationships({});\n const relationships = getRelationships();\n const relationship = relationships?.find(\n (relationship) =>\n !relationship.isConcluded &&\n relationship.programSlug === programSlug &&\n relationship.profileId === profileId,\n );\n\n const guideMembership = useMemo(\n () =>\n memberships().find(\n (membership) =>\n membership.role === 'guide' && membership.programSlug === programSlug,\n ),\n [memberships, programSlug],\n );\n const guideMembershipId = guideMembership?.id;\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const skillsConfig = useMemo(() => program?.registration?.skills, [program]);\n\n const skillsOptions = useMemo(\n () => skillsConfig?.options?.map((skill) => skill.id.current) ?? [],\n [skillsConfig],\n );\n\n const 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 value: goalCategory.goal_category_slug?.current,\n }));\n\n const membershipProgramFields = useMemo(\n () => (guideMembership?.programFields as ICustomField[]) || [],\n [guideMembership],\n );\n\n const defaultFormValues = useMemo(() => {\n const programSkills = (guideMembership?.skills as Partial[]) ?? [];\n const initialGoalCategories = guideMembership?.goalCategories?.map(\n (goalCategory) => goalCategory.fieldSlug,\n );\n\n return {\n goalCategorySlugs: initialGoalCategories,\n title: relationship?.title ?? '',\n description: relationship?.description ?? '',\n ...(programSkills.length !== 0 && {\n skills: programSkills\n .map((skill) => skill.fieldSlug)\n .filter(\n (skillValue) => skillValue && skillsOptions.includes(skillValue),\n ),\n }),\n ...Object.fromEntries(\n membershipProgramFields.map((customField) => [\n customField.fieldSlug,\n customField.value,\n ]),\n ),\n } as FieldValues;\n }, [\n guideMembership?.skills,\n guideMembership?.goalCategories,\n relationship?.description,\n relationship?.title,\n skillsOptions,\n membershipProgramFields,\n ]);\n\n const {\n handleSubmit,\n control,\n formState: { errors, isValid, isDirty },\n reset,\n } = useForm({\n mode: 'onChange',\n defaultValues: defaultFormValues,\n });\n\n useEffect(() => {\n if (relationship) {\n reset(defaultFormValues);\n }\n }, [relationship, defaultFormValues, reset]);\n\n const isMissingGuideMembership = hasResultsMemberships() && !guideMembership;\n useEffect(() => {\n if (isMissingGuideMembership) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isMissingGuideMembership, navigate, programSlug]);\n\n useEffect(() => {\n if (!isGuide) {\n navigate(`/programs/${programSlug}`);\n }\n }, [isGuide, navigate, programSlug]);\n\n if (isMissingGuideMembership) {\n return <>;\n }\n\n if (!program || !role) {\n return <>;\n }\n\n const registrationQuestions =\n program?.registration?.registration_questions?.filter(\n (registrationQuestion) =>\n [role, 'both'].includes(registrationQuestion.audience),\n );\n\n const isGroupProgram =\n program.program_details?.program_variation === EProgramVariation.Group;\n const programType = program.program_details?.program_type;\n const programName = program.metadata.program_name;\n\n const programTypeText =\n program?.program_details?.program_type?.program_type_text;\n const programRegistrationGuide =\n programTypeText?.variations?.individual?.registration?.registration_guide;\n const membershipPending =\n programRegistrationGuide?.registration_guide_membership_pending;\n const guideSingular = programTypeText?.common?.guide?.singular;\n const traineeSingular = programTypeText?.common?.trainee?.singular;\n\n const onSubmit: SubmitHandler = async (data) => {\n if (!guideMembershipId) {\n console.error('Failed to submit. No `guideMembershipId` provided.');\n return;\n }\n\n let newCustomFieldIds: string[] = [];\n\n const { isPublished, ...restData } = data;\n\n const {\n title,\n description,\n skills,\n goalCategorySlugs,\n ...newCustomFields\n } = restData;\n\n if (Object.keys(newCustomFields).length !== 0) {\n let customFieldsPostData: ICustomField[] = [];\n\n await Promise.all(\n Object.entries(newCustomFields).map(\n async ([newCustomFieldSlug, newCustomFieldValue]) => {\n const oldMembershipProgramField = membershipProgramFields.find(\n (membershipProgramField) =>\n membershipProgramField.fieldSlug === newCustomFieldSlug,\n );\n const oldValue = oldMembershipProgramField?.value;\n\n const isNew = !oldValue;\n\n if (!isNew) {\n let hasValueChanged = false;\n\n const fieldId = oldMembershipProgramField.id;\n const fieldType = oldMembershipProgramField.fieldType;\n\n const newValue = newCustomFieldValue;\n\n if (fieldType === 'multi-select') {\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n hasValueChanged = !areArraysEqual(newValue, oldValue);\n }\n } else {\n hasValueChanged = oldValue !== newValue;\n }\n\n if (!hasValueChanged) {\n return;\n }\n\n return await reqCustomFields({\n method: 'PATCH',\n url: `/customfields/${fieldId}`,\n data: {\n value: newValue,\n fieldType,\n },\n });\n } else {\n const currentRegistrationQuestion = registrationQuestions?.find(\n (registrationQuestion) =>\n registrationQuestion.id.current === newCustomFieldSlug,\n );\n\n return customFieldsPostData.push({\n fieldSlug: newCustomFieldSlug,\n organizationSlug,\n fieldType: currentRegistrationQuestion?.type,\n value: newCustomFieldValue,\n profileId,\n programSlug,\n } as ICustomField);\n }\n },\n ),\n );\n\n if (customFieldsPostData?.length !== 0) {\n const { data: customFieldsResponseData } = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: customFieldsPostData,\n });\n\n if (customFieldsResponseData) {\n newCustomFieldIds = customFieldsResponseData.map(\n (customField) => customField.id,\n );\n }\n\n await reqCustomFields({ url: '/customfields' });\n }\n }\n\n let newRelationshipId: string | undefined;\n\n if (isGroupProgram && isGuide) {\n if (!relationship) {\n const { data: relationships } = await reqRelationships({\n method: 'POST',\n url: '/relationships',\n // TODO Fix Types\n // @ts-ignore\n data: {\n guideProfiles: [profileId],\n isConcluded: false,\n programSlug,\n organizationSlug,\n programTypeSlug: programType?.metadata?.id?.current,\n programVariationTypeSlug: EProgramVariation.Group,\n profileId,\n title,\n description,\n },\n });\n\n if (relationships) {\n const [newRelationship] = relationships;\n newRelationshipId = newRelationship.id;\n }\n } else {\n await reqRelationships({\n method: 'PATCH',\n url: `/relationships/${relationship.id}`,\n data: {\n title,\n description,\n },\n });\n }\n }\n\n const updateMembershipData: Partial & {\n goalCategorySlugs: string[];\n skillSlugs: string[];\n } = {\n role: 'guide',\n goalCategorySlugs: goalCategorySlugs as string[],\n isPublished: !relationship && isGroupProgram ? true : !!isPublished,\n programSlug,\n skillSlugs: data.skills ?? [],\n ...(newCustomFieldIds && {\n programFields: [\n ...membershipProgramFields.map((field) => field.id),\n ...newCustomFieldIds,\n ],\n }),\n };\n\n await reqMemberships({\n method: 'PATCH',\n url: `/memberships/${guideMembershipId}`,\n data: updateMembershipData,\n });\n\n await Promise.all([\n reqMemberships({ url: '/memberships' }),\n reqRelationships({ url: '/relationships' }),\n ]);\n\n if (isGroupProgram && isGuide) {\n // created new group\n if (newRelationshipId) {\n navigate(`/relationships/${newRelationshipId}`);\n }\n // updated existing group\n else if (relationship) {\n navigate(`/relationships/${relationship.id}`);\n }\n } else {\n dispatch(\n showAppAlert({\n severity: 'success',\n message: 'Profile updated successfully',\n timeout: 5000,\n }),\n );\n\n navigate('/dashboard');\n }\n };\n\n // Base language Derivations\n const {\n title,\n subtitle,\n profile: sanityBaseLanguageProgramsProfile,\n profile_published_boolean_label: profilePublishedBooleanLabel,\n profile_published_boolean_description: profilePublishedBooleanDescription,\n update_profile_button_label: updateProfileButtonLabel,\n } = baseLanguage?.programs?.manage_guide_profile ?? {};\n const profileTypeHeading = isGuide\n ? `${guideSingular} ${sanityBaseLanguageProgramsProfile}`\n : `${traineeSingular} ${sanityBaseLanguageProgramsProfile}`;\n\n const pageSubtitle = interpolate(\n subtitle ?? '',\n {\n program_name: programName ?? '',\n },\n 'Manage your profile',\n );\n if (isMobile)\n return (\n \n );\n\n return (\n <>\n \n \n }\n fullWidth={false}\n disabled={isLoadingRelationships()}\n onClick={() => navigate(-1)}\n sx={{\n color: palette.default.text.primary,\n }}\n >\n {baseLanguage?.globals?.common?.go_back_button_label}\n \n \n \n \n \n \n ({\n py: 4,\n px: 3,\n borderTop: `8px solid ${theme.palette.secondary.main}`,\n })}\n >\n {programName}\n \n {profileTypeHeading}\n \n {guideMembership ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n","// external\nimport { useAuth } from '@guider-global/auth-hooks';\nimport { ThemeProvider, useTheme } from '@mui/material';\n\n// hooks\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useOrganization,\n useSanityBaseLanguage,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\n\nimport {\n useLocalization,\n useMemberships,\n useMixpanelEvents,\n useProfiles,\n useTrackEvent,\n} from 'hooks';\nimport { ProgramListContainer } from 'containers/Programs';\nimport { deepMerge } from 'utils';\nimport { AlertBox, ButtonStackItem, theme } from '@guider-global/ui';\nimport { useState } from 'react';\nimport { FilterPageView } from 'views';\nimport { EProgramVariation, ICustomField } from '@guider-global/shared-types';\n\nexport const ProgramsListPage = () => {\n const [value, setValue] = useState('all');\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n // Styles\n\n const organizationTheme = useTheme();\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n // Base Language\n const { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n // Derivations\n\n const {\n title: programsListTitle,\n subtitle: programsListSubtitle,\n all_programs_label,\n cohort_programs_label,\n group_programs_label,\n empty_state,\n } = baseLanguage.programs?.programs_list ?? {};\n\n // Profile\n const { getProfiles } = useProfiles({});\n const [profile] = getProfiles();\n const profileOrganizationFields =\n profile?.organizationFields as ICustomField[];\n\n // Org\n\n const { organization } = useOrganization({ organizationSlug });\n const openMatchingEnabled =\n organization?.open_matching.enable_open_matching ?? false;\n\n // Auth\n const auth = useAuth({ waitForAuthentication: true });\n\n // Memberships\n const { memberships: getMemberships } = useMemberships({});\n const memberships = getMemberships();\n\n // Programs\n\n const { getAuthorizedPrograms } = useSanityOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n const programs = getAuthorizedPrograms(\n profileOrganizationFields,\n memberships,\n );\n\n const availableProgramsToFilter = [\n 'all',\n openMatchingEnabled ? 'open' : undefined,\n ...new Set(\n programs.map((program) => program.program_details?.program_variation),\n ),\n ].filter(Boolean);\n\n useTrackEvent({\n track: {\n eventKey: 'program-list-visited',\n eventParams: {\n organization: { organizationSlug },\n programList: { organizationSlug },\n },\n },\n for: organizationSlug,\n if: auth.isAuthorized,\n });\n\n useMixpanelEvents({ navigationEventName: 'Programs' });\n\n function getFilterButtonText(variation?: string) {\n switch (variation) {\n case 'all': {\n return all_programs_label;\n }\n case 'open': {\n return 'On-going';\n }\n case EProgramVariation.Individual: {\n return cohort_programs_label;\n }\n case EProgramVariation.Group: {\n return group_programs_label;\n }\n default:\n break;\n }\n }\n\n const hasMultipleProgramVariations = availableProgramsToFilter.length > 2;\n\n return (\n \n {\n return {\n key: `${index}-filter-button`,\n variant: value === variation ? 'contained' : 'outlined',\n label: getFilterButtonText(variation),\n color: 'info',\n onClick: () => setValue(variation ?? 'all'),\n sx: {\n borderRadius: '20px',\n width: 'fit-content',\n px: { xs: 3, md: 5 },\n mb: { xs: 2, md: 0 },\n },\n } as ButtonStackItem;\n }),\n ]}\n >\n {availableProgramsToFilter.length === 0 ? (\n \n ) : (\n \n )}\n \n \n );\n};\n"],"names":["title","pageSubtitle","programName","profileTypeHeading","control","errors","onSubmit","program","handleSubmit","loading","guideMembership","profilePublishHeading","profilePublishDescription","discardChangesButtonLabel","updateProfileButtonLabel","profilePendingHeading","profilePendingDescription","isValid","isDirty","role","goalCategories","FlatPageHeader","header","subheader","Paper","sx","px","Divider","mb","Typography","variant","color","ProgramManageGuideForm","Skeleton","height","transform","mt","ProgramManageGuidePage","dispatch","navigate","palette","transitions","useTheme","useEffect","scrollTrigger","useScrollTrigger","disableHysteresis","threshold","isMobile","memberships","hasResultsMemberships","reqMemberships","isLoadingMemberships","getSilently","reqCustomFields","isLoadingCustomFields","organizationSlug","getSubDomain","localeCode","baseLanguage","useBaseLanguage","globals","common","discard_changes_button_label","getOrganization","useSanityOrganization","organization","getProfiles","profile","profileId","id","programSlug","isGuide","relationships","getRelationships","isLoadingRelationships","reqRelationships","relationship","find","isConcluded","useMemo","membership","guideMembershipId","getProgram","useSanityOrganizationPrograms","skillsConfig","_a","registration","skills","skillsOptions","_b","options","map","skill","current","customGoalCategories","goals","custom_goal_categories","length","goal_categories","categories","goalCategory","label","goal_category_name","value","goal_category_slug","membershipProgramFields","programFields","defaultFormValues","_c","_d","programSkills","initialGoalCategories","fieldSlug","goalCategorySlugs","description","filter","skillValue","includes","Object","fromEntries","customField","formState","reset","mode","defaultValues","isMissingGuideMembership","registrationQuestions","registration_questions","registrationQuestion","audience","isGroupProgram","program_details","program_variation","EProgramVariation","programType","program_type","metadata","program_name","programTypeText","program_type_text","programRegistrationGuide","variations","individual","registration_guide","membershipPending","registration_guide_membership_pending","guideSingular","guide","singular","traineeSingular","trainee","data","_e","console","error","newCustomFieldIds","isPublished","newCustomFields","keys","customFieldsPostData","Promise","all","entries","newCustomFieldSlug","newCustomFieldValue","oldMembershipProgramField","membershipProgramField","oldValue","currentRegistrationQuestion","push","fieldType","type","hasValueChanged","fieldId","newValue","Array","isArray","method","url","customFieldsResponseData","newRelationshipId","guideProfiles","programTypeSlug","programVariationTypeSlug","newRelationship","updateMembershipData","skillSlugs","field","severity","message","timeout","subtitle","sanityBaseLanguageProgramsProfile","profile_published_boolean_label","profilePublishedBooleanLabel","profile_published_boolean_description","profilePublishedBooleanDescription","update_profile_button_label","programs","manage_guide_profile","AppBar","elevation","backgroundColor","transition","duration","standard","easing","easeInOut","Toolbar","Button","startIcon","ArrowBack","fullWidth","disabled","onClick","default","text","primary","go_back_button_label","py","Box","display","flexFlow","width","maxWidth","theme","borderTop","secondary","main","ProgramsListPage","setValue","useState","organizationTheme","combinedPalette","getBaseLanguage","useSanityBaseLanguage","programsListTitle","programsListSubtitle","all_programs_label","cohort_programs_label","group_programs_label","empty_state","programs_list","profileOrganizationFields","organizationFields","useOrganization","openMatchingEnabled","open_matching","enable_open_matching","auth","useAuth","waitForAuthentication","getMemberships","getAuthorizedPrograms","availableProgramsToFilter","Set","Boolean","getFilterButtonText","variation","track","eventKey","eventParams","programList","for","if","isAuthorized","navigationEventName","hasMultipleProgramVariations","subtitles","fontSize","displayButtons","buttons","index","key","borderRadius","xs","md","p","iconVariant"],"sourceRoot":""}