{"version":3,"file":"static/js/app-cfe54c77_5eeaec0bf1fcee122eee.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 useMemberships,\n useMobileMediaQuery,\n useProfiles,\n useRelationships,\n} from 'hooks';\n\n// types\nimport {\n EProgramVariation,\n ICustomField,\n IMembership,\n ISkill,\n} from '@guider-global/shared-types';\nimport { IMembershipForm } from 'store/slices/formsSlice';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useSanityBaseLanguage,\n useSanityOrganization,\n useSanityOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { interpolate } from 'functions';\nimport { ArrowBack } from '@mui/icons-material';\nimport { IconType } from 'react-icons/lib';\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 { getBaseLanguage } = useSanityBaseLanguage({});\n const baseLanguage = getBaseLanguage();\n\n const discardChangesButtonLabel =\n baseLanguage.globals?.common?.discard_changes_button_label;\n\n const organizationSlug = getSubDomain();\n\n const { getOrganization } = useSanityOrganization({\n getSilently: true,\n organizationSlug: organizationSlug,\n localeCode: 'en_GB',\n });\n\n const organization = getOrganization();\n\n const { getProfiles } = useProfiles({ getSilently: true });\n const [profile] = getProfiles();\n const profileId = profile?.id ?? '';\n\n const { programSlug = '', role } = useParams<{\n programSlug: string;\n role: ProgramManageGuidePageRole;\n }>();\n const isGuide = role === 'guide';\n\n const {\n relationships: getRelationships,\n isLoadingRelationships,\n reqRelationships,\n } = useRelationships({});\n const relationships = getRelationships();\n const relationship = relationships?.find(\n (relationship) =>\n !relationship.isConcluded &&\n relationship.programSlug === programSlug &&\n relationship.profileId === profileId,\n );\n\n const guideMembership = useMemo(\n () =>\n memberships().find(\n (membership) =>\n membership.role === 'guide' && membership.programSlug === programSlug,\n ),\n [memberships, programSlug],\n );\n const guideMembershipId = guideMembership?.id;\n\n const { getProgram } = useSanityOrganizationPrograms({});\n const program = getProgram(programSlug);\n\n const skillsConfig = useMemo(() => program?.registration?.skills, [program]);\n\n const skillsOptions = useMemo(\n () => skillsConfig?.options?.map((skill) => skill.id.current) ?? [],\n [skillsConfig],\n );\n\n const 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 value: goalCategory.goal_category_name,\n slug: 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","getBaseLanguage","useSanityBaseLanguage","baseLanguage","globals","common","discard_changes_button_label","organizationSlug","getSubDomain","getOrganization","useSanityOrganization","localeCode","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","value","goal_category_name","slug","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","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","label","borderRadius","xs","md","p","iconVariant"],"sourceRoot":""}