{"version":3,"file":"static/js/app-d6f00331_8dff15447efcbb1f25d9.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/apps/front-end/src/containers/Settings/ReviewContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/OTPSurveyContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/SurveyModalsContext/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/DashboardWrapper/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/NotificationHighlightsContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/SelectAMatchContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/NotificationsContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/HeroSectionContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/NotificationModalContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/OnboardingProgramContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/ScheduleSessionContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/notificationCardContainer/NotificationBubbleDateLabel/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/notificationCardContainer/parseNotificationMetaData/schema.ts","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/notificationCardContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/notificationCardContainer/parseNotificationMetaData/index.ts","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/onboardingChecklistContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/ProgressLeaderboardModalContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/progressLeaderboardContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/DashboardResourcesContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/GroupProgramMembershipsContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/IndividualProgramMembershipsContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/ProgramMembershipsContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/dashboard/OpenMatchingProfileContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/PostRelationshipSurveyModalContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/PostSessionSurveyModalContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/ThankYouSurveyModalContainer/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/containers/Surveys/index.tsx","file:////home/runner/work/platform/platform/apps/front-end/src/context/theme.tsx"],"sourcesContent":["import { getSubDomain } from '@guider-global/front-end-utils';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { IReview } from '@guider-global/shared-types';\nimport { Stack, Text, theme, TextStack, Switch } from '@guider-global/ui';\nimport { Star, Visibility, VisibilityOff } from '@mui/icons-material';\nimport { Box, CircularProgress, useTheme } from '@mui/material';\n\nimport { format } from 'date-fns';\nimport { useLocalization, useReviews } from 'hooks';\nimport { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { showAppAlert } from 'store/slices/appSlice';\nimport { deepMerge } from 'utils';\n\ninterface ReviewContainerProps {\n review: IReview;\n}\n\nexport function ReviewContainer({ review }: ReviewContainerProps) {\n // State\n const [approved, setApproved] = useState(review.isApproved ?? false);\n\n // Hooks\n const organizationTheme = useTheme();\n const palette = deepMerge(theme.appTheme.palette, organizationTheme.palette);\n const dispatch = useDispatch();\n\n // Base Language\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n const reviewsText = baseLanguage?.settings?.reviews;\n\n // Reviews\n const { reqReviews, isLoadingReviews } = useReviews({});\n\n async function handleApproval() {\n if (!review) return;\n setApproved(!approved);\n try {\n await reqReviews({\n method: 'PATCH',\n url: `/reviews/${review.otpSurveyId}`,\n data: {\n isApproved: !approved,\n },\n });\n } catch (err: unknown) {\n setApproved(approved);\n dispatch(\n showAppAlert({\n severity: 'error',\n message: 'Error updating review',\n timeout: 3000,\n }),\n );\n }\n }\n\n return (\n \n \n \n {Array.from({ length: review.score }, () => (\n \n ))}\n \n \n \n handleApproval()}\n disabled={isLoadingReviews}\n />\n \n {approved ? (\n \n ) : (\n \n )}\n \n {isLoadingReviews && (\n \n )}\n \n \n \n \n );\n}\n","import { useSanityOrganizationPrograms } from '@guider-global/sanity-hooks';\nimport { SanitySettings, TOTPSurvey } from '@guider-global/shared-types';\n\nimport { OTPSurveyForm } from 'forms';\nimport { interpolate } from 'functions';\nimport { useOTPSurveys } from 'hooks/useOTPSurveys';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { SurveyCardView, SurveyThankYouView } from 'views';\n\ntype OTPSurveyContainerProps = {\n survey: TOTPSurvey;\n settings: SanitySettings | undefined;\n};\n\nexport function OTPSurveyContainer({\n survey,\n settings,\n}: OTPSurveyContainerProps) {\n const [surveySubmitted, setSurveySubmitted] = useState(false);\n const [searchParams] = useSearchParams();\n const localeCode = searchParams.get('locale') ?? 'en_GB';\n const time = searchParams.get('time');\n\n const { reqOTPSurveys } = useOTPSurveys({});\n const { getProgram } = useSanityOrganizationPrograms({\n getSilently: false,\n localeCode,\n });\n const program = getProgram(survey?.programSlug);\n const programType = program?.program_details?.program_type;\n const programTypeVerb = programType?.program_type_text.common?.verb ?? '';\n\n const handleSessionLog = useCallback(async () => {\n await reqOTPSurveys({\n method: 'PATCH',\n url: `/otp/surveys/${survey.id}?userId=${survey.user}&time=${time}`,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!survey.oneClick) return;\n handleSessionLog();\n }, [handleSessionLog, survey.oneClick]);\n\n const surveyProps = useMemo(() => {\n switch (survey.type) {\n case 'guide-feedback': {\n const typeSettings = settings?.guider_surveys?.guide_feedback_survey;\n const thankYouSettings = typeSettings?.thank_you_state;\n const { metaData } = survey;\n\n const title = typeSettings?.title;\n const lastName = metaData.guideLastName;\n const firstName = metaData.guideFirstName;\n const roleSingular =\n program?.program_details?.program_type?.program_type_text.common\n ?.guide?.singular;\n const programTypeNoun =\n program?.program_details?.program_type?.program_type_text.common\n ?.noun;\n\n return {\n title,\n firstName,\n lastName,\n thankYouSettings,\n roleSingular,\n programTypeNoun,\n };\n }\n case 'goals-feedback': {\n const typeSettings = settings?.guider_surveys?.goals_survey;\n const thankYouSettings = typeSettings?.thank_you_state;\n const { metaData } = survey;\n\n const title = typeSettings?.title;\n if (metaData.role === 'trainee') {\n const lastName = metaData.guideLastName;\n const firstName = metaData.guideFirstName;\n const roleSingular =\n program?.program_details?.program_type?.program_type_text.common\n ?.guide?.singular;\n\n return { title, firstName, lastName, thankYouSettings, roleSingular };\n } else {\n const lastName = metaData.traineeLastName;\n const firstName = metaData.traineeFirstName;\n const roleSingular =\n program?.program_details?.program_type?.program_type_text.common\n ?.trainee?.singular;\n\n return { title, firstName, lastName, thankYouSettings, roleSingular };\n }\n }\n case 'skills-feedback': {\n const typeSettings = settings?.guider_surveys?.skills_survey;\n const thankYouSettings = typeSettings?.thank_you_state;\n const { metaData } = survey;\n const title = typeSettings?.title;\n\n if (metaData.role === 'trainee') {\n const lastName = metaData.guideLastName;\n const firstName = metaData.guideFirstName;\n const roleSingular =\n program?.program_details?.program_type?.program_type_text.common\n ?.guide?.singular;\n\n return { title, firstName, lastName, thankYouSettings, roleSingular };\n } else {\n const lastName = metaData.traineeLastName;\n const firstName = metaData.traineeFirstName;\n const roleSingular =\n program?.program_details?.program_type?.program_type_text.common\n ?.trainee?.singular;\n\n return { title, firstName, lastName, thankYouSettings, roleSingular };\n }\n }\n case 'session-log': {\n const typeSettings = settings?.guider_surveys?.log_session_survey;\n const thankYouSettings = typeSettings?.thank_you_state;\n return { thankYouSettings };\n }\n default:\n break;\n }\n }, [\n program?.program_details?.program_type?.program_type_text.common,\n settings,\n survey,\n ]);\n\n if (surveySubmitted || survey.oneClick) {\n return (\n \n );\n }\n\n return (\n \n setSurveySubmitted(true)}\n />\n \n );\n}\n","import {\n createContext,\n PropsWithChildren,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { TSurveyType } from '@guider-global/shared-types';\n\nexport interface SurveyModalsContextProps {\n surveyType?: TSurveyType;\n setSurveyType: (surveyType: TSurveyType) => void;\n isSurveySubmitted: boolean;\n setIsSurveySubmitted: (isSurveySubmitted: boolean) => void;\n resetState: () => void;\n}\n\nexport const SurveyModalsContext = createContext({\n surveyType: undefined,\n setSurveyType: () => {\n throw new Error('setSurveyType is not implemented');\n },\n isSurveySubmitted: false,\n setIsSurveySubmitted: () => {\n throw new Error('setIsSurveySubmitted is not implemented');\n },\n resetState: () => {\n throw new Error('resetState is not implemented');\n },\n});\n\nexport function SurveyModalsProvider({\n children,\n}: Readonly) {\n const [surveyType, setSurveyType] = useState();\n const [isSurveySubmitted, setIsSurveySubmitted] = useState(false);\n\n const resetState = useCallback(() => {\n setSurveyType(undefined);\n setIsSurveySubmitted(false);\n }, [setSurveyType, setIsSurveySubmitted]);\n\n const value = useMemo(\n () => ({\n surveyType,\n setSurveyType,\n isSurveySubmitted,\n setIsSurveySubmitted,\n resetState,\n }),\n [\n surveyType,\n setSurveyType,\n isSurveySubmitted,\n setIsSurveySubmitted,\n resetState,\n ],\n );\n\n return (\n \n {children}\n \n );\n}\n","import { PropsWithChildren, createContext, useMemo } from 'react';\nimport { useLocalization, useSessions } from 'hooks';\nimport { compareDesc } from 'date-fns';\nimport {\n EProgramVariation,\n IMembership,\n IProfile,\n IRelationship,\n Program,\n} from '@guider-global/shared-types';\nimport { theme } from '@guider-global/ui';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { Stack, ThemeProvider, useTheme } from '@mui/system';\nimport { deepMerge } from 'utils';\nimport { Background } from 'components';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useMemberships,\n useProfiles,\n useRelationships,\n} from '@guider-global/front-end-hooks';\n\nexport interface DashboardNotificationsContextProps {\n membership?: IMembership;\n relationship?: IRelationship;\n profile?: IProfile;\n hasMemberships: boolean;\n hasRelationships: boolean;\n hasSessions: boolean;\n hasAttendedSessions: boolean;\n hasCompletedOnboarding: boolean;\n program?: Program;\n programSlug: string;\n programName: string;\n relationshipId: string;\n sessionId: string;\n isGuide: boolean;\n isGroupProgram: boolean;\n isHiddenGroup: boolean;\n isActiveGroup: boolean;\n isEmptyGroup: boolean;\n isLoading: boolean;\n hasOpenMatchingRelationship: boolean;\n}\n\nexport const DashboardNotificationsContext =\n createContext({\n membership: undefined,\n relationship: undefined,\n hasMemberships: false,\n hasRelationships: false,\n hasSessions: false,\n hasAttendedSessions: false,\n hasCompletedOnboarding: false,\n program: undefined,\n programSlug: '',\n programName: '',\n relationshipId: '',\n sessionId: '',\n isGuide: false,\n isGroupProgram: false,\n isHiddenGroup: false,\n isActiveGroup: false,\n isEmptyGroup: false,\n isLoading: false,\n hasOpenMatchingRelationship: false,\n });\n\nexport function DashboardWrapper({ children }: Readonly) {\n const organizationSlug = getSubDomain();\n const { programs } = useOrganizationPrograms({ organizationSlug });\n const organizationTheme = useTheme();\n\n const { profiles, isLoadingProfiles } = useProfiles({});\n const profile = profiles?.at(0);\n\n const { localeCode } = useLocalization(organizationSlug);\n const { isLoadingBaseLanguage } = useBaseLanguage({ localeCode });\n\n const { memberships, isLoadingMemberships } = useMemberships({});\n\n const membership = memberships?.at(0);\n const hasMemberships = (memberships && memberships.length > 0) || false;\n const programSlug = membership?.programSlug ?? '';\n const program = programs.find(\n (program) => program.metadata.id.current === programSlug,\n );\n const programName = program?.metadata.program_name ?? '';\n\n const isGuide = membership?.role === 'guide';\n\n const { relationships, isLoadingRelationships } = useRelationships({});\n\n const activeRelationships = relationships?.filter(\n (relationship) => !relationship.isConcluded,\n );\n const [relationship] = activeRelationships ?? [];\n const relationshipId = relationship?.id ?? '';\n const hasRelationships =\n (activeRelationships && activeRelationships?.length > 0) || false;\n\n const hasOpenMatchingRelationship =\n hasRelationships && relationship.programSlug === undefined;\n\n const isGroupProgram =\n program?.program_details?.program_variation === EProgramVariation.Group;\n const isHiddenGroup = membership?.isPublished === false;\n const isActiveGroup = isHiddenGroup; // if group is hidden, it means it bas been activated by the guide\n const isEmptyGroup = relationship?.traineeProfiles?.length === 0;\n\n const { sessions = [], isLoadingSessions } = useSessions({});\n const session = sessions.at(0);\n const hasSessions = sessions.length > 0;\n const attendedSessions = sessions.filter(\n (session) => compareDesc(new Date(session.end), new Date()) === 1,\n );\n const hasAttendedSessions = attendedSessions.length > 0;\n const sessionId = session?.id ?? '';\n\n const hasCompletedOnboarding = hasAttendedSessions; // if user has attended a session, it means they have completed onboarding\n\n const isLoading =\n isLoadingMemberships ||\n isLoadingRelationships ||\n isLoadingSessions ||\n isLoadingProfiles ||\n isLoadingBaseLanguage;\n\n const value = useMemo(\n () => ({\n membership,\n relationship,\n hasMemberships,\n hasRelationships,\n hasSessions,\n hasAttendedSessions,\n hasCompletedOnboarding,\n program,\n programSlug,\n programName,\n relationshipId,\n sessionId,\n isGuide,\n isGroupProgram,\n isHiddenGroup,\n isActiveGroup,\n isEmptyGroup,\n isLoading,\n hasOpenMatchingRelationship,\n profile,\n }),\n [\n membership,\n relationship,\n hasMemberships,\n hasRelationships,\n hasSessions,\n hasAttendedSessions,\n hasCompletedOnboarding,\n program,\n programSlug,\n programName,\n relationshipId,\n sessionId,\n isGuide,\n isGroupProgram,\n isHiddenGroup,\n isActiveGroup,\n isEmptyGroup,\n isLoading,\n hasOpenMatchingRelationship,\n profile,\n ],\n );\n\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n return (\n \n \n \n \n {children}\n \n \n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { ButtonStack, Image, Stack, TextStack } from '@guider-global/ui';\nimport NoNotifications from 'assets/empty_notifications.svg';\nimport { useLocalization } from 'hooks';\nimport { useNotifications } from 'hooks/useNotifications';\nimport { useNavigate } from 'react-router-dom';\nimport { NotificationCardContainer } from '../notificationCardContainer';\n\nexport function NotificationHighlightsContainer() {\n const navigate = useNavigate();\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { notifications } = useNotifications({\n params: { pageLimit: 3, page: 1, latest: true },\n options: { keepPreviousData: true },\n });\n\n if (notifications?.length === 0) {\n return (\n \n \n \n navigate('/relationships'),\n color: 'info',\n sx: { px: 3 },\n },\n {\n key: 'empty-notifications-btn-2',\n variant: 'outlined',\n label:\n baseLanguage?.dashboard?.notifications?.empty_state\n ?.explore_learning_hub,\n onClick: () => navigate('/learn'),\n color: 'info',\n sx: {\n px: 3,\n },\n },\n ]}\n />\n \n );\n }\n\n return notifications?.map((notification) => (\n \n ));\n}\n","import { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n useSettings,\n} from '@guider-global/sanity-hooks';\nimport { interpolate } from 'functions';\nimport { useLocalization } from 'hooks';\nimport { useContext, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { SelectAMatchView } from 'views';\nimport { DashboardNotificationsContext } from '../DashboardWrapper';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useUsers } from '@guider-global/front-end-hooks';\n\nexport function SelectAMatchContainer() {\n const { getProfileImage } = useProfileImage();\n const {\n programName,\n programSlug,\n isGuide,\n isGroupProgram,\n hasRelationships,\n relationshipId,\n membership,\n program,\n relationship,\n profile,\n hasOpenMatchingRelationship,\n } = useContext(DashboardNotificationsContext);\n\n const openMatchingGuide =\n profile?.roles?.includes('guide') && !hasOpenMatchingRelationship;\n const openMatchingTrainee =\n profile?.roles?.includes('trainee') && !hasOpenMatchingRelationship;\n\n // User\n const { users } = useUsers({});\n const user = users?.at(0);\n\n // Default image\n const { settings } = useSettings({\n localeCode: 'en_GB',\n });\n\n const defaultAvatar =\n buildSanityImageUrl({\n source: settings?.static_media?.relationships?.default_user_avatar ?? '',\n }) ?? '';\n\n // Own image\n\n const userImage =\n getProfileImage({\n profilePicture: profile?.picture,\n userPicture: user?.picture,\n }) ?? '';\n\n const maxSpots = program?.relationships?.group_settings?.max_trainees ?? 0;\n const spotsOccupied = relationship?.traineeProfiles?.length ?? 0;\n const spotsLeft = maxSpots - spotsOccupied;\n\n const navigate = useNavigate();\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const viewProps = useMemo(() => {\n let title: string | undefined,\n description: string | undefined,\n primaryButtonLabel: string | undefined,\n secondaryButtonLabel: string | undefined,\n primaryButtonOnClick = () => {},\n secondaryButtonOnClick = () => {};\n\n if (isGuide || openMatchingGuide) {\n primaryButtonLabel =\n baseLanguage?.globals?.common?.edit_profile_button_label;\n primaryButtonOnClick = () =>\n openMatchingGuide\n ? navigate(`/profile/bio`)\n : navigate(`/programs/${programSlug}/manage/guide`);\n secondaryButtonLabel = baseLanguage?.globals?.common?.visit_learning_hub;\n secondaryButtonOnClick = () => navigate(`/learn`);\n if (!isGroupProgram) {\n if (membership?.requiresApproval) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_pending_approval?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_pending_approval?.description;\n } else if (!membership?.isPublished && !openMatchingGuide) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_hidden?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_hidden?.description;\n } else {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_published?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.guide_membership_published?.description;\n }\n } else {\n if (!hasRelationships) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_create_group?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_create_group?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_create_group?.create_group_button_label;\n primaryButtonOnClick = () =>\n navigate(`/programs/${programSlug}/manage/guide`);\n } else if (membership?.requiresApproval) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_group_membership_pending_approval?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_group_membership_pending_approval?.description;\n } else if (!membership?.isPublished) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_group_membership_hidden?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_group_membership_hidden?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_group_membership_hidden?.publish_profile_button_label;\n primaryButtonOnClick = () =>\n navigate(`/programs/${programSlug}/manage/guide`);\n } else {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_activate_group?.title;\n description = interpolate(\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_activate_group?.description,\n {\n groupMembers: spotsOccupied?.toString(),\n spotsLeft: spotsLeft?.toString(),\n maxSpots: maxSpots?.toString(),\n },\n );\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_activate_group?.view_group_button_label;\n primaryButtonOnClick = () =>\n navigate(`/relationships/${relationshipId}`);\n secondaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_activate_group?.edit_group_profile_button_label;\n secondaryButtonOnClick = () =>\n navigate(`/programs/${programSlug}/manage/guide`);\n }\n }\n } else {\n if (!isGroupProgram) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.trainee_select_a_match?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.trainee_select_a_match?.description;\n primaryButtonLabel =\n baseLanguage?.globals?.common?.find_a_match_button_label;\n primaryButtonOnClick = () =>\n openMatchingTrainee\n ? navigate(`/profile/matches/guide`)\n : navigate(`/programs/${programSlug}/join/trainee`);\n } else {\n if (!hasRelationships) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_select_a_group?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_select_a_group?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_select_a_group?.select_a_group_button_label;\n primaryButtonOnClick = () =>\n navigate(`/programs/${programSlug}/join/trainee`);\n } else {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.view_group_button_label;\n primaryButtonOnClick = () =>\n navigate(`/relationships/${relationshipId}`);\n }\n }\n }\n return {\n title,\n description,\n primaryButtonLabel,\n primaryButtonOnClick,\n secondaryButtonLabel,\n secondaryButtonOnClick,\n };\n }, [\n isGuide,\n baseLanguage,\n isGroupProgram,\n navigate,\n programSlug,\n membership,\n spotsOccupied,\n spotsLeft,\n maxSpots,\n relationshipId,\n hasRelationships,\n ]);\n\n return (\n \n );\n}\n","import { useContext } from 'react';\nimport { DashboardNotificationsContext } from '../DashboardWrapper';\nimport { NotificationHighlightsContainer } from '../NotificationHighlightsContainer';\nimport { Skeleton } from '@mui/material';\nimport { SelectAMatchContainer } from '../SelectAMatchContainer';\nimport { ScheduleSessionContainer } from '../ScheduleSessionContainer';\nimport { OnboardingProgramContainer } from '../OnboardingProgramContainer';\n\nexport function NotificationsContainer() {\n const {\n hasMemberships,\n hasRelationships,\n hasSessions,\n hasAttendedSessions,\n hasCompletedOnboarding,\n isLoading,\n isGroupProgram,\n isActiveGroup,\n hasOpenMatchingRelationship,\n profile,\n } = useContext(DashboardNotificationsContext);\n\n const hasOpenMatchingRole = profile?.roles?.length !== 0;\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (hasCompletedOnboarding) {\n return ;\n }\n\n if (!hasMemberships && !hasOpenMatchingRelationship && !hasOpenMatchingRole) {\n return ;\n }\n\n if (!hasRelationships || (isGroupProgram && !isActiveGroup)) {\n return ;\n }\n\n if (!hasSessions || (isGroupProgram && !isActiveGroup && !hasSessions)) {\n return ;\n }\n\n if (hasCompletedOnboarding || !hasAttendedSessions) {\n return ;\n }\n}\n","import { useContext, useState } from 'react';\nimport { DashboardNotificationsContext } from '../DashboardWrapper';\nimport { DashboardCard, Image, Stack } from '@guider-global/ui';\nimport { OnboardingChecklistContainer } from '../onboardingChecklistContainer';\nimport { NotificationModalContainer } from '../NotificationModalContainer';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport Arrow from 'assets/arrow-icon.svg';\nimport { NotificationsContainer } from '../NotificationsContainer';\nimport { ProgressLeaderboardContainer } from '../progressLeaderboardContainer';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useLocalization } from 'hooks';\n\nexport function HeroSectionContainer() {\n const [showNotificationModal, setShowNotificationModal] =\n useState(false);\n\n // BaseLanguage\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { hasSessions, hasAttendedSessions, hasCompletedOnboarding } =\n useContext(DashboardNotificationsContext);\n\n const showAllNotifications =\n hasCompletedOnboarding ||\n (!hasCompletedOnboarding && hasSessions && !hasAttendedSessions);\n\n const openNotificationModal = () => {\n setShowNotificationModal(true);\n };\n\n const closeNotificationModal = () => {\n setShowNotificationModal(false);\n };\n\n return (\n \n ,\n onClick: openNotificationModal,\n }\n : undefined\n }\n >\n \n \n \n {hasCompletedOnboarding ? (\n \n ) : (\n \n )}\n \n {showNotificationModal && (\n \n )}\n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { INotification } from '@guider-global/shared-types';\nimport { Loading } from '@guider-global/ui';\nimport { useLocalization, useNotifications } from 'hooks';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { NotificationModalView } from 'views/dashboard/NotificationModalView';\nimport { NotificationCardContainer } from '../notificationCardContainer';\n\nexport type NotificationModalContainerProps = {\n onClose: () => void;\n};\n\nexport function NotificationModalContainer({\n onClose,\n}: Readonly) {\n const pageLimit = 10;\n const loaderRef = useRef(null);\n const [page, setPage] = useState(1);\n const [allNotifications, setAllNotifications] = useState([]);\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { notifications, isLoadingNotifications, reqNotifications } =\n useNotifications({\n options: { keepPreviousData: true },\n params: { pageLimit, page },\n });\n\n useEffect(() => {\n if (notifications && notifications.length > 0) {\n setAllNotifications((prevNotifications) => [\n ...prevNotifications,\n ...notifications.filter(\n (notifications) =>\n !prevNotifications.some(\n (notification) => notification.id === notifications.id,\n ),\n ),\n ]);\n }\n }, [notifications]);\n\n const shouldLoadNextPage = notifications?.length === pageLimit;\n\n const [viewedNotificationIds, setViewedNotificationIds] = useState(\n [],\n );\n\n function handleNotificationVisible(notification: INotification) {\n setViewedNotificationIds((prevViewedNotificationIds) => {\n if (\n notification.status === 'unread' &&\n !prevViewedNotificationIds.includes(notification.id)\n ) {\n return [...prevViewedNotificationIds, notification.id];\n }\n\n return prevViewedNotificationIds;\n });\n }\n\n const markViewedNotificationsRead = useCallback(async () => {\n if (viewedNotificationIds.length === 0) {\n return;\n }\n\n await reqNotifications({\n method: 'PATCH',\n url: '/notifications',\n params: { id: viewedNotificationIds },\n data: { status: 'read' },\n });\n\n setViewedNotificationIds([]);\n }, [reqNotifications, viewedNotificationIds]);\n\n function handleClose() {\n markViewedNotificationsRead();\n if (onClose) {\n onClose();\n }\n }\n\n useEffect(() => {\n const options: IntersectionObserverInit = {\n root: null,\n rootMargin: '0px',\n threshold: 1.0,\n };\n\n const handleObserver: IntersectionObserverCallback = (entries) => {\n const entry = entries[0];\n if (\n entry.isIntersecting &&\n shouldLoadNextPage &&\n !isLoadingNotifications\n ) {\n setPage((prevPage) => prevPage + 1);\n }\n };\n\n const observer = new IntersectionObserver(handleObserver, options);\n if (loaderRef.current) {\n observer.observe(loaderRef.current);\n }\n\n return () => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n if (loaderRef.current) {\n observer.disconnect();\n }\n };\n }, [isLoadingNotifications, shouldLoadNextPage]);\n\n const headingText = baseLanguage?.dashboard?.notifications?.modal?.title;\n const closeButtonLabel =\n baseLanguage?.globals?.common?.close_button_label ?? '';\n\n return (\n \n {allNotifications?.map((notification) => (\n handleNotificationVisible(notification)}\n />\n ))}\n
\n \n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { EProgramVariation, ICustomField } from '@guider-global/shared-types';\nimport { MainColors } from '@guider-global/ui';\nimport { OnboardingProgram, OnboardingProgramView } from 'views';\nimport { useMemberships, useProfiles } from '@guider-global/front-end-hooks';\n\nexport function OnboardingProgramContainer() {\n // Profiles\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n const profileOrganizationFields =\n (profile?.organizationFields as ICustomField[] | undefined) ?? [];\n\n // Memberships\n const { memberships } = useMemberships({});\n\n // Programs\n const organizationSlug = getSubDomain();\n\n const { getAuthorizedPrograms } = useOrganizationPrograms({\n organizationSlug,\n });\n const authorizedPrograms = getAuthorizedPrograms(\n profileOrganizationFields,\n memberships,\n );\n\n const ctaPrograms: OnboardingProgram[] = authorizedPrograms.map(\n (authorizedProgram) => {\n const name = authorizedProgram?.metadata?.program_name;\n const description =\n authorizedProgram.program_details?.program_description;\n const image = authorizedProgram?.program_details\n ? buildSanityImageUrl({\n source: authorizedProgram?.program_details?.program_image,\n width: 600,\n })\n : undefined;\n\n let joinAsMenteeButton;\n let joinAsMentorButton;\n\n if (\n authorizedProgram?.program_details?.program_variation ===\n EProgramVariation.Group\n ) {\n joinAsMenteeButton =\n authorizedProgram?.program_details?.program_type?.program_type_text\n ?.variations?.group?.registration?.registration_landing_page\n ?.trainee_cta_button_label;\n joinAsMentorButton =\n authorizedProgram?.program_details?.program_type?.program_type_text\n ?.variations?.group?.registration?.registration_landing_page\n ?.guide_cta_button_label;\n } else {\n joinAsMenteeButton =\n authorizedProgram?.program_details?.program_type?.program_type_text\n ?.variations?.individual?.registration?.registration_landing_page\n ?.trainee_cta_button_label;\n joinAsMentorButton =\n authorizedProgram?.program_details?.program_type?.program_type_text\n ?.variations?.individual?.registration?.registration_landing_page\n ?.guide_cta_button_label;\n }\n\n const programSlug = authorizedProgram?.metadata?.id?.current;\n const displayPreference =\n authorizedProgram?.program_details?.display_preference;\n const type =\n authorizedProgram?.program_details?.program_type?.program_type_text\n ?.common?.verb;\n\n let chipColor: MainColors;\n\n if (type === 'Mentoring') {\n chipColor = 'success';\n } else if (type === 'Coaching') {\n chipColor = 'info';\n } else {\n chipColor = 'primary';\n }\n\n return {\n name,\n description,\n image,\n type,\n displayPreference,\n programSlug,\n joinAsMenteeButton,\n joinAsMentorButton,\n chipColor,\n };\n },\n );\n\n return ;\n}\n","import { useContext, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { DashboardNotificationsContext } from '../DashboardWrapper';\nimport { ScheduleSessionView } from 'views';\nimport { useLocalization } from 'hooks';\nimport { getRecipients } from 'utils/getRelationshipRecipients';\nimport { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useUsers } from '@guider-global/front-end-hooks';\n\nexport function ScheduleSessionContainer() {\n const navigate = useNavigate();\n const { getProfileImage } = useProfileImage();\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n const {\n programName,\n relationshipId,\n isGuide,\n isGroupProgram,\n relationship,\n profile,\n } = useContext(DashboardNotificationsContext);\n\n // User\n const { users } = useUsers({});\n const user = users?.at(0);\n const userId = user?.id;\n\n // Get images\n const isUserGuide = relationship?.guideProfiles?.some(\n (profile) => profile.userId === userId,\n );\n\n const [otherPartyProfile] = getRecipients({\n role: isUserGuide ? 'guide' : 'trainee',\n relationship,\n userId,\n });\n\n const otherUserImage =\n getProfileImage({\n profilePicture: otherPartyProfile?.picture,\n userPicture: otherPartyProfile?.userPicture,\n }) ?? '';\n\n const userImage =\n getProfileImage({\n profilePicture: profile?.picture,\n userPicture: user?.picture,\n }) ?? '';\n\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const viewProps = useMemo(() => {\n let title,\n description,\n primaryButtonLabel,\n primaryButtonOnClick = () => {};\n\n if (isGroupProgram) {\n if (isGuide) {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_schedule_group_session?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_schedule_group_session?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.guide_schedule_group_session?.schedule_group_session_button_label;\n primaryButtonOnClick = () =>\n navigate(`/relationships/${relationshipId}/sessions/create`);\n } else {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.group_program\n ?.trainee_wait_for_session?.view_group_button_label;\n primaryButtonOnClick = () =>\n navigate(`/relationships/${relationshipId}`);\n }\n } else {\n title =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.schedule_a_session?.title;\n description =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.schedule_a_session?.description;\n primaryButtonLabel =\n baseLanguage?.dashboard?.onboarding?.steps?.individual_program\n ?.schedule_a_session?.schedule_a_session_button_label;\n primaryButtonOnClick = () =>\n navigate(`/relationships/${relationshipId}/sessions/create`);\n }\n\n return {\n title,\n description,\n primaryButtonLabel,\n primaryButtonOnClick,\n };\n }, [baseLanguage, isGroupProgram, isGuide, navigate, relationshipId]);\n\n return (\n \n );\n}\n","import { Text } from '@guider-global/ui';\nimport { format } from 'date-fns';\n\nexport type NotificationBubbleDateLabelProps = {\n show: boolean;\n date: string | Date;\n};\n\nexport function NotificationBubbleDateLabel({\n show = true,\n date,\n}: NotificationBubbleDateLabelProps) {\n const dayFormatted = format(new Date(date), 'dd');\n const monthFormatted = format(new Date(date), 'MMM');\n return show\n ? [\n ,\n ,\n ]\n : undefined;\n}\n","import { z } from 'zod';\n\nconst sessionResponseNotificationMetaDataSchema = z.object({\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n sessionName: z.string(),\n sessionLocation: z.string(),\n sessionDescription: z.string(),\n sessionStart: z.string(),\n sessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n});\n\nexport const notificationMetaDataSchema = z.discriminatedUnion('eventType', [\n z.object({\n eventType: z.literal('relationships-individual-unread-message'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n relationshipUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-schedule-session'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n createSessionUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-upcoming-session'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n sessionName: z.string(),\n sessionLocation: z.string(),\n sessionDescription: z.string(),\n sessionStart: z.string(),\n sessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-session-updated'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n sessionName: z.string(),\n sessionLocation: z.string(),\n sessionDescription: z.string(),\n sessionStart: z.string(),\n sessionEnd: z.string(),\n oldSessionName: z.string(),\n oldSessionLocation: z.string(),\n oldSessionDescription: z.string(),\n oldSessionStart: z.string(),\n oldSessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-session-deleted'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n oldSessionName: z.string(),\n oldSessionLocation: z.string(),\n oldSessionDescription: z.string(),\n oldSessionStart: z.string(),\n oldSessionEnd: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-relationship-created'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n relationshipUrl: z.string(),\n }),\n z.object({\n eventType: z.literal(\n 'relationships-individual-relationship-created-by-admin',\n ),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n relationshipUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-individual-relationship-concluded'),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n }),\n z.object({\n eventType: z.literal(\n 'relationships-individual-relationship-concluded-by-admin',\n ),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n }),\n z.object({\n eventType: z.literal(\n 'relationships-individual-relationship-shared-goal-updated',\n ),\n avatar: z.string().optional(),\n counterpartyFirstName: z.string(),\n counterpartyLastName: z.string(),\n goalCategory: z.string(),\n goalObjective: z.string(),\n manageGoalsUrl: z.string(),\n goalId: z.string().optional(),\n }),\n z\n .object({\n eventType: z.literal('relationships-individual-session-accepted'),\n })\n .merge(sessionResponseNotificationMetaDataSchema),\n z\n .object({\n eventType: z.literal(\n 'relationships-individual-session-tentatively-accepted',\n ),\n })\n .merge(sessionResponseNotificationMetaDataSchema),\n z\n .object({\n eventType: z.literal('relationships-individual-session-declined'),\n })\n .merge(sessionResponseNotificationMetaDataSchema),\n z.object({\n eventType: z.literal('relationships-group-unread-message'),\n avatar: z.string().optional(),\n groupName: z.string(),\n relationshipUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-group-schedule-session'),\n avatar: z.string().optional(),\n guideFirstName: z.string(),\n guideLastName: z.string(),\n groupName: z.string(),\n createSessionUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-group-session-deleted'),\n avatar: z.string().optional(),\n guideFirstName: z.string(),\n guideLastName: z.string(),\n groupName: z.string(),\n oldSessionName: z.string(),\n oldSessionLocation: z.string(),\n oldSessionDescription: z.string(),\n oldSessionStart: z.string(),\n oldSessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-group-session-updated'),\n avatar: z.string().optional(),\n guideFirstName: z.string(),\n guideLastName: z.string(),\n groupName: z.string(),\n sessionName: z.string(),\n sessionLocation: z.string(),\n sessionDescription: z.string(),\n sessionStart: z.string(),\n sessionEnd: z.string(),\n oldSessionName: z.string(),\n oldSessionLocation: z.string(),\n oldSessionDescription: z.string(),\n oldSessionStart: z.string(),\n oldSessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-group-upcoming-session'),\n avatar: z.string().optional(),\n guideFirstName: z.string(),\n guideLastName: z.string(),\n groupName: z.string(),\n sessionName: z.string(),\n sessionLocation: z.string(),\n sessionDescription: z.string(),\n sessionStart: z.string(),\n sessionEnd: z.string(),\n sessionUrl: z.string(),\n sessionId: z.string().optional(),\n }),\n z.object({\n eventType: z.literal('relationships-group-relationship-guide-concluded'),\n avatar: z.string().optional(),\n guideFirstName: z.string(),\n guideLastName: z.string(),\n groupName: z.string(),\n relationshipUrl: z.string(),\n }),\n z.object({\n eventType: z.literal('relationships-group-relationship-trainee-left'),\n avatar: z.string().optional(),\n traineeFirstName: z.string(),\n traineeLastName: z.string(),\n groupName: z.string(),\n relationshipUrl: z.string(),\n }),\n]);\n\nexport type KeyedNotificationMetaData = z.infer<\n typeof notificationMetaDataSchema\n>;\n","import { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport { useSettings as useAccountSettings } from '@guider-global/front-end-hooks';\nimport {\n getLanguageFromCMS,\n getSubDomain,\n getTimeFormat,\n} from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n useOrganization,\n useSanityOrganizationPrograms,\n useSettings,\n} from '@guider-global/sanity-hooks';\nimport { INotification } from '@guider-global/shared-types';\nimport {\n NotificationBubbleView,\n NotificationCardView,\n} from '@guider-global/ui';\nimport { useMediaQuery, useTheme } from '@mui/material';\nimport { format } from 'date-fns';\nimport { interpolate } from 'functions';\nimport { useLocalization } from 'hooks';\nimport { useEffect, useRef } from 'react';\nimport { getSessionDateAndDuration } from 'utils/getSessionDateAndDuration';\nimport { NotificationBubbleDateLabel } from './NotificationBubbleDateLabel';\nimport { parseNotificationMetaData } from './parseNotificationMetaData';\n\nexport type UsePictureParams = {\n pictureId: string;\n sasTokenApiPath?: string;\n containerName?: string;\n pictureUrl?: string;\n pictureBlobName?: string;\n};\nexport type NotificationCardContainerProps = {\n notification: INotification;\n onVisible?: () => void;\n};\n\nexport function NotificationCardContainer({\n notification,\n onVisible,\n}: Readonly) {\n const cardRef = useRef(null);\n\n // Sanity\n const { getProfileImage } = useProfileImage();\n const { getPrograms } = useSanityOrganizationPrograms({});\n const programs = getPrograms();\n\n const { settings } = useSettings({});\n\n const { settings: accountSettings } = useAccountSettings({\n options: { keepPreviousData: true },\n });\n const timezone = accountSettings?.at(0)?.timezone ?? 'Europe/London';\n\n const defaultAvatar = buildSanityImageUrl({\n source: settings?.static_media?.relationships?.default_user_avatar ?? '',\n });\n // BseLanguage\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n const formattedTime = getTimeFormat(baseLanguage?.time_format);\n\n // Parse MetaData\n const metaDataParseResult = parseNotificationMetaData(\n notification.eventType,\n notification.metaData,\n );\n const metaData = metaDataParseResult.success\n ? metaDataParseResult.data\n : undefined;\n useEffect(() => {\n if (metaDataParseResult.success) return;\n const { error } = metaDataParseResult;\n console.error('Failed to parse notificaiton metadata', {\n notification,\n error,\n });\n }, [metaDataParseResult, notification]);\n\n // Build Avatar\n function getAvatarParams(): UsePictureParams[] {\n if (!metaData?.avatar) return [];\n return [\n {\n pictureId: notification.id,\n sasTokenApiPath: '/admin/storage',\n containerName: 'pictures',\n pictureUrl: undefined,\n pictureBlobName: metaData.avatar,\n },\n ];\n }\n const avatarParams = getAvatarParams();\n\n const avatars: UsePictureParams[] = avatarParams.map((params) => {\n const { pictureId, sasTokenApiPath, containerName, pictureBlobName } =\n params;\n const blobPicture = pictureBlobName ? pictureBlobName : undefined;\n return {\n pictureId,\n blobPicture,\n sasTokenApiPath,\n containerName,\n pictureBlobName,\n };\n });\n const plainUrl = metaData?.avatar;\n const avatarSrc =\n avatars.map((avatar) => {\n const { pictureBlobName } = avatar;\n return getProfileImage({\n profilePicture: pictureBlobName,\n userPicture: plainUrl,\n });\n })[0] || defaultAvatar;\n\n // Organization\n\n const { organization } = useOrganization({\n organizationSlug,\n localeCode,\n });\n\n const goalCategories = organization?.goal_categories?.categories?.map(\n (goalCategory) => ({\n label: goalCategory.goal_category_name,\n slug: goalCategory.goal_category_slug.current,\n icon: goalCategory.goal_category_icon?.name,\n }),\n );\n\n // Common NotificationCard Props\n const programSlug = notification.programSlug;\n const program = programSlug\n ? programs.find((program) => program.metadata.id.current === programSlug)\n : undefined;\n const programName = program?.metadata.program_name;\n const programTypeCommon =\n program?.program_details?.program_type?.program_type_text?.common;\n const programTypeVerb = programTypeCommon?.verb ?? 'Mentoring';\n const programTypeNoun = programTypeCommon?.noun ?? 'Mentor';\n const unread = notification.status === 'unread';\n const date = notification.createdAt\n ? format(new Date(notification.createdAt), 'dd/MM/yy')\n : undefined;\n\n const commonProps = {\n cardRef,\n unread,\n date,\n caption: programName,\n };\n // MUI\n const theme = useTheme();\n const isMd = useMediaQuery(theme.breakpoints.up('md'));\n\n useEffect(() => {\n const options: IntersectionObserverInit = {\n root: null,\n threshold: 1,\n };\n const handleObserver: IntersectionObserverCallback = (entries) => {\n const entry = entries[0];\n\n if (entry.isIntersecting && onVisible) {\n onVisible();\n }\n };\n const observer = new IntersectionObserver(handleObserver, options);\n\n if (cardRef.current) {\n observer.observe(cardRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n // Render\n switch (metaData?.eventType) {\n case undefined: {\n return <>;\n }\n // TODO: Uncomment once 'relationships-individual-unread-message' is implemented\n // case 'relationships-individual-unread-message': {\n // const { counterpartyFirstName, counterpartyLastName, relationshipUrl } =\n // metaData;\n\n // return (\n // \n // );\n // }\n case 'relationships-individual-schedule-session': {\n const { counterpartyFirstName, counterpartyLastName, createSessionUrl } =\n metaData;\n\n return (\n \n );\n }\n case 'relationships-individual-upcoming-session': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n sessionName,\n sessionStart,\n sessionEnd,\n sessionUrl,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n linkLabel={baseLanguage?.globals?.sessions?.view_session ?? ''}\n body={getSessionDateAndDuration({\n sessionEnd,\n sessionStart,\n locale,\n timezone,\n formattedTime,\n })}\n linkHref={sessionUrl}\n />\n \n );\n }\n case 'relationships-individual-session-updated': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n sessionName,\n sessionStart,\n sessionEnd,\n oldSessionStart,\n oldSessionEnd,\n sessionUrl,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n linkLabel={baseLanguage?.globals?.sessions?.view_session ?? ''}\n body={getSessionDateAndDuration({\n sessionStart,\n sessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n strikethroughBody={getSessionDateAndDuration({\n sessionStart: oldSessionStart,\n sessionEnd: oldSessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n linkHref={sessionUrl}\n />\n \n );\n }\n case 'relationships-individual-session-deleted': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n oldSessionName,\n oldSessionStart,\n oldSessionEnd,\n } = metaData;\n\n return (\n \n \n }\n heading={oldSessionName}\n strikethroughBody={getSessionDateAndDuration({\n sessionStart: oldSessionStart,\n sessionEnd: oldSessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n />\n \n );\n }\n case 'relationships-individual-relationship-created': {\n const { counterpartyFirstName, counterpartyLastName, relationshipUrl } =\n metaData;\n\n return (\n \n );\n }\n case 'relationships-individual-relationship-created-by-admin': {\n const { counterpartyFirstName, counterpartyLastName, relationshipUrl } =\n metaData;\n\n return (\n \n );\n }\n case 'relationships-individual-relationship-concluded': {\n const { counterpartyFirstName, counterpartyLastName } = metaData;\n\n return (\n \n );\n }\n case 'relationships-individual-relationship-concluded-by-admin': {\n const { counterpartyFirstName, counterpartyLastName } = metaData;\n\n return (\n \n );\n }\n\n case 'relationships-individual-relationship-shared-goal-updated': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n goalCategory,\n goalObjective,\n manageGoalsUrl,\n } = metaData;\n\n const goalCategoryLabel = goalCategories?.find(\n (category) => category.slug === goalCategory,\n )?.label;\n\n return (\n \n \n \n );\n }\n // TODO: Uncomment once 'relationships-group-unread-message' is implemented\n // case 'relationships-group-unread-message': {\n // const { groupName, relationshipUrl } = metaData;\n\n // return (\n // \n // );\n // }\n case 'relationships-group-schedule-session': {\n const { guideFirstName, guideLastName, groupName, createSessionUrl } =\n metaData;\n\n return (\n \n );\n }\n case 'relationships-group-session-deleted': {\n const {\n guideFirstName,\n guideLastName,\n groupName,\n oldSessionName,\n oldSessionStart,\n oldSessionEnd,\n } = metaData;\n\n return (\n \n \n }\n heading={oldSessionName}\n strikethroughBody={getSessionDateAndDuration({\n sessionStart: oldSessionStart,\n sessionEnd: oldSessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n />\n \n );\n }\n case 'relationships-group-session-updated': {\n const {\n guideFirstName,\n guideLastName,\n groupName,\n sessionName,\n sessionStart,\n sessionEnd,\n oldSessionStart,\n oldSessionEnd,\n sessionUrl,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n linkLabel={baseLanguage?.globals?.sessions?.view_session}\n body={getSessionDateAndDuration({\n sessionStart,\n sessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n strikethroughBody={getSessionDateAndDuration({\n sessionStart: oldSessionStart,\n sessionEnd: oldSessionEnd,\n locale,\n timezone,\n formattedTime,\n })}\n linkHref={sessionUrl}\n />\n \n );\n }\n case 'relationships-group-upcoming-session': {\n const {\n guideFirstName,\n guideLastName,\n groupName,\n sessionName,\n sessionStart,\n sessionEnd,\n sessionUrl,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n linkLabel={baseLanguage?.globals?.sessions?.view_session}\n body={getSessionDateAndDuration({\n sessionEnd,\n sessionStart,\n locale,\n timezone,\n formattedTime,\n })}\n linkHref={sessionUrl}\n />\n \n );\n }\n case 'relationships-group-relationship-guide-concluded': {\n const { guideFirstName, guideLastName, groupName } = metaData;\n\n return (\n \n );\n }\n case 'relationships-group-relationship-trainee-left': {\n const { traineeFirstName, traineeLastName, groupName, relationshipUrl } =\n metaData;\n\n return (\n \n );\n }\n case 'relationships-individual-session-accepted': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n sessionName,\n sessionStart,\n sessionEnd,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n body={getSessionDateAndDuration({\n sessionEnd,\n sessionStart,\n locale,\n timezone,\n formattedTime,\n })}\n />\n \n );\n }\n case 'relationships-individual-session-tentatively-accepted': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n sessionName,\n sessionStart,\n sessionEnd,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n body={getSessionDateAndDuration({\n sessionEnd,\n sessionStart,\n locale,\n timezone,\n formattedTime,\n })}\n />\n \n );\n }\n case 'relationships-individual-session-declined': {\n const {\n counterpartyFirstName,\n counterpartyLastName,\n sessionName,\n sessionStart,\n sessionEnd,\n } = metaData;\n\n return (\n \n \n }\n heading={sessionName}\n body={getSessionDateAndDuration({\n sessionEnd,\n sessionStart,\n locale,\n timezone,\n formattedTime,\n })}\n />\n \n );\n }\n default: {\n return <>;\n }\n }\n}\n","import { INotification } from '@guider-global/shared-types';\n\nimport { SafeParseReturnType } from 'zod';\nimport {\n KeyedNotificationMetaData,\n notificationMetaDataSchema,\n} from './schema';\n\nexport type NotificationMetaDataRecord = {\n [k: string]: string | number | boolean | Date;\n};\n\nexport function parseNotificationMetaData(\n eventType: INotification['eventType'],\n notificationMetaData: INotification['metaData'],\n): SafeParseReturnType {\n const metaDataEntries = notificationMetaData.flatMap((metaDataObject) =>\n Object.entries(metaDataObject),\n );\n const metaDataRecord = Object.fromEntries(metaDataEntries);\n const metaDataParseResult = notificationMetaDataSchema.safeParse({\n eventType,\n ...metaDataRecord,\n });\n return metaDataParseResult;\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport { useBaseLanguage, useOrganization } from '@guider-global/sanity-hooks';\nimport { Skeleton } from '@mui/material';\nimport { useLocalization } from 'hooks';\nimport { useContext } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { OnboardingChecklistView } from 'views';\nimport { DashboardNotificationsContext } from '../DashboardWrapper';\n\nexport function OnboardingChecklistContainer() {\n const {\n hasMemberships,\n hasRelationships: contextHasRelationships,\n hasSessions,\n hasAttendedSessions,\n programSlug,\n relationshipId,\n sessionId,\n isGuide,\n isGroupProgram,\n isActiveGroup,\n isEmptyGroup,\n relationship,\n isLoading,\n profile,\n } = useContext(DashboardNotificationsContext);\n\n const hasOpenMatchingRole = profile?.roles?.length !== 0;\n\n const navigate = useNavigate();\n\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { organization } = useOrganization({ organizationSlug });\n\n const hideProgramItem =\n (organization?.open_matching?.enable_open_matching &&\n hasOpenMatchingRole) ??\n false;\n\n const isNotEmptyGroup = !isEmptyGroup;\n const isNotActiveGroup = !isActiveGroup;\n const hasRelationships =\n isGroupProgram && isGuide ? isNotEmptyGroup : contextHasRelationships;\n\n const percentageComplete = hideProgramItem ? 33 : 25;\n\n const programStep = !hideProgramItem\n ? [\n {\n key: 'join-program',\n label:\n baseLanguage?.dashboard?.onboarding?.progress_indicator?.steps\n ?.join_a_program_label,\n percentCompletion: 25,\n isChecked: hasMemberships,\n onClick: () => navigate('/programs'),\n isCurrent:\n !hasMemberships &&\n !hasRelationships &&\n !hasSessions &&\n !hasAttendedSessions,\n },\n ]\n : [];\n\n const steps = [\n {\n key: 'find-match',\n label:\n baseLanguage?.dashboard?.onboarding?.progress_indicator?.steps\n ?.find_a_match_label,\n percentCompletion: percentageComplete,\n isChecked: hasRelationships,\n onClick: isGuide\n ? undefined\n : () => navigate(`/programs/${programSlug}/join/trainee/choose`),\n isCurrent:\n hasMemberships &&\n (isGroupProgram && isGuide\n ? isNotActiveGroup // group guide remains at this step until group is activated\n : !hasRelationships) &&\n !hasSessions &&\n !hasAttendedSessions,\n },\n {\n key: 'schedule-session',\n label:\n baseLanguage?.dashboard?.onboarding?.progress_indicator?.steps\n ?.schedule_session_label,\n isChecked: hasSessions,\n percentCompletion: percentageComplete,\n onClick: () =>\n navigate(`/relationships/${relationshipId}/sessions/create`),\n isCurrent:\n hasMemberships &&\n (isGroupProgram && isGuide\n ? isActiveGroup // group guide can schedule a session once group is activated\n : hasRelationships) &&\n !hasSessions &&\n !hasAttendedSessions,\n },\n {\n key: 'attend-session',\n label:\n baseLanguage?.dashboard?.onboarding?.progress_indicator?.steps\n ?.attend_session_label,\n percentCompletion: percentageComplete,\n isChecked: hasAttendedSessions,\n onClick: () =>\n navigate(`/relationships/${relationshipId}/sessions/${sessionId}`),\n isCurrent:\n hasMemberships &&\n hasRelationships &&\n hasSessions &&\n !hasAttendedSessions,\n },\n ];\n\n if (isLoading) {\n return (\n \n );\n }\n\n return (\n \n );\n}\n","import { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n useSettings,\n} from '@guider-global/sanity-hooks';\nimport { KeyedProps } from '@guider-global/shared-types';\nimport { KeyStatProps, LeaderboardRow } from '@guider-global/ui';\nimport { useLeaderboardPositions, useLocalization } from 'hooks';\nimport { useState } from 'react';\nimport { ProgressLeaderboardModalView } from 'views';\n\nexport interface ProgressLeaderboardModalContainerProps {\n open: boolean;\n onClose?: (() => void) | undefined;\n keyStats: KeyedProps[];\n userContributions: number;\n showLeaderboard?: boolean;\n}\nconst PAGE_LIMIT = 10;\n\nexport function ProgressLeaderboardModalContainer({\n open,\n onClose,\n keyStats,\n userContributions,\n showLeaderboard,\n}: ProgressLeaderboardModalContainerProps) {\n const [page, setPage] = useState(1);\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n const { getProfileImage } = useProfileImage();\n const { settings } = useSettings({});\n const defaultAvatarSrc = buildSanityImageUrl({\n source: settings?.static_media?.relationships?.default_user_avatar ?? '',\n });\n const {\n leaderboardPositions = [],\n leaderboardMeta,\n isLoadingLeaderboardPositions,\n } = useLeaderboardPositions({\n params: {\n pageLimit: PAGE_LIMIT,\n page,\n enableCount: showLeaderboard,\n enableRank: true,\n },\n options: {\n revalidateOnMount: showLeaderboard,\n revalidateIfStale: showLeaderboard,\n revalidateOnFocus: showLeaderboard,\n revalidateOnReconnect: showLeaderboard,\n },\n });\n const rowCount = leaderboardMeta?.pagination?.isPaginated\n ? leaderboardMeta?.pagination?.pageCount\n : leaderboardPositions.length;\n\n const leaderboardRows: LeaderboardRow[] = leaderboardPositions?.map(\n ({ profilePicture, userPicture, rank, ...rest }, index) => ({\n ...rest,\n rank: rank ?? index,\n avatarSrc:\n getProfileImage({\n profilePicture,\n userPicture,\n }) ?? defaultAvatarSrc,\n }),\n );\n return (\n \n );\n}\n","import { ProgressLeaderboardCardView } from '../../../views';\n\nimport { useProfileImage } from '@guider-global/azure-storage-hooks';\nimport { useProfiles } from '@guider-global/front-end-hooks';\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n useOrganization,\n useSettings,\n} from '@guider-global/sanity-hooks';\nimport { LeaderboardRow } from '@guider-global/ui';\nimport { Skeleton } from '@mui/material';\nimport { useLeaderboardPositions, useLocalization } from 'hooks';\nimport { useState } from 'react';\nimport { ProgressLeaderboardModalContainer } from '../ProgressLeaderboardModalContainer';\n\nexport function ProgressLeaderboardContainer() {\n const [showModal, setShowModal] = useState(false);\n const organizationSlug = getSubDomain();\n\n const { organization } = useOrganization({\n organizationSlug,\n });\n\n const showLeaderboard = Boolean(organization?.dashboard_page?.leaderboard);\n const { settings } = useSettings({});\n const defaultAvatarSrc = buildSanityImageUrl({\n source: settings?.static_media?.relationships?.default_user_avatar ?? '',\n });\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const { getProfileImage } = useProfileImage();\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n\n const {\n leaderboardPositions: usersLeaderboardPositions = [],\n isLoadingLeaderboardPositions: isLoadingUsersLeaderboardPositions,\n } = useLeaderboardPositions({\n params: {\n profileId: profile?.id,\n pageLimit: 1,\n enableRank: showLeaderboard,\n enableCount: false,\n },\n options: {\n revalidateOnMount: Boolean(profile?.id),\n revalidateIfStale: Boolean(profile?.id),\n revalidateOnFocus: Boolean(profile?.id),\n revalidateOnReconnect: Boolean(profile?.id),\n },\n });\n const usersLeaderboardPosition = usersLeaderboardPositions?.at(0);\n\n const { leaderboardPositions = [], isLoadingLeaderboardPositions } =\n useLeaderboardPositions({\n params: {\n pageLimit: 3,\n enableCount: false,\n enableRank: true,\n },\n options: {\n revalidateOnMount: showLeaderboard,\n revalidateIfStale: showLeaderboard,\n revalidateOnFocus: showLeaderboard,\n revalidateOnReconnect: showLeaderboard,\n },\n });\n\n const leaderboardRows: LeaderboardRow[] = [\n ...leaderboardPositions,\n ...usersLeaderboardPositions,\n ]?.map(({ profilePicture, userPicture, rank, ...rest }, index) => ({\n ...rest,\n rank: rank ?? index,\n avatarSrc:\n getProfileImage({\n profilePicture,\n userPicture,\n }) ?? defaultAvatarSrc,\n }));\n\n const userPosition = () => {\n const existsInPositions = leaderboardPositions.findIndex(\n (position) => position.id === usersLeaderboardPosition?.id,\n );\n if (existsInPositions > -1) return existsInPositions;\n return leaderboardRows.length - 1;\n };\n\n function handleOpenModal() {\n setShowModal(true);\n }\n function handleCloseModal() {\n setShowModal(false);\n }\n\n const keyStats = [\n {\n key: 'sessions',\n label: baseLanguage?.globals?.sessions?.sessions ?? 'Sessions',\n value: usersLeaderboardPosition?.sessionCount ?? 0,\n },\n {\n key: 'relationships',\n label:\n baseLanguage?.globals?.relationships?.relationships ?? 'Relationships',\n value: usersLeaderboardPosition?.relationshipCount ?? 0,\n },\n {\n key: 'goals',\n label: baseLanguage?.globals?.goals?.goals ?? 'Goals',\n value: usersLeaderboardPosition?.goalCount ?? 0,\n },\n ];\n\n if (isLoadingUsersLeaderboardPositions || isLoadingLeaderboardPositions) {\n return (\n \n );\n }\n\n return (\n <>\n \n \n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n useOrganization,\n} from '@guider-global/sanity-hooks';\nimport { DashboardCard, ResourceCard, Stack, Image } from '@guider-global/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { useMemo } from 'react';\nimport Arrow from 'assets/arrow-icon.svg';\nimport { useLocalization } from 'hooks';\n\nexport function DashboardResourcesContainer() {\n //organization\n const organizationSlug = getSubDomain();\n const { organization } = useOrganization({\n organizationSlug,\n });\n const learningHubLayoutItems = organization?.learning_hub?.layout;\n const organizationTopResources = organization?.dashboard_page?.top_resources;\n\n //baseLanguage\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n const buttonLabels = baseLanguage?.dashboard?.resources?.content_type_actions;\n const resourceTypeLabels = baseLanguage?.learning_hub?.content_types;\n\n const navigate = useNavigate();\n\n const resources = useMemo(() => {\n if (\n organizationTopResources?.content_selection_type === 'custom' &&\n organizationTopResources?.content_selection\n ) {\n return organizationTopResources?.content_selection;\n } else {\n if (!learningHubLayoutItems) return [];\n return learningHubLayoutItems\n .flatMap((learningHubLayoutItem) => {\n if (learningHubLayoutItem._type === 'learningHubCallout') {\n return [];\n } else {\n return learningHubLayoutItem?.tile_group_content_group?.content\n ?.content_references;\n }\n })\n .sort(() => 0.5 - Math.random())\n .slice(0, 3);\n }\n }, [organizationTopResources, learningHubLayoutItems]);\n\n const resourcesData = useMemo(\n () =>\n resources.map((resource) => {\n const slug = resource.metadata.slug.current;\n const imageSrc = buildSanityImageUrl({\n source: resource?.content?.image?.asset,\n width: 800,\n });\n let onClick = () => navigate(`/learn/${slug}`);\n const title = resource?.content?.title ?? '...';\n const description = resource?.content?.excerpt;\n const resourceType = resource?.metadata?.type;\n let buttonLabel, mediaLabel;\n if (resourceType === 'article') {\n buttonLabel = buttonLabels?.read_article_button_label;\n mediaLabel = resourceTypeLabels?.article;\n }\n if (resourceType === 'audio') {\n buttonLabel = buttonLabels?.listen_to_audio_button_label;\n mediaLabel = resourceTypeLabels?.audio;\n }\n if (resourceType === 'link') {\n buttonLabel = buttonLabels?.visit_website_button_label;\n mediaLabel = resourceTypeLabels?.external_link;\n onClick = () =>\n window.open(\n resource?.content?.link,\n '_blank',\n 'noopener,noreferrer',\n );\n }\n if (resourceType === 'pdf') {\n buttonLabel = buttonLabels?.read_pdf_button_label;\n mediaLabel = resourceTypeLabels?.embedded_pdf;\n }\n if (resourceType === 'video') {\n buttonLabel = buttonLabels?.watch_video_button_label;\n mediaLabel = resource?.content?.video_duration\n ? `${resourceTypeLabels?.video} • ${resource?.content?.video_duration}`\n : resourceTypeLabels?.video;\n }\n return {\n slug,\n title,\n description,\n buttonLabel,\n mediaLabel,\n imageSrc,\n onClick,\n };\n }),\n [\n buttonLabels?.listen_to_audio_button_label,\n buttonLabels?.read_article_button_label,\n buttonLabels?.read_pdf_button_label,\n buttonLabels?.visit_website_button_label,\n buttonLabels?.watch_video_button_label,\n navigate,\n resourceTypeLabels?.article,\n resourceTypeLabels?.audio,\n resourceTypeLabels?.embedded_pdf,\n resourceTypeLabels?.external_link,\n resourceTypeLabels?.video,\n resources,\n ],\n );\n\n return (\n ,\n onClick: () => navigate('/learn'),\n }}\n >\n \n {resourcesData.map((resource) => (\n \n ))}\n \n \n );\n}\n","import {\n buildSanityImageUrl,\n useBaseLanguage,\n} from '@guider-global/sanity-hooks';\nimport { ISkill, Program } from '@guider-global/shared-types';\nimport { ProgramMembershipDetailsViewProps } from '@guider-global/ui';\nimport { format, isAfter } from 'date-fns';\nimport { useNavigate } from 'react-router-dom';\n\nimport {\n getFormattedProgramFields,\n getFormattedSkills,\n getLanguageFromCMS,\n getSubDomain,\n getTimeFormat,\n} from '@guider-global/front-end-utils';\nimport { useTheme } from '@mui/material';\nimport { formatInTimeZone, utcToZonedTime } from 'date-fns-tz';\nimport { interpolate } from 'functions';\nimport { useLocalization, useRelationships } from 'hooks';\nimport { useMemo } from 'react';\nimport {\n ProgramMembershipsCard,\n ProgramMembershipsGuideContent,\n ProgramMembershipsTraineeContent,\n} from 'views/dashboard/ProgramMembershipsCard';\nimport { ProgramMembershipEmptyTableViewProps } from '../../../views/dashboard/ProgramMembershipEmptyTableView';\nimport { IDashboardRelationshipsRow } from '../../../views/dashboard/ProgramMembershipTableView';\nimport { useMemberships, useProfiles } from '@guider-global/front-end-hooks';\n\nexport type GroupProgramMembershipsContainerProps = {\n program: Program;\n timezone: string;\n};\n\nexport function GroupProgramMembershipsContainer({\n program,\n timezone,\n}: GroupProgramMembershipsContainerProps) {\n const navigate = useNavigate();\n const { palette } = useTheme();\n\n // Sanity Base Language\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({\n localeCode,\n });\n const formattedTime = getTimeFormat(baseLanguage?.time_format);\n\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n const relationshipsBaseLanguage =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table;\n const membershipDetailsBaseLanguage =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.membership_details;\n const groupMembershipBaseLanguage =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.membership_details?.group_membership;\n\n const programTypeText =\n program.program_details?.program_type?.program_type_text.common;\n const editProfileButtonLabel =\n baseLanguage?.globals?.common?.edit_profile_button_label ?? '';\n\n // Membership Summaries\n const { programMemberships } = useMemberships({});\n\n // Profiles\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n\n // Relationship profiles\n\n const { relationships: getRelationships } = useRelationships({});\n const relationshipProfilesData = getRelationships();\n\n //----------PROGRAM DATA----------\n\n const programData = useMemo(() => {\n const guideMembership = programMemberships(\n program.metadata.id.current,\n 'guide',\n );\n\n const traineeMembership = programMemberships(\n program.metadata.id.current,\n 'trainee',\n );\n\n const programRelationshipProfiles = relationshipProfilesData.filter(\n (relationship) =>\n relationship.programSlug === program.metadata.id.current &&\n !relationship.isConcluded,\n );\n\n const guideRelationshipProfiles = programRelationshipProfiles.filter(\n (relationship) => {\n return relationship.guideProfiles?.find(\n (guideProfile) => guideProfile.id === profile?.id,\n );\n },\n );\n\n const traineeRelationshipProfiles = programRelationshipProfiles.filter(\n (relationship) => {\n return relationship.traineeProfiles?.find(\n (trainee) => trainee.id === profile?.id,\n );\n },\n );\n\n const traineeRelationshipLimitReached =\n (program.relationships.relationship_limits\n ?.enable_trainee_relationship_limit &&\n !!program.relationships?.relationship_limits\n .trainee_relationship_limit &&\n traineeRelationshipProfiles.length >=\n program.relationships?.relationship_limits\n .trainee_relationship_limit) ??\n false;\n\n const relationshipsTableHeaders = {\n name: relationshipsBaseLanguage?.table_headers?.group_name,\n numberOfSessions:\n relationshipsBaseLanguage?.table_headers?.number_of_sessions,\n nextSession: relationshipsBaseLanguage?.table_headers?.next_session,\n };\n\n const programAvatar = buildSanityImageUrl({\n source: program.program_details?.program_image.asset ?? '',\n width: 300,\n });\n\n const programCardTitle = program.metadata.program_name;\n\n return {\n programCardTitle,\n programAvatar,\n traineeMembership,\n traineeRelationshipProfiles,\n traineeRelationshipLimitReached,\n guideMembership,\n guideRelationshipProfiles,\n relationshipsTableHeaders,\n };\n }, [\n programMemberships,\n program.metadata.id,\n program.metadata.program_name,\n program.relationships.relationship_limits\n ?.enable_trainee_relationship_limit,\n program?.relationships?.relationship_limits?.trainee_relationship_limit,\n program.program_details?.program_image.asset,\n relationshipProfilesData,\n relationshipsBaseLanguage?.table_headers?.group_name,\n relationshipsBaseLanguage?.table_headers?.number_of_sessions,\n relationshipsBaseLanguage?.table_headers?.next_session,\n profile?.id,\n ]);\n\n const {\n programAvatar,\n programCardTitle,\n traineeMembership,\n traineeRelationshipProfiles,\n traineeRelationshipLimitReached,\n guideMembership,\n guideRelationshipProfiles,\n relationshipsTableHeaders,\n } = programData;\n\n //----------TRAINEE MEMBERSHIP----------\n\n const traineeMembershipData: ProgramMembershipsTraineeContent =\n useMemo(() => {\n //Return undefined fast if no trainee membership\n if (!traineeMembership) {\n return {\n traineeMembershipDetails: undefined,\n traineeRelationshipRows: [],\n traineeRelationshipsEmptyState: undefined,\n };\n }\n\n //Trainee membership fields\n const traineeSkills = getFormattedSkills(\n 'trainee',\n traineeMembership.skills as Partial[],\n program.registration?.skills,\n );\n\n const traineeFields = getFormattedProgramFields(\n traineeMembership,\n program,\n );\n\n traineeFields.unshift(traineeSkills);\n\n //Trainee membership details\n\n const traineeDetailsTitle = interpolate(\n membershipDetailsBaseLanguage?.profile,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'mentee',\n },\n 'Yout mentee profile',\n );\n\n const traineeDetailsDescription =\n interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(\n new Date(traineeMembership.createdAt ?? ''),\n 'EEE do MMM',\n ),\n }) ?? new Date(traineeMembership.createdAt ?? '');\n\n const hasTraineeRelationships = traineeRelationshipProfiles.length > 0;\n\n const activeButtonLabel =\n groupMembershipBaseLanguage?.group_member?.find_group_label ??\n 'Find a group';\n const disabledButtonLabel =\n groupMembershipBaseLanguage?.group_member?.group_limit_reached ??\n 'Group limit reached';\n\n const traineeDetailsButton = hasTraineeRelationships\n ? {\n label: traineeRelationshipLimitReached\n ? disabledButtonLabel\n : activeButtonLabel,\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n }\n : undefined;\n\n const traineeMembershipDetails: ProgramMembershipDetailsViewProps = {\n title: traineeDetailsTitle,\n description: traineeDetailsDescription,\n fields: traineeFields,\n button: traineeDetailsButton,\n };\n\n let traineeRelationshipRows: IDashboardRelationshipsRow[] = [];\n let traineeRelationshipsEmptyState:\n | ProgramMembershipEmptyTableViewProps\n | undefined = undefined;\n\n //Trainee relationships\n if (hasTraineeRelationships) {\n traineeRelationshipRows = traineeRelationshipProfiles.map(\n (relationship) => {\n const sessions = relationship.sessions ?? [];\n\n const pastSessions =\n sessions.length > 0\n ? sessions.slice().filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n const currentZonedDate = utcToZonedTime(\n new Date(),\n timezone,\n );\n return (\n sessionStart && !isAfter(sessionStart, currentZonedDate)\n );\n })\n : [];\n\n const upcomingSessions =\n sessions.length > 0\n ? sessions\n .slice()\n .filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n return (\n !session.isArchived &&\n sessionStart &&\n isAfter(\n sessionStart,\n utcToZonedTime(new Date(), timezone),\n )\n );\n })\n .sort((a, b) => {\n const aStart = a.start\n ? utcToZonedTime(new Date(a.start), timezone)\n : null;\n const bStart = b.start\n ? utcToZonedTime(new Date(b.start), timezone)\n : null;\n return aStart && bStart && aStart < bStart ? -1 : 1;\n })\n : [];\n\n const nextSessionLabel =\n upcomingSessions.length === 0\n ? relationshipsBaseLanguage?.no_session_placeholder\n : formatInTimeZone(\n new Date(upcomingSessions?.at(0)?.start ?? ''),\n timezone,\n `EEE, do MMM ${formattedTime}`,\n { locale },\n );\n\n const description = relationship?.createdAt\n ? format(new Date(relationship.createdAt), 'd/M/yyyy')\n : '';\n\n const guideProfile = relationship.guideProfiles?.at(0);\n const guideUser = relationship.users?.find(\n (user) => user.id === guideProfile?.userId,\n );\n return {\n onClick: () => {\n navigate(`/relationships/${relationship.id}`);\n },\n userPicture: guideUser?.picture,\n profilePicture: guideProfile?.picture,\n name: relationship.title ?? '',\n description,\n numberOfSessions: pastSessions.length.toString() ?? 0,\n nextSessionLabel: nextSessionLabel,\n nextSessionColor:\n upcomingSessions.length > 0\n ? palette.success.main\n : palette.error.main,\n };\n },\n );\n } else {\n //Trainee relationships empty state\n\n const emptyStateHeading = interpolate(\n relationshipsBaseLanguage?.trainee_empty_state?.group?.title,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentee',\n rolePlural: programTypeText?.trainee?.pluralized ?? 'Mentees',\n programVerb: programTypeText?.verb ?? 'Mentoring',\n },\n `You don't have any relationships yet`,\n );\n\n const emptyStateDescriptions = [\n interpolate(\n relationshipsBaseLanguage?.trainee_empty_state?.group?.description,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'Mentor',\n rolePlural: programTypeText?.guide?.singular ?? 'Mentors',\n programVerb: programTypeText?.verb ?? 'Mentoring',\n },\n ) ?? '',\n relationshipsBaseLanguage?.trainee_empty_state?.group\n ?.description_2 ?? '',\n ];\n\n const emptyStateLeftButton = {\n label: editProfileButtonLabel,\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n };\n\n const emptyStateRightButton = {\n label:\n relationshipsBaseLanguage?.trainee_empty_state?.group\n ?.select_group_button ?? 'Select a group',\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n };\n\n traineeRelationshipsEmptyState = {\n heading: emptyStateHeading,\n descriptions: emptyStateDescriptions,\n leftButton: emptyStateLeftButton,\n rightButton: emptyStateRightButton,\n };\n }\n\n return {\n traineeMembershipDetails,\n traineeRelationshipRows,\n traineeRelationshipsEmptyState,\n };\n }, [\n traineeMembership,\n program,\n membershipDetailsBaseLanguage?.profile,\n membershipDetailsBaseLanguage?.creation_date,\n programTypeText?.trainee?.singular,\n programTypeText?.trainee?.pluralized,\n programTypeText?.verb,\n programTypeText?.guide?.singular,\n traineeRelationshipProfiles,\n groupMembershipBaseLanguage?.group_member?.find_group_label,\n groupMembershipBaseLanguage?.group_member?.group_limit_reached,\n traineeRelationshipLimitReached,\n navigate,\n relationshipsBaseLanguage?.no_session_placeholder,\n relationshipsBaseLanguage?.trainee_empty_state?.group?.title,\n relationshipsBaseLanguage?.trainee_empty_state?.group?.description,\n relationshipsBaseLanguage?.trainee_empty_state?.group?.description_2,\n relationshipsBaseLanguage?.trainee_empty_state?.group\n ?.select_group_button,\n timezone,\n formattedTime,\n locale,\n palette.success.main,\n palette.error.main,\n editProfileButtonLabel,\n ]);\n\n //----------GUIDE MEMBERSHIP----------\n\n const guideMembershipData: ProgramMembershipsGuideContent = useMemo(() => {\n //Return undefined fast if no guide membership\n if (!guideMembership) {\n return {\n guideMembershipDetails: undefined,\n guideRelationshipRows: [],\n guideRelationshipsEmptyState: undefined,\n };\n }\n\n //Guide membership fields\n\n const guideSkills = getFormattedSkills(\n 'guide',\n guideMembership.skills as Partial[],\n program.registration?.skills,\n );\n\n const guideFields = getFormattedProgramFields(guideMembership, program);\n\n guideFields.unshift(guideSkills);\n\n //Guide membership details\n\n const guideDetailsTitle =\n interpolate(membershipDetailsBaseLanguage?.profile, {\n roleSingular: programTypeText?.guide?.singular ?? 'mentor',\n }) ?? 'Your mentor profile';\n\n const guideDetailsDescription =\n interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(new Date(guideMembership.createdAt ?? ''), 'EEE do MMM'),\n }) ?? new Date(guideMembership.createdAt ?? '');\n\n const hasGuideRelationships = guideRelationshipProfiles.length > 0;\n\n const guideDetailsButton = hasGuideRelationships\n ? {\n label:\n program.program_details?.program_type?.program_type_text?.variations\n ?.group?.program_actions?.guide\n ?.manage_guide_profile_button_label ?? 'Manage your group',\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/manage/guide`),\n disabled: false,\n }\n : undefined;\n\n const guideMembershipDetails: ProgramMembershipDetailsViewProps = {\n title: guideDetailsTitle,\n description: guideDetailsDescription,\n fields: guideFields,\n button: guideDetailsButton,\n };\n\n let guideRelationshipRows: IDashboardRelationshipsRow[] = [];\n let guideRelationshipsEmptyState:\n | ProgramMembershipEmptyTableViewProps\n | undefined = undefined;\n\n //Guide relationships\n if (hasGuideRelationships) {\n guideRelationshipRows = guideRelationshipProfiles.map((relationship) => {\n const groupName = relationship.title ?? '';\n const sessions = relationship.sessions ?? [];\n\n const pastSessions =\n sessions.length > 0\n ? sessions.slice().filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n const currentZonedDate = utcToZonedTime(new Date(), timezone);\n return sessionStart && !isAfter(sessionStart, currentZonedDate);\n })\n : [];\n\n const upcomingSessions =\n sessions.length > 0\n ? sessions\n .slice()\n .filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n return (\n !session.isArchived &&\n sessionStart &&\n isAfter(sessionStart, utcToZonedTime(new Date(), timezone))\n );\n })\n .sort((a, b) => {\n const aStart = a.start\n ? utcToZonedTime(new Date(a.start), timezone)\n : null;\n const bStart = b.start\n ? utcToZonedTime(new Date(b.start), timezone)\n : null;\n return aStart && bStart && aStart < bStart ? -1 : 1;\n })\n : [];\n\n const nextSessionLabel =\n upcomingSessions.length === 0\n ? relationshipsBaseLanguage?.no_session_placeholder\n : formatInTimeZone(\n new Date(upcomingSessions?.at(0)?.start ?? ''),\n timezone,\n `EEE, do MMM ${formattedTime}`,\n { locale },\n );\n\n const description = relationship?.createdAt\n ? interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(new Date(relationship.createdAt), 'd/M/yyyy'),\n }) ?? new Date(relationship.createdAt)\n : '';\n\n const guideProfile = relationship.guideProfiles?.at(0);\n const guideUser = relationship.users?.find(\n (user) => user.id === guideProfile?.userId,\n );\n\n return {\n onClick: () => {\n navigate(`/relationships/${relationship.id}`);\n },\n userPicture: guideUser?.picture,\n profilePicture: guideProfile?.picture,\n name: groupName,\n description: description,\n numberOfSessions: pastSessions.length.toString(),\n nextSessionLabel: guideMembership.isPublished\n ? program?.program_details?.program_type?.program_type_text\n .variations?.group?.relationships?.guide\n ?.group_activation_pending?.start_group_button_label ??\n 'Activate group'\n : nextSessionLabel,\n nextSessionColor:\n guideMembership.isPublished || upcomingSessions.length > 0\n ? palette.success.main\n : palette.error.main,\n };\n });\n } else {\n //Guide relationships empty state\n\n const emptyStateHeading =\n interpolate(\n relationshipsBaseLanguage?.guide_empty_state?.group?.title,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentee',\n rolePlural: programTypeText?.trainee?.pluralized ?? 'Mentees',\n programVerb: programTypeText?.verb ?? 'Mentoring',\n },\n ) ?? `You don't have any relationships yet`;\n\n const emptyStateDescriptions = [\n interpolate(\n relationshipsBaseLanguage?.guide_empty_state?.group?.description,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentee',\n rolePlural: programTypeText?.trainee?.pluralized ?? 'Mentees',\n programVerb: programTypeText?.verb ?? 'Mentoring',\n },\n ) ?? '',\n relationshipsBaseLanguage?.guide_empty_state?.group?.description_2 ??\n '',\n ];\n\n const emptyStateLeftButton = {\n label:\n relationshipsBaseLanguage?.guide_empty_state?.individual\n ?.learning_hub_button_label ?? 'View Learning Hub',\n onClick: () => navigate('/learn'),\n };\n\n const emptyStateRightButton = {\n label:\n relationshipsBaseLanguage?.guide_empty_state?.group\n ?.create_group_button ?? 'Creat a group',\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/manage/guide`),\n };\n\n guideRelationshipsEmptyState = {\n heading: emptyStateHeading,\n descriptions: emptyStateDescriptions,\n leftButton: emptyStateLeftButton,\n rightButton: emptyStateRightButton,\n };\n }\n\n return {\n guideMembershipDetails,\n guideRelationshipRows,\n guideRelationshipsEmptyState,\n };\n }, [\n guideMembership,\n program,\n membershipDetailsBaseLanguage?.profile,\n membershipDetailsBaseLanguage?.creation_date,\n programTypeText?.guide?.singular,\n programTypeText?.trainee?.singular,\n programTypeText?.trainee?.pluralized,\n programTypeText?.verb,\n guideRelationshipProfiles,\n navigate,\n relationshipsBaseLanguage?.no_session_placeholder,\n relationshipsBaseLanguage?.guide_empty_state?.group?.title,\n relationshipsBaseLanguage?.guide_empty_state?.group?.description,\n relationshipsBaseLanguage?.guide_empty_state?.group?.description_2,\n relationshipsBaseLanguage?.guide_empty_state?.group?.create_group_button,\n relationshipsBaseLanguage?.guide_empty_state?.individual\n ?.learning_hub_button_label,\n timezone,\n formattedTime,\n locale,\n palette.success.main,\n palette.error.main,\n ]);\n\n return (\n \n );\n}\n","import {\n useMemberships,\n useProfiles,\n useRelationships,\n} from '@guider-global/front-end-hooks';\nimport {\n getFormattedProgramFields,\n getFormattedSkills,\n getLanguageFromCMS,\n getSubDomain,\n getTimeFormat,\n} from '@guider-global/front-end-utils';\nimport {\n buildSanityImageUrl,\n useBaseLanguage,\n} from '@guider-global/sanity-hooks';\nimport { ISkill, Program } from '@guider-global/shared-types';\nimport {\n ChipProps,\n ProgramMembershipDetailsViewProps,\n} from '@guider-global/ui';\nimport { useTheme } from '@mui/material';\nimport { format, isAfter } from 'date-fns';\nimport { formatInTimeZone, utcToZonedTime } from 'date-fns-tz';\nimport { interpolate } from 'functions';\nimport { useLocalization } from 'hooks';\nimport { useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport {\n ProgramMembershipsCard,\n ProgramMembershipsGuideContent,\n ProgramMembershipsTraineeContent,\n} from 'views/dashboard/ProgramMembershipsCard';\nimport { ProgramMembershipEmptyTableViewProps } from '../../../views/dashboard/ProgramMembershipEmptyTableView';\nimport { IDashboardRelationshipsRow } from '../../../views/dashboard/ProgramMembershipTableView';\n\nexport type IndividualProgramMembershipsContainerProps = {\n program: Program;\n timezone: string;\n};\n\nexport function IndividualProgramMembershipsContainer({\n program,\n timezone,\n}: IndividualProgramMembershipsContainerProps) {\n const navigate = useNavigate();\n\n const { palette } = useTheme();\n\n // Sanity Base Language\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({\n localeCode,\n });\n const formattedTime = getTimeFormat(baseLanguage?.time_format);\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n\n const relationshipsBaseLanguage =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table;\n const membershipDetailsBaseLanguage =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.membership_details;\n\n const programTypeText =\n program.program_details?.program_type?.program_type_text.common;\n\n const editProfileButtonLabel =\n baseLanguage?.globals?.common?.edit_profile_button_label ?? 'Edit Profile';\n\n // Membership Summaries\n const { programMemberships } = useMemberships({});\n\n // Profiles\n const { profiles } = useProfiles({});\n const profile = profiles?.at(0);\n\n // Relationship profiles\n\n const { relationships } = useRelationships({});\n\n //----------PROGRAM DATA----------\n\n const programData = useMemo(() => {\n const guideMembership = programMemberships(\n program.metadata.id.current,\n 'guide',\n );\n\n const traineeMembership = programMemberships(\n program.metadata.id.current,\n 'trainee',\n );\n\n const programRelationships = relationships?.filter(\n (relationship) =>\n relationship.programSlug === program.metadata.id.current &&\n !relationship.isConcluded,\n );\n\n const guideRelationships = programRelationships?.filter((relationship) => {\n return relationship.guideProfiles?.find(\n (guideProfile) => guideProfile.id === profile?.id,\n );\n });\n\n const traineeRelationships = programRelationships?.filter(\n (relationship) => {\n return relationship.traineeProfiles?.find(\n (trainee) => trainee.id === profile?.id,\n );\n },\n );\n\n const traineeRelationshipLimitReached =\n (program.relationships.relationship_limits\n ?.enable_trainee_relationship_limit &&\n !!program.relationships?.relationship_limits\n .trainee_relationship_limit &&\n traineeRelationships &&\n traineeRelationships.length >=\n program.relationships?.relationship_limits\n .trainee_relationship_limit) ??\n false;\n\n const relationshipsTableHeaders = {\n name: relationshipsBaseLanguage?.table_headers?.user_name ?? 'Name',\n numberOfSessions:\n relationshipsBaseLanguage?.table_headers?.number_of_sessions ??\n 'Past sessions',\n nextSession:\n relationshipsBaseLanguage?.table_headers?.next_session ??\n 'Next session',\n };\n\n const programAvatar = buildSanityImageUrl({\n source: program.program_details?.program_image.asset ?? '',\n width: 300,\n });\n\n const programCardTitle = program.metadata.program_name;\n\n const guideCount = traineeRelationships?.length;\n\n const traineeCount = guideRelationships?.length;\n\n const guideCountLabel =\n guideCount === 1\n ? `${guideCount} ${programTypeText?.guide?.singular}`\n : `${guideCount} ${programTypeText?.guide?.pluralized}`;\n\n const traineeCountLabel =\n traineeCount === 1\n ? `${traineeCount} ${programTypeText?.trainee?.singular}`\n : `${traineeCount} ${programTypeText?.trainee?.pluralized}`;\n\n const programCardDescription = `${guideCountLabel} • ${traineeCountLabel}`;\n\n return {\n programAvatar,\n programCardTitle,\n programCardDescription,\n traineeMembership,\n traineeRelationships,\n traineeRelationshipLimitReached,\n guideMembership,\n guideRelationships,\n relationshipsTableHeaders,\n };\n }, [\n programMemberships,\n program.metadata.id,\n program.metadata.program_name,\n program.relationships.relationship_limits\n ?.enable_trainee_relationship_limit,\n program?.relationships?.relationship_limits?.trainee_relationship_limit,\n program.program_details?.program_image.asset,\n relationships,\n relationshipsBaseLanguage?.table_headers?.user_name,\n relationshipsBaseLanguage?.table_headers?.number_of_sessions,\n relationshipsBaseLanguage?.table_headers?.next_session,\n programTypeText?.guide?.singular,\n programTypeText?.guide?.pluralized,\n programTypeText?.trainee?.singular,\n programTypeText?.trainee?.pluralized,\n profile?.id,\n ]);\n\n const {\n programAvatar,\n programCardTitle,\n programCardDescription,\n traineeMembership,\n traineeRelationships,\n traineeRelationshipLimitReached,\n guideMembership,\n guideRelationships,\n relationshipsTableHeaders,\n } = programData;\n\n //----------TRAINEE MEMBERSHIP----------\n\n const traineeMembershipData: ProgramMembershipsTraineeContent =\n useMemo(() => {\n //Return undefined fast if no trainee membership\n if (!traineeMembership) {\n return {\n traineeMembershipDetails: undefined,\n traineeRelationshipRows: [],\n traineeMembershipEmptyState: undefined,\n };\n }\n\n //Trainee membership fields\n const traineeSkills = getFormattedSkills(\n 'trainee',\n traineeMembership.skills as Partial[],\n program.registration?.skills,\n );\n\n const traineeFields = getFormattedProgramFields(\n traineeMembership,\n program,\n );\n\n traineeFields.unshift(traineeSkills);\n\n //Trainee membership details\n\n const traineeDetailsTitle = interpolate(\n membershipDetailsBaseLanguage?.profile,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'mentee',\n },\n 'Your mentee profile',\n );\n\n const traineeDetailsDescription =\n interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(\n new Date(traineeMembership.createdAt ?? ''),\n 'EEE do MMM',\n ),\n }) ?? new Date(traineeMembership.createdAt ?? '');\n\n const hasTraineeRelationships =\n traineeRelationships && traineeRelationships.length > 0;\n\n const disabledButtonLabel = interpolate(\n membershipDetailsBaseLanguage?.individual_membership?.trainee\n ?.guide_limit_reached,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'Mentor',\n },\n 'Mentor limit reached',\n );\n const activeButtonLabel = interpolate(\n membershipDetailsBaseLanguage?.individual_membership?.trainee\n ?.find_another_guide,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'Mentor',\n },\n 'Find another Mentor',\n );\n\n const traineeDetailsButton = hasTraineeRelationships\n ? {\n label: traineeRelationshipLimitReached\n ? disabledButtonLabel\n : activeButtonLabel,\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n }\n : undefined;\n\n const traineeMembershipDetails: ProgramMembershipDetailsViewProps = {\n title: traineeDetailsTitle,\n description: traineeDetailsDescription,\n fields: traineeFields,\n button: traineeDetailsButton,\n };\n\n let traineeRelationshipRows: IDashboardRelationshipsRow[] = [];\n let traineeRelationshipsEmptyState:\n | ProgramMembershipEmptyTableViewProps\n | undefined = undefined;\n\n //Trainee relationships\n\n if (hasTraineeRelationships) {\n traineeRelationshipRows = traineeRelationships.map((relationship) => {\n const guideProfile = relationship.guideProfiles?.at(0);\n const guideName =\n guideProfile?.displayName ??\n `${guideProfile?.firstName} ${guideProfile?.lastName}`;\n const guideUser = relationship.users?.find(\n (user) => user.id === guideProfile?.userId,\n );\n const sessions = relationship.sessions ?? [];\n\n const pastSessions =\n sessions.length > 0\n ? sessions.slice().filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n const currentZonedDate = utcToZonedTime(new Date(), timezone);\n return (\n sessionStart && !isAfter(sessionStart, currentZonedDate)\n );\n })\n : [];\n\n const upcomingSessions =\n sessions.length > 0\n ? sessions\n .slice()\n .filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n return (\n !session.isArchived &&\n sessionStart &&\n isAfter(\n sessionStart,\n utcToZonedTime(new Date(), timezone),\n )\n );\n })\n .sort((a, b) => {\n const aStart = a.start\n ? utcToZonedTime(new Date(a.start), timezone)\n : null;\n const bStart = b.start\n ? utcToZonedTime(new Date(b.start), timezone)\n : null;\n return aStart && bStart && aStart < bStart ? -1 : 1;\n })\n : [];\n\n const nextSessionLabel =\n upcomingSessions.length === 0\n ? relationshipsBaseLanguage?.no_session_placeholder\n : formatInTimeZone(\n new Date(upcomingSessions?.at(0)?.start ?? ''),\n timezone,\n `EEE, do MMM ${formattedTime}`,\n { locale },\n );\n\n return {\n onClick: () => {\n navigate(`/relationships/${relationship.id}`);\n },\n userPicture: guideUser?.picture,\n profilePicture: guideProfile?.picture,\n name: guideName,\n description: traineeMembership.createdAt\n ? format(new Date(traineeMembership.createdAt), 'd/M/yyyy')\n : '',\n numberOfSessions: pastSessions.length.toString(),\n nextSessionLabel: nextSessionLabel,\n nextSessionColor:\n upcomingSessions.length > 0\n ? palette.success.main\n : palette.error.main,\n };\n });\n } else {\n //Trainee relationships empty state\n\n const emptyStateHeading = interpolate(\n relationshipsBaseLanguage?.trainee_empty_state?.individual?.title,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'Mentor',\n },\n `You don't have a Mentor yet`,\n );\n\n const emptyStateDescriptions = [\n interpolate(\n relationshipsBaseLanguage?.trainee_empty_state?.individual\n ?.description,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentor',\n },\n ) ?? '',\n relationshipsBaseLanguage?.trainee_empty_state?.individual\n ?.description_2 ?? '',\n ];\n\n const emptyStateLeftButton = {\n label: editProfileButtonLabel,\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n };\n\n const emptyStateRightButton = {\n label: interpolate(\n relationshipsBaseLanguage?.trainee_empty_state?.individual\n ?.find_a_guide,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'Mentor',\n },\n 'Find a Mentor',\n ),\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/trainee`),\n disabled: traineeRelationshipLimitReached,\n };\n\n traineeRelationshipsEmptyState = {\n heading: emptyStateHeading,\n descriptions: emptyStateDescriptions,\n leftButton: emptyStateLeftButton,\n rightButton: emptyStateRightButton,\n };\n }\n\n return {\n traineeMembershipDetails,\n traineeRelationshipRows,\n traineeRelationshipsEmptyState,\n };\n }, [\n traineeMembership,\n program,\n membershipDetailsBaseLanguage?.profile,\n membershipDetailsBaseLanguage?.creation_date,\n membershipDetailsBaseLanguage?.individual_membership?.trainee\n ?.guide_limit_reached,\n membershipDetailsBaseLanguage?.individual_membership?.trainee\n ?.find_another_guide,\n programTypeText?.trainee?.singular,\n programTypeText?.guide?.singular,\n traineeRelationships,\n traineeRelationshipLimitReached,\n navigate,\n relationshipsBaseLanguage?.no_session_placeholder,\n relationshipsBaseLanguage?.trainee_empty_state?.individual?.title,\n relationshipsBaseLanguage?.trainee_empty_state?.individual?.description,\n relationshipsBaseLanguage?.trainee_empty_state?.individual?.description_2,\n relationshipsBaseLanguage?.trainee_empty_state?.individual?.find_a_guide,\n timezone,\n formattedTime,\n locale,\n palette.success.main,\n palette.error.main,\n editProfileButtonLabel,\n ]);\n\n //----------GUIDE MEMBERSHIP----------\n\n const guideMembershipData: ProgramMembershipsGuideContent = useMemo(() => {\n //Return undefined fast if no guide membership\n if (!guideMembership) {\n return {\n guideMembershipDetails: undefined,\n guideRelationshipRows: [],\n guideRelationshipsEmptyState: undefined,\n };\n }\n\n //Guide membership fields\n\n const guideSkills = getFormattedSkills(\n 'guide',\n guideMembership.skills as Partial[],\n program?.registration?.skills,\n );\n\n const guideFields = getFormattedProgramFields(guideMembership, program);\n\n guideFields.unshift(guideSkills);\n\n //Guide membership details\n\n const guideDetailsTitle = interpolate(\n membershipDetailsBaseLanguage?.profile,\n {\n roleSingular: programTypeText?.guide?.singular ?? 'mentor',\n },\n 'Your mentor profile',\n );\n\n const guideDetailsDescription =\n interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(new Date(guideMembership.createdAt ?? ''), 'EEE do MMM'),\n }) ?? new Date(guideMembership.createdAt ?? '');\n\n const hasGuideRelationships =\n guideRelationships && guideRelationships?.length > 0;\n\n const guideDetailsButton = hasGuideRelationships\n ? {\n label:\n program.program_details?.program_type?.program_type_text?.variations\n ?.individual?.program_actions?.guide\n ?.manage_guide_profile_button_label ??\n 'Manage your guide profile',\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/join/guide`),\n disabled: false,\n }\n : undefined;\n\n const guideChip: ChipProps = guideMembership.isPublished\n ? {\n label:\n membershipDetailsBaseLanguage?.individual_membership?.guide\n ?.guide_profile_statuses?.listed ?? 'Listed',\n color: 'success',\n }\n : {\n label:\n membershipDetailsBaseLanguage?.individual_membership?.guide\n ?.guide_profile_statuses?.unlisted ?? 'Hidden',\n color: 'gray',\n };\n\n const guideMembershipDetails: ProgramMembershipDetailsViewProps = {\n title: guideDetailsTitle,\n description: guideDetailsDescription,\n fields: guideFields,\n chip: guideMembership.requiresApproval ? undefined : guideChip,\n button: guideDetailsButton,\n };\n\n let guideRelationshipRows: IDashboardRelationshipsRow[] = [];\n let guideRelationshipsEmptyState:\n | ProgramMembershipEmptyTableViewProps\n | undefined = undefined;\n\n //Guide relationships\n if (hasGuideRelationships) {\n guideRelationshipRows = guideRelationships.map((relationship) => {\n const traineeProfile = relationship.traineeProfiles?.at(0);\n const traineeName =\n traineeProfile?.displayName ??\n `${traineeProfile?.firstName} ${traineeProfile?.lastName}`;\n const traineeUser = relationship.users?.find(\n (user) => user.id === traineeProfile?.userId,\n );\n\n const sessions = relationship.sessions ?? [];\n\n const pastSessions =\n sessions.length > 0\n ? sessions.slice().filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n const currentZonedDate = utcToZonedTime(new Date(), timezone);\n return sessionStart && !isAfter(sessionStart, currentZonedDate);\n })\n : [];\n\n const upcomingSessions =\n sessions.length > 0\n ? sessions\n .slice()\n .filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n return (\n !session.isArchived &&\n sessionStart &&\n isAfter(sessionStart, utcToZonedTime(new Date(), timezone))\n );\n })\n .sort((a, b) => {\n const aStart = a.start\n ? utcToZonedTime(new Date(a.start), timezone)\n : null;\n const bStart = b.start\n ? utcToZonedTime(new Date(b.start), timezone)\n : null;\n return aStart && bStart && aStart < bStart ? -1 : 1;\n })\n : [];\n\n const nextSessionLabel =\n upcomingSessions.length === 0\n ? relationshipsBaseLanguage?.no_session_placeholder\n : formatInTimeZone(\n new Date(upcomingSessions?.at(0)?.start ?? ''),\n timezone,\n `EEE, do MMM ${formattedTime}`,\n { locale },\n );\n\n return {\n onClick: () => {\n navigate(`/relationships/${relationship.id}`);\n },\n userPicture: traineeUser?.picture,\n profilePicture: traineeProfile?.picture,\n name: traineeName,\n description: guideMembership.createdAt\n ? interpolate(membershipDetailsBaseLanguage?.creation_date, {\n date: format(new Date(guideMembership.createdAt), 'd/M/yyyy'),\n })\n : '',\n numberOfSessions: pastSessions.length.toString(),\n nextSessionLabel: nextSessionLabel,\n nextSessionColor:\n upcomingSessions.length > 0\n ? palette.success.main\n : palette.error.main,\n };\n });\n } else {\n //Guide relationships empty state\n\n const emptyStateHeading = interpolate(\n relationshipsBaseLanguage?.guide_empty_state?.individual?.title,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentee',\n },\n `You don't have a mentee yet`,\n );\n\n const emptyStateDescriptions = [\n interpolate(\n relationshipsBaseLanguage?.guide_empty_state?.individual?.description,\n {\n roleSingular: programTypeText?.trainee?.singular ?? 'Mentee',\n },\n ) ?? '',\n relationshipsBaseLanguage?.guide_empty_state?.individual\n ?.description_2 ?? '',\n ];\n\n const emptyStateLeftButton = {\n label:\n relationshipsBaseLanguage?.guide_empty_state?.individual\n ?.learning_hub_button_label ?? 'View Learning Hub',\n onClick: () => navigate('/learn'),\n };\n\n const emptyStateRightButton = {\n label: editProfileButtonLabel,\n onClick: () =>\n navigate(`/programs/${program.metadata.id.current}/manage/guide`),\n };\n\n guideRelationshipsEmptyState = {\n heading: emptyStateHeading,\n descriptions: emptyStateDescriptions,\n leftButton: emptyStateLeftButton,\n rightButton: emptyStateRightButton,\n };\n }\n\n return {\n guideMembershipDetails,\n guideRelationshipRows,\n guideRelationshipsEmptyState,\n };\n }, [\n guideMembership,\n program,\n membershipDetailsBaseLanguage?.profile,\n membershipDetailsBaseLanguage?.creation_date,\n membershipDetailsBaseLanguage?.individual_membership?.guide\n ?.guide_profile_statuses?.listed,\n membershipDetailsBaseLanguage?.individual_membership?.guide\n ?.guide_profile_statuses?.unlisted,\n programTypeText?.guide?.singular,\n programTypeText?.trainee?.singular,\n guideRelationships,\n navigate,\n relationshipsBaseLanguage?.no_session_placeholder,\n relationshipsBaseLanguage?.guide_empty_state?.individual?.title,\n relationshipsBaseLanguage?.guide_empty_state?.individual?.description,\n relationshipsBaseLanguage?.guide_empty_state?.individual?.description_2,\n relationshipsBaseLanguage?.guide_empty_state?.individual\n ?.learning_hub_button_label,\n timezone,\n formattedTime,\n locale,\n palette.success.main,\n palette.error.main,\n editProfileButtonLabel,\n ]);\n\n return (\n \n );\n}\n","import { getSubDomain } from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\n\nimport { DashboardCard, Image, Stack, TextStack } from '@guider-global/ui';\nimport { Skeleton } from '@mui/material';\nimport Arrow from 'assets/arrow-icon.svg';\nimport NoPrograms from 'assets/no_programs_illustration.svg';\nimport { useLocalization } from 'hooks';\nimport { useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { GroupProgramMembershipsContainer } from '../GroupProgramMembershipsContainer';\nimport { IndividualProgramMembershipsContainer } from '../IndividualProgramMembershipsContainer';\nimport { useMemberships, useSettings } from '@guider-global/front-end-hooks';\n\nexport function ProgramMembershipsContainer() {\n const navigate = useNavigate();\n // Sanity Programs\n const organizationSlug = getSubDomain();\n const { programs, isLoadingPrograms } = useOrganizationPrograms({\n organizationSlug,\n });\n\n const { settings } = useSettings({\n options: { keepPreviousData: true },\n });\n const timezone = settings?.at(0)?.timezone ?? 'Europe/London';\n\n // Base Language\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({\n localeCode,\n });\n\n // Membership Summaries\n const { memberships, isLoadingMemberships } = useMemberships({});\n\n const programData = useMemo(\n () =>\n programs\n .filter((program) => {\n return memberships?.some(\n (membership) =>\n membership.programSlug === program.metadata.id.current,\n );\n })\n .map((program) => {\n const variation = program.program_details?.program_variation;\n return {\n program,\n variation,\n };\n }),\n [programs, memberships],\n );\n\n if (isLoadingMemberships || isLoadingPrograms) {\n return (\n ,\n onClick: () => navigate('/programs'),\n }}\n >\n \n \n );\n }\n\n if (programData.length === 0) {\n return (\n ,\n onClick: () => navigate('/programs'),\n }}\n >\n \n \n \n \n \n );\n }\n\n return (\n ,\n onClick: () => navigate('/programs'),\n }}\n >\n {programData.map((program) =>\n program.variation === 'group' ? (\n \n ) : (\n \n ),\n )}\n \n );\n}\n","import { useProfiles, useSettings } from '@guider-global/front-end-hooks';\nimport {\n getLanguageFromCMS,\n getSubDomain,\n getTimeFormat,\n} from '@guider-global/front-end-utils';\nimport { useBaseLanguage, useOrganization } from '@guider-global/sanity-hooks';\nimport { ISkill, ProfileSkill } from '@guider-global/shared-types';\nimport {\n ButtonStack,\n DashboardCard,\n Stack,\n TextStack,\n} from '@guider-global/ui';\nimport { Skeleton } from '@mui/material';\nimport { useTheme } from '@mui/system';\nimport { isAfter } from 'date-fns';\nimport { formatInTimeZone, utcToZonedTime } from 'date-fns-tz';\nimport { useLocalization, useRelationships } from 'hooks';\nimport { useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport {\n IDashboardRelationshipsRow,\n ProgramMembershipEmptyTableView,\n ProgramMembershipTableView,\n} from 'views';\n\nexport function OpenMatchingProfileContainer() {\n const navigate = useNavigate();\n const { palette } = useTheme();\n\n // Sanity Programs\n const organizationSlug = getSubDomain();\n const { organization } = useOrganization({ organizationSlug });\n\n // Base Language\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({\n localeCode,\n });\n\n // Settings\n const { settings } = useSettings({\n options: { keepPreviousData: true },\n });\n const timezone = settings?.at(0)?.timezone ?? 'Europe/London';\n const formattedTime = getTimeFormat(baseLanguage?.time_format);\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n\n const bio_label = baseLanguage?.dashboard?.open_matching?.bio_label;\n const skills_offered_label =\n baseLanguage?.dashboard?.open_matching?.skills_offered_label;\n const skills_sought_label =\n baseLanguage?.dashboard?.open_matching?.skills_sought_label;\n const empty_state_description =\n baseLanguage?.dashboard?.open_matching?.empty_state_description ?? '';\n const empty_state_title =\n baseLanguage?.dashboard?.open_matching?.empty_state_title;\n const user_name =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table?.table_headers?.user_name;\n const next_session =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table?.table_headers?.next_session;\n const number_of_sessions =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table?.table_headers?.number_of_sessions;\n\n const no_session_placeholder =\n baseLanguage?.dashboard?.program_memberships?.with_program_memberships\n ?.relationships_table?.no_session_placeholder;\n\n // Profile\n\n const { profiles, isLoadingProfiles } = useProfiles({});\n\n const profile = profiles?.at(0);\n\n // Relationships\n\n const { relationships: getRelationships, isLoadingRelationships } =\n useRelationships({});\n const relationships = getRelationships();\n\n // Profile\n\n const profileData = useMemo(() => {\n if (!profile || !organization?.open_matching?.enable_open_matching) return;\n const roles = profile.roles;\n\n const guideRole =\n organization?.open_matching?.program_type?.program_type_text?.common\n ?.guide?.singular ?? 'Mentor';\n\n const traineeRole =\n organization?.open_matching?.program_type?.program_type_text?.common\n ?.trainee?.singular ?? 'Mentee';\n\n const allSkills = [\n ...(organization?.open_matching?.skills?.soft_skills ?? []),\n ...(organization?.open_matching?.skills?.hard_skills ?? []),\n ] as ProfileSkill[];\n\n const traineeSkillsLabels = (profile?.skills as ISkill[])\n ?.filter((skill) => skill.sought)\n .map((skill) => {\n const label =\n allSkills.find((s) => s.slug === skill.fieldSlug)?.label ?? undefined;\n return label;\n })\n .join(', ');\n\n const guideSkillsLabels = (profile?.skills as ISkill[])\n ?.filter((skill) => skill.offered)\n .map((skill) => {\n const label =\n allSkills.find((s) => s.slug === skill.fieldSlug)?.label ?? undefined;\n\n return label;\n })\n .join(', ');\n\n const traineeSkills = {\n label: skills_sought_label,\n value: traineeSkillsLabels,\n };\n\n const guideSkills = {\n label: skills_offered_label,\n value: guideSkillsLabels,\n };\n\n const bio = profile?.bio;\n\n const activeOpenMatchingRelationships: IDashboardRelationshipsRow[] =\n relationships\n .filter(\n (relationship) =>\n !relationship.programSlug && !relationship.isConcluded,\n )\n .flatMap((relationship) => {\n const matchProfile = relationship.traineeProfiles?.find(\n (p) => p.id === profile.id,\n )\n ? relationship?.guideProfiles?.at(0)\n : relationship?.traineeProfiles?.at(0);\n\n const matchUser = relationship.users?.find(\n (p) => p.id !== profile.userId,\n );\n\n const role = relationship.traineeProfiles?.find(\n (p) => p.id === profile.id,\n )\n ? 'guide'\n : 'trainee';\n\n const sessions = relationship.sessions ?? [];\n\n const pastSessions =\n sessions.length > 0\n ? sessions.slice().filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n const currentZonedDate = utcToZonedTime(new Date(), timezone);\n return (\n sessionStart && !isAfter(sessionStart, currentZonedDate)\n );\n })\n : [];\n\n const upcomingSessions =\n sessions.length > 0\n ? sessions\n .slice()\n .filter((session) => {\n const sessionStart = session?.start\n ? utcToZonedTime(new Date(session.start), timezone)\n : null;\n return (\n !session.isArchived &&\n sessionStart &&\n isAfter(\n sessionStart,\n utcToZonedTime(new Date(), timezone),\n )\n );\n })\n .sort((a, b) => {\n const aStart = a.start\n ? utcToZonedTime(new Date(a.start), timezone)\n : null;\n const bStart = b.start\n ? utcToZonedTime(new Date(b.start), timezone)\n : null;\n return aStart && bStart && aStart < bStart ? -1 : 1;\n })\n : [];\n\n const nextSessionLabel =\n upcomingSessions.length === 0\n ? no_session_placeholder\n : formatInTimeZone(\n new Date(upcomingSessions?.at(0)?.start ?? ''),\n timezone,\n `EEE, do MMM ${formattedTime}`,\n { locale },\n );\n\n const color =\n upcomingSessions.length === 0\n ? palette.error.main\n : palette.success.main;\n\n return {\n name: matchProfile?.displayName ?? '',\n profilePicture: matchProfile?.picture,\n userPicture: matchUser?.picture,\n description:\n organization?.open_matching?.program_type?.program_type_text\n .common?.[role]?.singular,\n numberOfSessions: pastSessions.length.toString(),\n nextSessionLabel: nextSessionLabel,\n nextSessionColor: color,\n onClick: () => navigate(`../relationships/${relationship.id}`),\n createdAt: relationship.createdAt,\n };\n });\n\n const rows = activeOpenMatchingRelationships.sort((a, b) => {\n const dateA = a.createdAt ? (new Date(a.createdAt) as any) : 0;\n const dateB = b.createdAt ? (new Date(b.createdAt) as any) : 0;\n return dateB - dateA;\n });\n\n return {\n guideSkills,\n traineeSkills,\n bio,\n roles,\n rows,\n guideRole,\n traineeRole,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [navigate, organization, profile, relationships]);\n\n if (!organization?.open_matching?.enable_open_matching) return <>;\n\n if (!profile) return <>;\n\n if (profile.roles?.length === 0) return <>;\n\n const fields =\n [\n profileData?.roles?.includes('guide') && profileData.guideSkills.value\n ? profileData.guideSkills\n : undefined,\n profileData?.roles?.includes('trainee') && profileData.traineeSkills.value\n ? profileData.traineeSkills\n : undefined,\n profileData?.bio\n ? { label: bio_label, value: profileData?.bio }\n : undefined,\n ] ?? [];\n\n function hideMatchButton() {\n if (!profileData?.roles?.includes('trainee')) {\n return true;\n } else if (\n profile?.skills?.length === 0 ||\n profile?.goalCategories?.length === 0\n ) {\n return true;\n }\n\n return false;\n }\n\n if (isLoadingProfiles || isLoadingRelationships()) {\n return (\n \n \n \n );\n }\n\n return (\n \n }\n backgroundColor=\"white\"\n >\n \n \n \n {fields?.map((field, index) => {\n if (!field) return <>;\n return (\n \n );\n })}\n \n\n navigate('../profile/bio'),\n },\n {\n key: '2',\n variant: 'contained',\n label: baseLanguage?.globals?.common?.find_a_match_button_label,\n color: 'info',\n onClick: () => navigate('../profile/matches/guide'),\n hidden: hideMatchButton(),\n },\n ]}\n />\n \n \n {profileData && profileData?.rows.length !== 0 ? (\n \n ) : (\n \n )}\n \n \n \n );\n}\n","import { useUsers } from '@guider-global/front-end-hooks';\nimport {\n getFriendlyDateFormat,\n getLanguageFromCMS,\n getSubDomain,\n getTimeFormat,\n isValidDate,\n useIsSafariOrIOS,\n} from '@guider-global/front-end-utils';\nimport {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { IRelationship } from '@guider-global/shared-types';\nimport { GroupAvatar, SurveyModal } from '@guider-global/ui';\nimport { SurveyAvatar } from 'components';\nimport { format } from 'date-fns';\nimport { SurveyForm } from 'forms';\nimport {\n interpolate,\n isSurveyFieldForGuide,\n isSurveyFieldForTrainee,\n} from 'functions';\nimport {\n useLocalization,\n useRelationships,\n useSurveyResources,\n useSurveys,\n} from 'hooks';\nimport { useContext, useEffect, useState } from 'react';\nimport { SurveyModalsContext } from '../SurveyModalsContext';\n\nexport function PostRelationshipSurveyModalContainer() {\n const { surveyType, setSurveyType, isSurveySubmitted } =\n useContext(SurveyModalsContext);\n const IsSafariOrIOS = useIsSafariOrIOS();\n\n // Local state\n const [concludedRelationship, setConcludedRelationship] =\n useState();\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n\n const [open, setOpen] = useState(true);\n\n // Sanity organization programs\n const { programs, isLoadingPrograms } = useOrganizationPrograms({\n organizationSlug,\n localeCode,\n });\n\n // Users\n const { users, isLoadingUsers } = useUsers({});\n const user = users?.at(0);\n\n // Time and date format\n\n const { baseLanguage } = useBaseLanguage({ localeCode });\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n const FormattedTime = getTimeFormat(baseLanguage?.time_format);\n const FormattedDate = getFriendlyDateFormat(baseLanguage?.date_format);\n\n // Relationships\n const {\n relationships: getRelationships,\n isLoadingRelationships: getIsLoadingRelationships,\n } = useRelationships({});\n const isLoadingRelationships = getIsLoadingRelationships();\n const relationships = getRelationships();\n\n // Surveys\n const { surveys, isLoadingSurveys } = useSurveys({});\n\n const isLoadingPostRelationshipSurveyResources =\n isLoadingPrograms ||\n isLoadingRelationships ||\n isLoadingUsers ||\n isLoadingSurveys;\n\n const isDelayed =\n window.sessionStorage.getItem(`post-relationship-delay`) === 'true' ??\n false;\n\n useEffect(() => {\n if (isLoadingPostRelationshipSurveyResources) {\n return;\n }\n\n const concludedRelationshipWithoutSurvey = relationships.find(\n (relationship) => {\n const isGuide = relationship.guideProfiles?.at(0)?.userId === user?.id;\n const sessionCount = relationship.sessions?.length ?? 0;\n\n const program = programs.find(\n (program) => program.metadata.id.current === relationship.programSlug,\n );\n const survey = program?.surveys?.post_relationship_survey;\n const surveyFields = survey?.fields ?? [];\n const surveyFieldsByRole = surveyFields.filter((surveyField) =>\n isGuide\n ? isSurveyFieldForGuide(surveyField, sessionCount)\n : isSurveyFieldForTrainee(surveyField, sessionCount),\n );\n const surveyStartDate = survey?.start_date;\n\n const isRelationshipConcludedAfterSurveyStartDate =\n surveyStartDate &&\n isValidDate(surveyStartDate) &&\n relationship.concludedAt &&\n new Date(relationship.concludedAt) > new Date(surveyStartDate);\n\n const hasNotProvidedRelationshipFeedback = !surveys?.find(\n (survey) =>\n survey.type === 'post-relationship' &&\n survey.relationship === relationship.id,\n );\n\n return (\n survey?.enabled &&\n surveyFieldsByRole.length &&\n relationship.isConcluded &&\n isRelationshipConcludedAfterSurveyStartDate &&\n hasNotProvidedRelationshipFeedback\n );\n },\n );\n\n setConcludedRelationship(concludedRelationshipWithoutSurvey);\n }, [\n isLoadingPostRelationshipSurveyResources,\n relationships,\n user?.id,\n programs,\n surveys,\n ]);\n\n useEffect(() => {\n if (\n !isLoadingSurveys &&\n !isSurveySubmitted &&\n !surveyType &&\n concludedRelationship\n ) {\n setSurveyType('post-relationship');\n }\n }, [\n isLoadingSurveys,\n isSurveySubmitted,\n surveyType,\n concludedRelationship,\n setSurveyType,\n ]);\n\n const {\n title,\n description,\n heading,\n subheading,\n profile,\n surveyFields,\n isGuide,\n isGroupProgram,\n isSurveyEnabled,\n isOnGuiderVideoPage,\n } = useSurveyResources({\n surveyType: 'post_relationship_survey',\n relationship: concludedRelationship,\n user,\n });\n\n useEffect(() => {\n if (!isDelayed) {\n setOpen(true);\n }\n }, [isDelayed, open]);\n\n if (\n isSurveySubmitted ||\n surveyType !== 'post-relationship' ||\n !surveyType ||\n !concludedRelationship?.programSlug ||\n !isSurveyEnabled ||\n !concludedRelationship ||\n !surveyFields.length ||\n isOnGuiderVideoPage ||\n isDelayed\n ) {\n return <>;\n }\n const concludedAt = concludedRelationship?.concludedAt;\n\n const time = concludedAt\n ? format(new Date(concludedAt), FormattedTime, { locale })\n : '';\n\n const date = concludedAt\n ? format(new Date(concludedAt), FormattedDate, { locale })\n : '';\n\n const interpolatedDescription = interpolate(description, {\n time,\n date,\n });\n\n function handleNotNow() {\n window.sessionStorage.removeItem('post-relationship-delay');\n window.sessionStorage.setItem('post-relationship-delay', 'true');\n setOpen(false);\n }\n\n return (\n \n ) : (\n \n )\n ) : (\n <>\n )\n }\n >\n \n \n );\n}\n","import {\n useBaseLanguage,\n useOrganizationPrograms,\n} from '@guider-global/sanity-hooks';\nimport { ISession } from '@guider-global/shared-types';\nimport { GroupAvatar, SurveyModal } from '@guider-global/ui';\nimport { SurveyAvatar } from 'components';\nimport { format } from 'date-fns';\nimport { SurveyForm } from 'forms';\nimport {\n useLocalization,\n useRelationships,\n useSessions,\n useSurveyResources,\n useSurveys,\n useUsers,\n} from 'hooks';\nimport { useContext, useEffect, useState } from 'react';\nimport { SurveyModalsContext } from '../SurveyModalsContext';\nimport {\n isValidDate,\n getFriendlyDateFormat,\n getLanguageFromCMS,\n getTimeFormat,\n useIsSafariOrIOS,\n getSubDomain,\n} from '@guider-global/front-end-utils';\nimport {\n interpolate,\n isSurveyFieldForGuide,\n isSurveyFieldForTrainee,\n} from 'functions';\n\nexport function PostSessionSurveyModalContainer() {\n const { surveyType, setSurveyType, isSurveySubmitted } =\n useContext(SurveyModalsContext);\n const IsSafariOrIOS = useIsSafariOrIOS();\n\n // Local state\n const [elapsedSession, setElapsedSession] = useState();\n const [open, setOpen] = useState(true);\n\n // Organization and Base language\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n // Sanity organization programs\n const { programs, isLoadingPrograms } = useOrganizationPrograms({\n organizationSlug,\n });\n\n // Users\n const { users: getUsers, isLoadingUsers: getIsLoadingUsers } = useUsers({});\n const isLoadingUsers = getIsLoadingUsers();\n const [user] = getUsers();\n\n // Relationships\n const {\n relationships: getRelationships,\n isLoadingRelationships: getIsLoadingRelationships,\n } = useRelationships({});\n const isLoadingRelationships = getIsLoadingRelationships();\n const relationships = getRelationships();\n const relationship = relationships.find(\n (relationship) => relationship.id === elapsedSession?.relationshipId,\n );\n const programSlug = relationship?.programSlug;\n\n // Sessions\n const { sessions, isLoadingSessions } = useSessions({});\n\n // Time and date format\n const locale = getLanguageFromCMS(baseLanguage?.language_code);\n const FormattedTime = getTimeFormat(baseLanguage?.time_format);\n const FormattedDate = getFriendlyDateFormat(baseLanguage?.date_format);\n\n // Surveys\n const { surveys, isLoadingSurveys } = useSurveys({});\n\n const isLoadingPostSessionSurveyResources =\n isLoadingPrograms ||\n isLoadingRelationships ||\n isLoadingUsers ||\n isLoadingSessions ||\n isLoadingSurveys;\n\n const isDelayed =\n window.sessionStorage.getItem(`post-session-delay`) === 'true' ?? false;\n\n useEffect(() => {\n if (isLoadingPostSessionSurveyResources) {\n return;\n }\n\n const now = new Date();\n\n const sessionWithoutSurvey = sessions?.find((session) => {\n const sessionEndDate = new Date(session.end);\n const hasSessionElapsed = sessionEndDate < now;\n const relationship = relationships.find(\n (relationship) => relationship.id === session.relationshipId,\n );\n const isGuide = relationship?.guideProfiles?.at(0)?.userId === user?.id;\n const sessionCount = relationship?.sessions?.length ?? 0;\n\n const program = programs.find(\n (program) => program.metadata.id.current === session.programSlug,\n );\n const survey = program?.surveys?.post_session_survey;\n const surveyFields = survey?.fields ?? [];\n const surveyFieldsByRole = surveyFields.filter((surveyField) =>\n isGuide\n ? isSurveyFieldForGuide(surveyField, sessionCount)\n : isSurveyFieldForTrainee(surveyField, sessionCount),\n );\n const surveyStartDate = survey?.start_date;\n\n const hasSessionEndedAfterSurveyStartDate =\n surveyStartDate &&\n isValidDate(surveyStartDate) &&\n sessionEndDate > new Date(surveyStartDate);\n const isNotPastSession = !session.pastSession;\n const hasNotProvidedSessionFeedback = !surveys?.find(\n (survey) =>\n survey.type === 'post-session' && survey.session === session.id,\n );\n\n return (\n survey?.enabled &&\n surveyFieldsByRole.length &&\n hasSessionElapsed &&\n relationship &&\n hasSessionEndedAfterSurveyStartDate &&\n hasNotProvidedSessionFeedback &&\n isNotPastSession\n );\n });\n\n setElapsedSession(sessionWithoutSurvey);\n }, [\n isLoadingPostSessionSurveyResources,\n relationships,\n user?.id,\n sessions,\n programs,\n surveys,\n ]);\n\n useEffect(() => {\n if (\n !isLoadingSurveys &&\n !isSurveySubmitted &&\n !surveyType &&\n elapsedSession\n ) {\n setSurveyType('post-session');\n }\n }, [\n isLoadingSurveys,\n isSurveySubmitted,\n surveyType,\n elapsedSession,\n setSurveyType,\n ]);\n\n const {\n title,\n description,\n heading,\n subheading,\n profile,\n surveyFields,\n isGuide,\n isGroupProgram,\n isSurveyEnabled,\n isOnGuiderVideoPage,\n } = useSurveyResources({\n surveyType: 'post_session_survey',\n relationship,\n user,\n });\n\n useEffect(() => {\n if (!isDelayed) {\n setOpen(true);\n }\n }, [isDelayed, open]);\n\n if (\n isSurveySubmitted ||\n surveyType !== 'post-session' ||\n !surveyType ||\n !programSlug ||\n !isSurveyEnabled ||\n !elapsedSession ||\n !surveyFields.length ||\n isOnGuiderVideoPage ||\n isDelayed\n ) {\n return <>;\n }\n\n const sessionTime = elapsedSession.start;\n\n const time = sessionTime\n ? format(new Date(sessionTime), FormattedTime, { locale })\n : '';\n\n const date = sessionTime\n ? format(new Date(sessionTime), FormattedDate, { locale })\n : '';\n\n const interpolatedDescription = interpolate(description, {\n time,\n date,\n });\n\n function handleNotNow() {\n window.sessionStorage.setItem('post-session-delay', 'true');\n setOpen(false);\n }\n\n return (\n \n ) : (\n \n )\n ) : (\n <>\n )\n }\n >\n \n \n );\n}\n","import { SuccessModal } from '@guider-global/ui';\nimport { useContext } from 'react';\nimport { SurveyModalsContext } from '../SurveyModalsContext';\n\nimport { getSubDomain } from '@guider-global/front-end-utils';\nimport { useBaseLanguage } from '@guider-global/sanity-hooks';\nimport { useLocalization } from 'hooks';\n\nexport function ThankYouSurveyModalContainer() {\n const { isSurveySubmitted, resetState } = useContext(SurveyModalsContext);\n const organizationSlug = getSubDomain();\n const { localeCode } = useLocalization(organizationSlug);\n const { baseLanguage } = useBaseLanguage({ localeCode });\n\n return (\n \n );\n}\n","import { theme } from '@guider-global/ui';\nimport { ThemeProvider, useTheme } from '@mui/material';\nimport { deepMerge } from 'utils';\nimport { PostRelationshipSurveyModalContainer } from './PostRelationshipSurveyModalContainer';\nimport { PostSessionSurveyModalContainer } from './PostSessionSurveyModalContainer';\nimport { SurveyModalsProvider } from './SurveyModalsContext';\nimport { ThankYouSurveyModalContainer } from './ThankYouSurveyModalContainer';\n\nexport function SurveyModals() {\n const organizationTheme = useTheme();\n\n const combinedPalette = deepMerge(\n theme.appTheme.palette,\n organizationTheme.palette,\n );\n\n return (\n \n \n \n \n \n \n \n );\n}\n","import { createTheme, Theme } from '@mui/material';\nimport { createContext, SetStateAction } from 'react';\nimport { theme } from 'styles';\n\ninterface IThemeContext {\n theme: Theme;\n setTheme: (value: SetStateAction) => void;\n}\n\nconst defaultTheme = createTheme(theme);\n\nexport const ThemeContext = createContext({\n theme: defaultTheme,\n setTheme: () => null,\n});\n"],"names":["ReviewContainer","review","approved","setApproved","useState","isApproved","organizationTheme","useTheme","palette","dispatch","useDispatch","organizationSlug","getSubDomain","localeCode","baseLanguage","useBaseLanguage","reviewsText","settings","reviews","reqReviews","isLoadingReviews","Box","display","flexDirection","p","gap","borderRadius","bgcolor","sx","border","direction","spacing","alignItems","justifyContent","Array","from","length","score","Star","color","text","visible_label","hidden_label","variant","checked","success","main","onChange","method","url","otpSurveyId","data","err","severity","message","timeout","handleApproval","disabled","Visibility","mt","VisibilityOff","CircularProgress","size","animationTimingFunction","animationDuration","heading","firstName","lastName","jobTitle","subtitles","format","Date","date","OTPSurveyContainer","survey","surveySubmitted","setSurveySubmitted","searchParams","useSearchParams","get","time","reqOTPSurveys","getProgram","useSanityOrganizationPrograms","getSilently","program","programSlug","programType","program_details","program_type","programTypeVerb","program_type_text","common","verb","handleSessionLog","useCallback","id","user","useEffect","oneClick","surveyProps","useMemo","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","type","typeSettings","guider_surveys","guide_feedback_survey","thankYouSettings","thank_you_state","metaData","title","guideLastName","guideFirstName","roleSingular","guide","singular","programTypeNoun","noun","goals_survey","role","traineeLastName","traineeFirstName","trainee","skills_survey","log_session_survey","description","buttonLabel","return_to_the_platform_button_label","programName","metadata","program_name","OTPSurveyForm","onSuccess","SurveyModalsContext","createContext","surveyType","setSurveyType","Error","isSurveySubmitted","setIsSurveySubmitted","resetState","SurveyModalsProvider","children","value","Provider","DashboardNotificationsContext","membership","relationship","hasMemberships","hasRelationships","hasSessions","hasAttendedSessions","hasCompletedOnboarding","relationshipId","sessionId","isGuide","isGroupProgram","isHiddenGroup","isActiveGroup","isEmptyGroup","isLoading","hasOpenMatchingRelationship","DashboardWrapper","programs","useOrganizationPrograms","profiles","isLoadingProfiles","useProfiles","profile","at","isLoadingBaseLanguage","memberships","isLoadingMemberships","useMemberships","find","current","relationships","isLoadingRelationships","useRelationships","activeRelationships","filter","isConcluded","program_variation","EProgramVariation","isPublished","traineeProfiles","sessions","isLoadingSessions","session","end","combinedPalette","theme","py","xs","md","px","width","backgroundColor","NotificationHighlightsContainer","navigate","notifications","useNotifications","params","pageLimit","page","latest","options","keepPreviousData","pb","src","height","dashboard","empty_state","align","textAlign","buttons","key","label","view_goals","onClick","explore_learning_hub","map","notification","SelectAMatchContainer","getProfileImage","useProfileImage","useContext","openMatchingGuide","roles","includes","openMatchingTrainee","users","useUsers","useSettings","defaultAvatar","buildSanityImageUrl","source","static_media","default_user_avatar","userImage","profilePicture","picture","userPicture","maxSpots","group_settings","max_trainees","spotsOccupied","spotsLeft","viewProps","_l","primaryButtonLabel","secondaryButtonLabel","primaryButtonOnClick","secondaryButtonOnClick","globals","edit_profile_button_label","visit_learning_hub","requiresApproval","onboarding","steps","group_program","guide_group_membership_pending_approval","guide_activate_group","groupMembers","toString","view_group_button_label","edit_group_profile_button_label","guide_group_membership_hidden","publish_profile_button_label","guide_create_group","create_group_button_label","individual_program","guide_membership_pending_approval","guide_membership_published","guide_membership_hidden","trainee_wait_for_session","trainee_select_a_group","select_a_group_button_label","trainee_select_a_match","find_a_match_button_label","otherUserAvatar","userAvatar","programLabel","NotificationsContainer","hasOpenMatchingRole","Skeleton","minHeight","ScheduleSessionContainer","OnboardingProgramContainer","HeroSectionContainer","showNotificationModal","setShowNotificationModal","showAllNotifications","zIndex","panel","cta","view_all_notifications_button_label","icon","leaderboard","card","NotificationModalContainer","onClose","loaderRef","useRef","setPage","allNotifications","setAllNotifications","isLoadingNotifications","reqNotifications","prevNotifications","some","shouldLoadNextPage","viewedNotificationIds","setViewedNotificationIds","markViewedNotificationsRead","status","observer","IntersectionObserver","entries","isIntersecting","prevPage","root","rootMargin","threshold","observe","disconnect","headingText","modal","closeButtonLabel","close_button_label","open","onVisible","prevViewedNotificationIds","handleNotificationVisible","ref","style","margin","padding","profileOrganizationFields","organizationFields","getAuthorizedPrograms","ctaPrograms","authorizedProgram","name","program_description","image","program_image","joinAsMenteeButton","joinAsMentorButton","variations","group","registration","registration_landing_page","trainee_cta_button_label","guide_cta_button_label","individual","displayPreference","display_preference","chipColor","userId","isUserGuide","guideProfiles","otherPartyProfile","otherUserImage","guide_schedule_group_session","schedule_group_session_button_label","schedule_a_session","schedule_a_session_button_label","NotificationBubbleDateLabel","show","dayFormatted","monthFormatted","sessionResponseNotificationMetaDataSchema","z","avatar","optional","counterpartyFirstName","counterpartyLastName","sessionName","sessionLocation","sessionDescription","sessionStart","sessionEnd","sessionUrl","notificationMetaDataSchema","eventType","relationshipUrl","createSessionUrl","oldSessionName","oldSessionLocation","oldSessionDescription","oldSessionStart","oldSessionEnd","goalCategory","goalObjective","manageGoalsUrl","goalId","merge","groupName","NotificationCardContainer","cardRef","getPrograms","accountSettings","timezone","locale","getLanguageFromCMS","language_code","formattedTime","getTimeFormat","time_format","metaDataParseResult","notificationMetaData","metaDataEntries","flatMap","metaDataObject","Object","metaDataRecord","fromEntries","safeParse","parseNotificationMetaData","error","console","avatars","pictureId","sasTokenApiPath","containerName","pictureUrl","pictureBlobName","blobPicture","plainUrl","avatarSrc","organization","useOrganization","goalCategories","goal_categories","categories","goal_category_name","slug","goal_category_slug","goal_category_icon","programTypeCommon","unread","createdAt","commonProps","caption","isMd","useMediaQuery","breakpoints","up","individual_relationships","relationships_individual_schedule_session","linkHref","linkLabel","button_label","relationships_individual_upcoming_session","view_session","body","getSessionDateAndDuration","relationships_individual_session_updated","strikethroughBody","relationships_individual_session_deleted","relationships_individual_relationship_created","view_relationships","relationships_individual_relationship_created_by_admin","relationships_individual_relationship_concluded","relationships_individual_relationship_concluded_by_admin","goalCategoryLabel","category","relationships_individual_shared_goal_updated","bodyColor","primary","bodyVariant","goals","view_goal_button_label","group_relationships","relationships_group_schedule_session","schedule_session","relationships_group_session_deleted","relationships_group_session_updated","relationships_group_upcoming_session","relationships_group_relationship_guide_concluded","relationships_group_trainee_left_group","relationships_individual_session_accepted","relationships_individual_session_tentatively_accepted","relationships_individual_session_declined","OnboardingChecklistContainer","contextHasRelationships","hideProgramItem","open_matching","enable_open_matching","isNotActiveGroup","percentageComplete","programStep","progress_indicator","join_a_program_label","percentCompletion","isChecked","isCurrent","find_a_match_label","schedule_session_label","attend_session_label","percentCompleteLabel","complete_label","progressDescription","PAGE_LIMIT","ProgressLeaderboardModalContainer","keyStats","userContributions","showLeaderboard","defaultAvatarSrc","leaderboardPositions","leaderboardMeta","isLoadingLeaderboardPositions","enableCount","enableRank","revalidateOnMount","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","rowCount","pagination","isPaginated","pageCount","leaderboardRows","index","rank","rest","yourContributionsLabel","your_contributions_label","dialMetricLabel","dialMetricDescription","counts","contributions_label","loadingRows","rankColumnLabel","table","rank_column_label","profileColumnLabel","name_column_label","contributionsColumnLabel","contributions_column_label","pageSize","handlePageChange","ProgressLeaderboardContainer","showModal","setShowModal","Boolean","dashboard_page","usersLeaderboardPositions","isLoadingUsersLeaderboardPositions","profileId","usersLeaderboardPosition","sessionCount","relationshipCount","goalCount","contributions","selectedLeaderboardRow","existsInPositions","findIndex","position","userPosition","viewLeaderboardLabel","view_leaderboard_button_label","onViewLeaderboard","DashboardResourcesContainer","learningHubLayoutItems","learning_hub","layout","organizationTopResources","top_resources","buttonLabels","resources","content_type_actions","resourceTypeLabels","content_types","content_selection_type","content_selection","learningHubLayoutItem","_type","tile_group_content_group","content","content_references","sort","Math","random","slice","resourcesData","resource","imageSrc","asset","excerpt","resourceType","mediaLabel","read_article_button_label","article","listen_to_audio_button_label","audio","visit_website_button_label","external_link","window","link","read_pdf_button_label","embedded_pdf","watch_video_button_label","video_duration","video","view_learning_hub_button_label","GroupProgramMembershipsContainer","relationshipsBaseLanguage","program_memberships","with_program_memberships","relationships_table","membershipDetailsBaseLanguage","membership_details","groupMembershipBaseLanguage","group_membership","programTypeText","editProfileButtonLabel","programMemberships","getRelationships","relationshipProfilesData","programData","guideMembership","traineeMembership","programRelationshipProfiles","guideRelationshipProfiles","guideProfile","traineeRelationshipProfiles","traineeRelationshipLimitReached","relationship_limits","enable_trainee_relationship_limit","trainee_relationship_limit","relationshipsTableHeaders","table_headers","group_name","numberOfSessions","number_of_sessions","nextSession","next_session","programAvatar","programCardTitle","traineeMembershipData","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","traineeMembershipDetails","traineeRelationshipRows","traineeRelationshipsEmptyState","traineeSkills","getFormattedSkills","skills","traineeFields","getFormattedProgramFields","unshift","traineeDetailsTitle","traineeDetailsDescription","creation_date","hasTraineeRelationships","activeButtonLabel","group_member","find_group_label","disabledButtonLabel","group_limit_reached","fields","button","pastSessions","start","utcToZonedTime","currentZonedDate","isAfter","upcomingSessions","isArchived","a","b","aStart","bStart","nextSessionLabel","no_session_placeholder","formatInTimeZone","guideUser","nextSessionColor","trainee_empty_state","rolePlural","pluralized","programVerb","descriptions","description_2","leftButton","rightButton","select_group_button","guideMembershipData","_F","_G","_H","_I","_J","_K","_L","_M","_N","guideMembershipDetails","guideRelationshipRows","guideRelationshipsEmptyState","guideSkills","guideFields","guideDetailsTitle","guideDetailsDescription","hasGuideRelationships","program_actions","manage_guide_profile_button_label","group_activation_pending","start_group_button_label","guide_empty_state","learning_hub_button_label","create_group_button","ProgramMembershipsCard","IndividualProgramMembershipsContainer","programRelationships","guideRelationships","traineeRelationships","user_name","guideCount","traineeCount","programCardDescription","traineeMembershipEmptyState","individual_membership","guide_limit_reached","find_another_guide","guideName","displayName","find_a_guide","guideDetailsButton","guideChip","guide_profile_statuses","listed","unlisted","chip","traineeProfile","traineeName","traineeUser","ProgramMembershipsContainer","isLoadingPrograms","variation","view_all_programs_button_label","alignSelf","_id","OpenMatchingProfileContainer","bio_label","skills_offered_label","skills_sought_label","empty_state_description","empty_state_title","profileData","guideRole","traineeRole","allSkills","soft_skills","hard_skills","traineeSkillsLabels","skill","sought","s","fieldSlug","join","guideSkillsLabels","offered","bio","rows","matchProfile","matchUser","dateA","details","chips","hidden","lg","field","wordBreak","headers","PostRelationshipSurveyModalContainer","IsSafariOrIOS","useIsSafariOrIOS","concludedRelationship","setConcludedRelationship","setOpen","isLoadingUsers","FormattedTime","FormattedDate","getFriendlyDateFormat","date_format","getIsLoadingRelationships","surveys","isLoadingSurveys","isLoadingPostRelationshipSurveyResources","isDelayed","sessionStorage","getItem","concludedRelationshipWithoutSurvey","post_relationship_survey","surveyFieldsByRole","surveyField","surveyStartDate","start_date","isRelationshipConcludedAfterSurveyStartDate","isValidDate","concludedAt","hasNotProvidedRelationshipFeedback","enabled","subheading","surveyFields","isSurveyEnabled","isOnGuiderVideoPage","interpolatedDescription","Avatar","SurveyForm","handleNotNow","removeItem","setItem","PostSessionSurveyModalContainer","elapsedSession","setElapsedSession","getUsers","getIsLoadingUsers","isLoadingPostSessionSurveyResources","now","sessionWithoutSurvey","sessionEndDate","hasSessionElapsed","post_session_survey","hasSessionEndedAfterSurveyStartDate","isNotPastSession","pastSession","hasNotProvidedSessionFeedback","sessionTime","ThankYouSurveyModalContainer","paperSx","minWidth","response_submitted_modal","SurveyModals","ThemeProvider","defaultTheme","ThemeContext","setTheme"],"sourceRoot":""}