From 7ca50965d86c252a9f09a3e99228727d3796502a Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 19 Dec 2025 09:50:51 -0800 Subject: [PATCH] Add ES banner for non ES customers. --- electron/ipc-main-handler.js | 21 ++++++++++++++- package.json | 2 +- .../jobs-detail/jobs-detail.organism.jsx | 27 +++++++++++++++++-- src/ipc.types.json | 1 + 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/electron/ipc-main-handler.js b/electron/ipc-main-handler.js index 469acb2..f0e024a 100644 --- a/electron/ipc-main-handler.js +++ b/electron/ipc-main-handler.js @@ -1,4 +1,4 @@ -const { ipcMain, app: electronApp, app } = require("electron"); +const { ipcMain, app: electronApp, app, BrowserWindow } = require("electron"); const { default: ipcTypes } = require("../src/ipc.types.commonjs"); const { store } = require("./electron-store"); @@ -74,3 +74,22 @@ ipcMain.handle(ipcTypes.app.toMain.scrubEstimate, (event, { job }) => { return ScrubEstimate({ job }) }); +ipcMain.on(ipcTypes.app.toMain.openExternalWindow, (event, url) => { + const externalWindow = new BrowserWindow({ + width: 1200, + height: 800, + webPreferences: { + nodeIntegration: false, + contextIsolation: true + } + }); + + externalWindow.loadURL(url); + + // Optional: Open external links in default browser + externalWindow.webContents.setWindowOpenHandler(({ url }) => { + require('electron').shell.openExternal(url); + return { action: 'deny' }; + }); +}); + diff --git a/package.json b/package.json index b296966..4893908 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "ImEX RPS", "author": "ImEX Systems Inc. ", "description": "ImEX RPS", - "version": "1.5.0", + "version": "1.5.1", "main": "electron/main.js", "homepage": "./", "dependencies": { diff --git a/src/components/organisms/jobs-detail/jobs-detail.organism.jsx b/src/components/organisms/jobs-detail/jobs-detail.organism.jsx index 75756df..eefac72 100644 --- a/src/components/organisms/jobs-detail/jobs-detail.organism.jsx +++ b/src/components/organisms/jobs-detail/jobs-detail.organism.jsx @@ -1,5 +1,5 @@ import { useQuery } from "@apollo/client"; -import { Badge, Card, Result } from "antd"; +import { Badge, Button, Card, Result } from "antd"; import { useEffect, useRef } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -13,6 +13,7 @@ import EstimateScrubberResultsMolecule from "../../molecules/estimate-scruber-re import JobsDetailDescriptionMolecule from "../../molecules/jobs-detail-description/jobs-detail-description.molecule"; import JobsLinesTableMolecule from "../../molecules/jobs-lines-table/jobs-lines-table.molecule"; import JobsTargetsStatsMolecule from "../../molecules/jobs-targets-stats/jobs-targets-stats.molecule"; +import ipcTypes from "../../../ipc.types"; import "./jobs-detail.organism.styles.scss"; const mapStateToProps = createStructuredSelector({ @@ -85,12 +86,34 @@ export function JobsDetailOrganism({ bodyshop, selectedJobId, setSelectedJobTarg - {bodyshop.es_api_key && ( + {bodyshop.es_api_key ? ( + ) : ( + + { + const { ipcRenderer } = window; + ipcRenderer.send( + ipcTypes.app.toMain.openExternalWindow, + "https://atamb.ca/estimate-scrubber-trial?utm_source=imex_rps&utm_medium=app&utm_campaign=es_trial_banner" + ); + }} + > + Get Started + + } + > + )}