IO-3020 IO-3036 Transition enum to function to render correctly.
This commit is contained in:
@@ -240,7 +240,7 @@ export function BillsListTableComponent({
|
|||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
locale={{
|
locale={{
|
||||||
...(!hasBillsAccess && {
|
...(!hasBillsAccess && {
|
||||||
emptyText: <UpsellComponent upsell={upsellEnum.bills.general} />
|
emptyText: <UpsellComponent upsell={upsellEnum().bills.general} />
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ export function JobAuditTrail({ bodyshop, currentUser, jobId }) {
|
|||||||
{!hasAuditAccess && (
|
{!hasAuditAccess && (
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.audit.general} disableMask />
|
<UpsellComponent upsell={upsellEnum().audit.general} disableMask />
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ export function JobBillsTotalComponent({
|
|||||||
{!hasBillsAccess && (
|
{!hasBillsAccess && (
|
||||||
<Col span={6}>
|
<Col span={6}>
|
||||||
<Card style={{ height: "100%" }}>
|
<Card style={{ height: "100%" }}>
|
||||||
<UpsellComponent upsell={upsellEnum.bills.autoreconcile} disableMask />
|
<UpsellComponent upsell={upsellEnum().bills.autoreconcile} disableMask />
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ export function JobLifecycleComponent({ job, statuses, ...rest }) {
|
|||||||
style={{ width: "100%" }}
|
style={{ width: "100%" }}
|
||||||
>
|
>
|
||||||
<Card type="inner" style={{ marginTop: "10px" }}>
|
<Card type="inner" style={{ marginTop: "10px" }}>
|
||||||
<UpsellComponent upsell={upsellEnum.lifecycle.general} />
|
<UpsellComponent upsell={upsellEnum().lifecycle.general} />
|
||||||
</Card>
|
</Card>
|
||||||
<BlurWrapperComponent featureName="lifecycle">
|
<BlurWrapperComponent featureName="lifecycle">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ function JobsDocumentsComponent({
|
|||||||
{!hasMediaAccess && (
|
{!hasMediaAccess && (
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.media.general} />
|
<UpsellComponent upsell={upsellEnum().media.general} />
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
)}
|
)}
|
||||||
@@ -152,7 +152,7 @@ function JobsDocumentsComponent({
|
|||||||
{hasMediaAccess && !hasMobileAccess && (
|
{hasMediaAccess && !hasMobileAccess && (
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.media.mobile} />
|
<UpsellComponent upsell={upsellEnum().media.mobile} />
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ export function LaborAllocationsTable({
|
|||||||
...(!hasTimeTicketAccess && {
|
...(!hasTimeTicketAccess && {
|
||||||
emptyText: (
|
emptyText: (
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.timetickets.allocations} />
|
<UpsellComponent upsell={upsellEnum().timetickets.allocations} />
|
||||||
</Card>
|
</Card>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@@ -249,7 +249,7 @@ export function LaborAllocationsTable({
|
|||||||
...(!hasTimeTicketAccess && {
|
...(!hasTimeTicketAccess && {
|
||||||
emptyText: (
|
emptyText: (
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.timetickets.allocations} />
|
<UpsellComponent upsell={upsellEnum().timetickets.allocations} />
|
||||||
</Card>
|
</Card>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export function ScheduleCalendarHeaderGraph({ bodyshop, loadData }) {
|
|||||||
<strong>{loadData?.expectedJobCount}</strong>
|
<strong>{loadData?.expectedJobCount}</strong>
|
||||||
</BlurWrapperComponent>
|
</BlurWrapperComponent>
|
||||||
</Space>
|
</Space>
|
||||||
<UpsellMaskWrapper upsell={upsellEnum.smartscheduling.general}>
|
<UpsellMaskWrapper upsell={upsellEnum().smartscheduling.general}>
|
||||||
<BlurWrapperComponent featureName="smartscheduling">
|
<BlurWrapperComponent featureName="smartscheduling">
|
||||||
<RadarChart
|
<RadarChart
|
||||||
// cx={300}
|
// cx={300}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export function ScheduleCalendarHeaderComponent({
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<Card style={{ maxWidth: "30rem" }}>
|
<Card style={{ maxWidth: "30rem" }}>
|
||||||
<UpsellComponent size="small" upsell={upsellEnum.smartscheduling.hrsdelta} />
|
<UpsellComponent size="small" upsell={upsellEnum().smartscheduling.hrsdelta} />
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -130,7 +130,7 @@ export function ScheduleCalendarHeaderComponent({
|
|||||||
</tr>
|
</tr>
|
||||||
)}
|
)}
|
||||||
<Card style={{ maxWidth: "30rem" }}>
|
<Card style={{ maxWidth: "30rem" }}>
|
||||||
<UpsellComponent size="small" upsell={upsellEnum.smartscheduling.hrsdelta} />
|
<UpsellComponent size="small" upsell={upsellEnum().smartscheduling.hrsdelta} />
|
||||||
</Card>
|
</Card>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ export function ScheduleJobModalComponent({
|
|||||||
</Button>
|
</Button>
|
||||||
))}
|
))}
|
||||||
{smartOptions.length > 1 && hasSmartSchedulingAccess && (
|
{smartOptions.length > 1 && hasSmartSchedulingAccess && (
|
||||||
<UpsellComponent upsell={upsellEnum.smartscheduling.general} />
|
<UpsellComponent upsell={upsellEnum().smartscheduling.general} />
|
||||||
)}
|
)}
|
||||||
</Space>
|
</Space>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ export function TimeTicketList({
|
|||||||
...(!hasTimeTicketsAccess && {
|
...(!hasTimeTicketsAccess && {
|
||||||
emptyText: (
|
emptyText: (
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.timetickets.general} />
|
<UpsellComponent upsell={upsellEnum().timetickets.general} />
|
||||||
</Card>
|
</Card>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import "./upsell.styles.scss";
|
|||||||
export default function UpsellComponent({ featureName, subFeatureName, upsell, disableMask }) {
|
export default function UpsellComponent({ featureName, subFeatureName, upsell, disableMask }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const resultProps = upsell || upsellEnum[featureName][subFeatureName];
|
const resultProps = upsell || upsellEnum[featureName][subFeatureName];
|
||||||
|
|
||||||
|
console.trace("***LOG ~ file: upsell.component.jsx:22 ~ UpsellComponent ~ resultProps:", resultProps);
|
||||||
const componentRef = useRef(null);
|
const componentRef = useRef(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -64,7 +66,7 @@ export function UpsellMaskWrapper({ children, upsell, featureName, subFeatureNam
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
//This is kept in this function as pulling it out into it's own util/enum prevents passing JSX as an `extra` prop
|
//This is kept in this function as pulling it out into it's own util/enum prevents passing JSX as an `extra` prop
|
||||||
export const upsellEnum = {
|
export const upsellEnum = () => ({
|
||||||
bills: {
|
bills: {
|
||||||
autoreconcile: {
|
autoreconcile: {
|
||||||
//icon: null,
|
//icon: null,
|
||||||
@@ -233,4 +235,4 @@ export const upsellEnum = {
|
|||||||
extra: <Button type="primary">{i18n.t("upsell.cta.learnmore")}</Button>
|
extra: <Button type="primary">{i18n.t("upsell.cta.learnmore")}</Button>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export function AccountingPayablesContainer({ bodyshop, setBreadcrumbs, setSelec
|
|||||||
featureName="export"
|
featureName="export"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.accounting.payables} />
|
<UpsellComponent upsell={upsellEnum().accounting.payables} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ export function AccountingPaymentsContainer({ bodyshop, setBreadcrumbs, setSelec
|
|||||||
featureName="export"
|
featureName="export"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.accounting.payments} />
|
<UpsellComponent upsell={upsellEnum().accounting.payments} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export function AccountingReceivablesContainer({ bodyshop, setBreadcrumbs, setSe
|
|||||||
featureName="export"
|
featureName="export"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.accounting.receivables} />
|
<UpsellComponent upsell={upsellEnum().accounting.receivables} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="bills"
|
featureName="bills"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.bills.general} />
|
<UpsellComponent upsell={upsellEnum().bills.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ export function ContractCreatePageContainer({ bodyshop, setBreadcrumbs, setSelec
|
|||||||
featureName="courtesycars"
|
featureName="courtesycars"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.courtesycars.general} />
|
<UpsellComponent upsell={upsellEnum().courtesycars.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ export function ContractDetailPageContainer({ setBreadcrumbs, addRecentItem, set
|
|||||||
featureName="courtesycars"
|
featureName="courtesycars"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.courtesycars.general} />
|
<UpsellComponent upsell={upsellEnum().courtesycars.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export function ContractsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="courtesycars"
|
featureName="courtesycars"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.courtesycars.general} />
|
<UpsellComponent upsell={upsellEnum().courtesycars.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ export function CourtesyCarCreateContainer({ bodyshop, setBreadcrumbs, setSelect
|
|||||||
featureName="courtesycars"
|
featureName="courtesycars"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.courtesycars.general} />
|
<UpsellComponent upsell={upsellEnum().courtesycars.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export function CourtesyCarsPageContainer({ setBreadcrumbs, setSelectedHeader })
|
|||||||
featureName="courtesycars"
|
featureName="courtesycars"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.courtesycars.general} />
|
<UpsellComponent upsell={upsellEnum().courtesycars.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="dashboard"
|
featureName="dashboard"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.dashboard.general} />
|
<UpsellComponent upsell={upsellEnum().dashboard.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="export"
|
featureName="export"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.accounting.receivables} />
|
<UpsellComponent upsell={upsellEnum().accounting.receivables} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export function JobsDeliverContainer({ bodyshop, setBreadcrumbs, setSelectedHead
|
|||||||
featureName="checklist"
|
featureName="checklist"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.checklist.general} />
|
<UpsellComponent upsell={upsellEnum().checklist.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export function JobsIntakeContainer({ bodyshop, setBreadcrumbs, setSelectedHeade
|
|||||||
featureName="checklist"
|
featureName="checklist"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.checklist.general} />
|
<UpsellComponent upsell={upsellEnum().checklist.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export function AllJobs({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="payments"
|
featureName="payments"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.payments.general} />
|
<UpsellComponent upsell={upsellEnum().payments.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
z
|
z
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export function ProductionBoardContainer({ setBreadcrumbs, bodyshop, setSelected
|
|||||||
featureName="visualboard"
|
featureName="visualboard"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.visualboard.general} />
|
<UpsellComponent upsell={upsellEnum().visualboard.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="scoreboard"
|
featureName="scoreboard"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.scoreboard.general} />
|
<UpsellComponent upsell={upsellEnum().scoreboard.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function ShiftClock() {
|
|||||||
featureName="timetickets"
|
featureName="timetickets"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.dashboard.general} />
|
<UpsellComponent upsell={upsellEnum().dashboard.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export function ShopCsiContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }
|
|||||||
featureName="csi"
|
featureName="csi"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.csi.general} />
|
<UpsellComponent upsell={upsellEnum().csi.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ export function TechPage({ technician }) {
|
|||||||
featureName="techconsole"
|
featureName="techconsole"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.techconsole.general} />
|
<UpsellComponent upsell={upsellEnum().techconsole.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export function TempDocumentsContainer({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="media"
|
featureName="media"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.media.general} />
|
<UpsellComponent upsell={upsellEnum().media.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export function TimeTicketsContainer({ bodyshop, setBreadcrumbs, setSelectedHead
|
|||||||
featureName="timetickets"
|
featureName="timetickets"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.timetickets.general} />
|
<UpsellComponent upsell={upsellEnum().timetickets.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export function TtApprovalsPage({ setBreadcrumbs, setSelectedHeader }) {
|
|||||||
featureName="timetickets"
|
featureName="timetickets"
|
||||||
noauth={
|
noauth={
|
||||||
<Card>
|
<Card>
|
||||||
<UpsellComponent upsell={upsellEnum.timetickets.general} />
|
<UpsellComponent upsell={upsellEnum().timetickets.general} />
|
||||||
</Card>
|
</Card>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ i18n
|
|||||||
.use(initReactI18next)
|
.use(initReactI18next)
|
||||||
.init(
|
.init(
|
||||||
{
|
{
|
||||||
ns: ["translation"],
|
//ns: ["translation"],
|
||||||
resources,
|
resources,
|
||||||
//lng: "en",
|
//lng: "en",
|
||||||
detection: {},
|
detection: {},
|
||||||
|
|||||||
Reference in New Issue
Block a user