{"version":3,"file":"static/js/app-cfe54c77_5ef0c95ff238ea9cc522.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 { useLocalization, useMobileMediaQuery } 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 useOrganization,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { interpolate } from 'functions';\nimport { ArrowBack } from '@mui/icons-material';\nimport {\n useMemberships,\n useProfiles,\n useRelationships,\n useCustomFields,\n} from '@guider-global/front-end-hooks';\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 reqMemberships,\n isLoadingMemberships,\n hasMembershipsResults,\n isMutatingMemberships,\n membershipsRevalidate,\n } = useMemberships({});\n const {\n reqCustomFields,\n isLoadingCustomFields,\n isMutatingCustomFields,\n customFieldsRevalidate,\n } = 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 { organization } = useOrganization({\n organizationSlug,\n localeCode,\n });\n\n const { profile } = useProfiles({});\n\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,\n isLoadingRelationships,\n reqRelationships,\n isMutatingRelationships,\n relationshipsRevalidate,\n } = useRelationships({});\n\n const isLoading =\n isLoadingCustomFields || isLoadingMemberships || isLoadingRelationships;\n const isMutating =\n isMutatingCustomFields || isMutatingMemberships || isMutatingRelationships;\n\n const relationship = relationships?.find(\n (relationship) =>\n !relationship.isConcluded &&\n relationship.programSlug === programSlug &&\n relationship.profileId === profileId,\n );\n\n const guideMembership = memberships?.find(\n (membership) =>\n membership.role === 'guide' && membership.programSlug === programSlug,\n );\n\n const guideMembershipId = guideMembership?.id;\n\n const { getProgram } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\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 =\n selectedGoalSource?.map((goalCategory) => ({\n label: goalCategory.goal_category_name,\n value: goalCategory.goal_category_slug?.current,\n })) ?? [];\n\n const defaultFormValues = useMemo(() => {\n const membershipProgramFields =\n (guideMembership?.programFields as ICustomField[]) ?? [];\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 }, [guideMembership, relationship, skillsOptions]);\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 (\n Object.keys(defaultFormValues).length !== 0 &&\n !isLoading &&\n !isMutating\n ) {\n reset(defaultFormValues);\n }\n }, [defaultFormValues, reset, isLoading, isMutating]);\n\n const isMissingGuideMembership = hasMembershipsResults && !guideMembership;\n\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 membershipProgramFields =\n guideMembership?.programFields as ICustomField[];\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\n const oldValue = oldMembershipProgramField?.value;\n\n const isNew = typeof oldValue === 'undefined';\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 customFieldsResponseData = await reqCustomFields({\n method: 'POST',\n url: '/customfields',\n data: [...customFieldsPostData],\n });\n\n if (customFieldsResponseData) {\n newCustomFieldIds = [];\n for (const customField of customFieldsResponseData.data) {\n newCustomFieldIds.push(customField.id);\n }\n }\n\n customFieldsRevalidate();\n }\n }\n let newRelationshipId: string | undefined;\n\n if (isGroupProgram && isGuide) {\n if (!relationship) {\n const { data: relationships } = await reqRelationships({\n method: 'PUT',\n url: '/relationships',\n data: {\n guideProfiles: [profileId],\n isConcluded: false,\n programSlug,\n organizationSlug,\n programTypeSlug: programType?.metadata?.id?.current,\n programVariationTypeSlug: EProgramVariation.Group,\n profileId,\n title,\n description,\n },\n });\n\n if (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: isGroupProgram\n ? guideMembership?.isPublished ?? true\n : !!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 membershipsRevalidate();\n relationshipsRevalidate();\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 useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\n\nimport { useLocalization, useMixpanelEvents, useTrackEvent } 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';\nimport { useMemberships, useProfiles } from '@guider-global/front-end-hooks';\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 { baseLanguage } = useBaseLanguage({ localeCode });\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 { profiles } = useProfiles({});\n const profile = profiles?.at(0);\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 } = useMemberships({});\n\n // Programs\n\n const { getAuthorizedPrograms } = useOrganizationPrograms({\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","reqMemberships","isLoadingMemberships","hasMembershipsResults","isMutatingMemberships","membershipsRevalidate","useMemberships","reqCustomFields","isLoadingCustomFields","isMutatingCustomFields","customFieldsRevalidate","useCustomFields","organizationSlug","getSubDomain","localeCode","baseLanguage","useBaseLanguage","globals","common","discard_changes_button_label","organization","useOrganization","profile","useProfiles","profileId","id","programSlug","isGuide","relationships","isLoadingRelationships","reqRelationships","isMutatingRelationships","relationshipsRevalidate","useRelationships","isLoading","isMutating","relationship","find","isConcluded","membership","guideMembershipId","getProgram","useOrganizationPrograms","skillsConfig","useMemo","_a","registration","skills","skillsOptions","_b","options","map","skill","current","customGoalCategories","goals","custom_goal_categories","selectedGoalSource","length","goal_categories","categories","goalCategory","label","goal_category_name","value","goal_category_slug","defaultFormValues","_c","_d","_e","membershipProgramFields","programFields","programSkills","initialGoalCategories","fieldSlug","goalCategorySlugs","description","filter","skillValue","includes","Object","fromEntries","customField","formState","reset","mode","defaultValues","keys","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","_f","console","error","newCustomFieldIds","isPublished","restData","newCustomFields","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","profiles","at","profileOrganizationFields","organizationFields","openMatchingEnabled","open_matching","enable_open_matching","auth","useAuth","waitForAuthentication","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":""}