From 98f71473789e265587988a7a276e3ee0d07f1da8 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Mon, 16 Dec 2024 10:26:03 -0800 Subject: [PATCH] IO-3020 Resolve smart scheduling upsell displays when they shouldn't. --- ...hedule-calendar-header-graph.component.jsx | 50 +++++++++++-------- .../schedule-calendar-header.component.jsx | 18 ++++--- .../schedule-job-modal.component.jsx | 4 +- .../components/upsell/upsell.component.jsx | 1 - 4 files changed, 44 insertions(+), 29 deletions(-) diff --git a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx index 7c81df1e4..37809967e 100644 --- a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx +++ b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx @@ -8,6 +8,7 @@ import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; import BlurWrapperComponent from "../feature-wrapper/blur-wrapper.component"; import { UpsellMaskWrapper, upsellEnum } from "../upsell/upsell.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -35,6 +36,28 @@ export function ScheduleCalendarHeaderGraph({ bodyshop, loadData }) { [] ); }, [loadData, ssbuckets]); + const hasSmartSchedulingAccess = HasFeatureAccess({ featureName: "smartscheduling", bodyshop }); + + const chartContents = ( + <> + + + + + + + + + + + ); const popContent = (
@@ -48,26 +71,13 @@ export function ScheduleCalendarHeaderGraph({ bodyshop, loadData }) { {loadData?.expectedJobCount} - - - - - - - - - - - - - + + {hasSmartSchedulingAccess ? ( + chartContents + ) : ( + {chartContents} + )} +
); diff --git a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx index 58a9c29dc..2bf99c1a9 100644 --- a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx +++ b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx @@ -18,6 +18,7 @@ import OwnerNameDisplay from "../owner-name-display/owner-name-display.component import ScheduleBlockDay from "../schedule-block-day/schedule-block-day.component"; import ScheduleCalendarHeaderGraph from "./schedule-calendar-header-graph.component"; import UpsellComponent, { upsellEnum, UpsellMaskWrapper } from "../upsell/upsell.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -52,6 +53,7 @@ export function ScheduleCalendarHeaderComponent({ const { t } = useTranslation(); const loadData = load[date.toISOString().substr(0, 10)]; + const hasSmartSchedulingAccess = HasFeatureAccess({ featureName: "smartscheduling", bodyshop }); const jobsOutPopup = () => (
e.stopPropagation()}> @@ -89,9 +91,11 @@ export function ScheduleCalendarHeaderComponent({ )} - - - + {!hasSmartSchedulingAccess && ( + + + + )}
); @@ -129,9 +133,11 @@ export function ScheduleCalendarHeaderComponent({ )} - - - + {!hasSmartSchedulingAccess && ( + + + + )} diff --git a/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx b/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx index 98764040c..c55163479 100644 --- a/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx +++ b/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx @@ -16,7 +16,7 @@ import ScheduleDayViewContainer from "../schedule-day-view/schedule-day-view.con import ScheduleExistingAppointmentsList from "../schedule-existing-appointments-list/schedule-existing-appointments-list.component"; import "./schedule-job-modal.scss"; import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; -import { BlurWrapper } from "../feature-wrapper/blur-wrapper.component"; +import BlurWrapper from "../feature-wrapper/blur-wrapper.component"; import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ @@ -138,7 +138,7 @@ export function ScheduleJobModalComponent({ ))} - {smartOptions.length > 1 && hasSmartSchedulingAccess && ( + {!smartOptions.length > 1 && hasSmartSchedulingAccess && ( )} diff --git a/client/src/components/upsell/upsell.component.jsx b/client/src/components/upsell/upsell.component.jsx index 704959ba8..8857a278d 100644 --- a/client/src/components/upsell/upsell.component.jsx +++ b/client/src/components/upsell/upsell.component.jsx @@ -19,7 +19,6 @@ export default function UpsellComponent({ featureName, subFeatureName, upsell, d const { t } = useTranslation(); const resultProps = upsell || upsellEnum[featureName][subFeatureName]; - console.trace("***LOG ~ file: upsell.component.jsx:22 ~ UpsellComponent ~ resultProps:", resultProps); const componentRef = useRef(null); useEffect(() => {