IO-3020 IO-3036 Transition enum to function to render correctly.

This commit is contained in:
Patrick Fic
2024-12-10 13:23:07 -08:00
parent 7fdf109e14
commit d869dbe97b
34 changed files with 40 additions and 38 deletions

View File

@@ -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} />
}) })
}} }}
/> />

View File

@@ -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>
)} )}

View File

@@ -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>
)} )}

View File

@@ -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

View File

@@ -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>
)} )}

View File

@@ -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>
) )
}) })

View File

@@ -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}

View File

@@ -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>

View File

@@ -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>
</> </>

View File

@@ -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>
) )
}) })

View File

@@ -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>
} }
} }
}; });

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -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>
} }
> >

View File

@@ -18,7 +18,7 @@ i18n
.use(initReactI18next) .use(initReactI18next)
.init( .init(
{ {
ns: ["translation"], //ns: ["translation"],
resources, resources,
//lng: "en", //lng: "en",
detection: {}, detection: {},