diff --git a/src/languages/en.ts b/src/languages/en.ts index f1c53a6b91a1..4800ecc651af 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -4557,6 +4557,7 @@ const translations = { description: 'Choose from the support options below:', chatWithConcierge: 'Chat with Concierge', scheduleSetupCall: 'Schedule a setup call', + scheduleADemo: 'Schedule a demo', questionMarkButtonTooltip: 'Get assistance from our team', exploreHelpDocs: 'Explore help docs', }, diff --git a/src/languages/es.ts b/src/languages/es.ts index 6b70e4876753..d59425ae9d5f 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4604,6 +4604,7 @@ const translations = { description: 'Elige una de las siguientes opciones:', chatWithConcierge: 'Chatear con Concierge', scheduleSetupCall: 'Concertar una llamada', + scheduleADemo: 'Programa una demostración', questionMarkButtonTooltip: 'Obtén ayuda de nuestro equipo', exploreHelpDocs: 'Explorar la documentación de ayuda', }, diff --git a/src/pages/home/HeaderView.tsx b/src/pages/home/HeaderView.tsx index 4ddaafe89cab..55d29077141d 100644 --- a/src/pages/home/HeaderView.tsx +++ b/src/pages/home/HeaderView.tsx @@ -1,5 +1,5 @@ import {useRoute} from '@react-navigation/native'; -import React, {memo} from 'react'; +import React, {memo, useEffect} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; import {useOnyx} from 'react-native-onyx'; @@ -8,7 +8,7 @@ import CaretWrapper from '@components/CaretWrapper'; import ConfirmModal from '@components/ConfirmModal'; import DisplayNames from '@components/DisplayNames'; import Icon from '@components/Icon'; -import {BackArrow, DotIndicator, FallbackAvatar} from '@components/Icon/Expensicons'; +import {BackArrow, CalendarSolid, DotIndicator, FallbackAvatar} from '@components/Icon/Expensicons'; import MultipleAvatars from '@components/MultipleAvatars'; import OfflineWithFeedback from '@components/OfflineWithFeedback'; import ParentNavigationSubtitle from '@components/ParentNavigationSubtitle'; @@ -24,6 +24,8 @@ import usePolicy from '@hooks/usePolicy'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; +import {openExternalLink} from '@libs/actions/Link'; +import {getAssignedSupportData} from '@libs/actions/Policy/Policy'; import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID'; import Navigation from '@libs/Navigation/Navigation'; import {getPersonalDetailsForAccountIDs} from '@libs/OptionsListUtils'; @@ -100,6 +102,7 @@ function HeaderView({report, parentReportAction, onNavigationMenuButtonClicked, const [parentReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(report?.parentReportID) ?? getNonEmptyStringOnyxID(report?.reportID)}`); const policy = usePolicy(report?.policyID); const [personalDetails] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST); + const [account] = useOnyx(ONYXKEYS.ACCOUNT); const {translate} = useLocalize(); const theme = useTheme(); @@ -126,6 +129,14 @@ function HeaderView({report, parentReportAction, onNavigationMenuButtonClicked, const policyName = getPolicyName(report, true); const policyDescription = getPolicyDescriptionText(policy); const isPersonalExpenseChat = isPolicyExpenseChat && isCurrentUserSubmitter(report?.reportID); + const policyID = report?.policyID; + useEffect(() => { + if (!policyID) { + return; + } + getAssignedSupportData(policyID); + }, [policyID]); + const shouldShowSubtitle = () => { if (!subtitle) { return false; @@ -139,6 +150,8 @@ function HeaderView({report, parentReportAction, onNavigationMenuButtonClicked, return true; }; + const shouldShowGuideBooking = !!account && report?.reportID.toString() === account?.adminsRoomReportID?.toString() && !!account?.guideDetails?.calendarLink; + const join = checkIfActionIsAllowed(() => joinRoom(report)); const canJoin = canJoinChat(report, parentReportAction, policy); @@ -177,6 +190,25 @@ function HeaderView({report, parentReportAction, onNavigationMenuButtonClicked, const [onboardingPurposeSelected] = useOnyx(ONYXKEYS.ONBOARDING_PURPOSE_SELECTED); const isChatUsedForOnboarding = isChatUsedForOnboardingReportUtils(report, onboardingPurposeSelected); + const guideBookingButton = ( +