{"version":3,"file":"static/js/app-cfe54c77_e5cbe15107ad93af2f19.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 useOrganization,\n useOrganizationPrograms,\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 { organization } = useOrganization({\n organizationSlug,\n localeCode,\n });\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 } = 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 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: 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 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 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","hasResultsMemberships","reqMemberships","isLoadingMemberships","getSilently","reqCustomFields","isLoadingCustomFields","organizationSlug","getSubDomain","localeCode","baseLanguage","useBaseLanguage","globals","common","discard_changes_button_label","organization","useOrganization","getProfiles","profile","profileId","id","programSlug","isGuide","relationships","getRelationships","isLoadingRelationships","reqRelationships","relationship","find","isConcluded","useMemo","membership","guideMembershipId","getProgram","useOrganizationPrograms","skillsConfig","_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","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","_f","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","profiles","useProfiles","at","profileOrganizationFields","organizationFields","openMatchingEnabled","open_matching","enable_open_matching","auth","useAuth","waitForAuthentication","useMemberships","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":""}