redesigned white labeling code

This commit is contained in:
Carter 2026-05-21 11:03:34 -06:00
parent a84c09a5c8
commit 81c2b687fa
9 changed files with 423 additions and 418 deletions

View file

@ -1,4 +1,3 @@
// import { isOffline } from "utils/environment";
import DefaultDarkLogo from "../assets/whitelabels/darkLogo.png";
import DefaultLightLogo from "../assets/whitelabels/lightLogo.png";
import AdapativeAgLogo from "../assets/whitelabels/AdaptiveAgriculture/logo.png";
@ -9,12 +8,10 @@ import BXTDarkLogo from "../assets/whitelabels/BXT/darkLogo.png";
import AeroGrowDarkLogo from "../assets/whitelabels/AeroGrow/darkLogo.png";
import AeroGrowLightLogo from "../assets/whitelabels/AeroGrow/lightLogo.png";
import MiVentLightLogo from "../assets/whitelabels/MiVent/lightLogo.png";
// import OmniAirLogo from "../assets/whitelabels/OmniAir/OmniAirLogo.png";
import MiPCALogo from "../assets/whitelabels/MiPCA/MiPCALogo.png";
import StreamlineLogo from "../assets/whitelabels/Streamline/stream-logo.png"
import IntellifarmsLogo from "../assets/whitelabels/Intellifarms/IFND-2023-Logo.png"
import IntellifarmsLogoWhite from "../assets/whitelabels/Intellifarms/IFND-2023-Logo-White.png"
// import { green, yellow } from "@mui/material/colors";
const protips: string[] = [
"You can see the latest measurements for a device by starring its components!",
@ -31,354 +28,408 @@ const protips: string[] = [
"Want to receive text messages about your devices? Update your phone number and enable SMS notifications!"
];
export interface WhiteLabelFeatures {
bins: boolean;
visualFarm: boolean;
contracts: boolean;
transactions: boolean;
fields: boolean;
grainTypes: boolean;
grainUnit: boolean;
marketplace: boolean;
cableEstimator: boolean;
ventilation: boolean;
mines: boolean;
constructionMap: boolean;
jobsites: boolean;
heaters: boolean;
aviationMap: boolean;
terminals: boolean;
security: boolean;
}
interface WhiteLabel {
name: any;
primaryColour: any; //must be a MATERIAL UI colour, used for various UI elements
secondaryColour: any; //must be a MATERIAL UI colour, used for a few UI elements (less importance)
signatureColour: any; //hex or RGB
signatureAccentColour: any; //hex or RGB
auth0ClientId: any;
slug: string;
name: string;
primaryColour: any;
secondaryColour: any;
signatureColour: any;
signatureAccentColour: any;
auth0ClientId: string;
redirectOnLogout: boolean;
logoutRedirectTarget: string;
darkLogo: any;
lightLogo: any;
transparentLogoBG: boolean; //determines whether the background of the logo should be transparent or not
transparentLogoBG: boolean;
blacklist: string[];
features: WhiteLabelFeatures;
hotjarID?: string;
docs: string;
protips: string[];
tutorialPlaylistID?: string;
thumbnail?: string;
tutorialFiles?: { name: string; url: string }[];
homePage?: string;
homePage: string;
}
// const DEFAULT_WHITELABEL: WhiteLabel = {
// name: import.meta.env.REACT_APP_WEBSITE_TITLE,
// primaryColour: import.meta.env.REACT_APP_PRIMARY_COLOUR,
// secondaryColour: import.meta.env.REACT_APP_SECONDARY_COLOUR,
// signatureColour: import.meta.env.REACT_APP_SIGNATURE_COLOUR,
// signatureAccentColour: "#fff",
// auth0ClientId: import.meta.env.REACT_APP_AUTH0_CLIENT_ID,
// redirectOnLogout: false,
// logoutRedirectTarget: "",
// darkLogo: DefaultDarkLogo,
// lightLogo: DefaultLightLogo,
// transparentLogoBG: false,
// blacklist: [],
// hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
// docs: "Platform",
// protips: protips,
// tutorialPlaylistID: ""
// };
const STAGING_WHITELABEL: WhiteLabel = {
name: "Staging",
primaryColour: import.meta.env.VITE_APP_PRIMARY_COLOUR,
secondaryColour: import.meta.env.VITE_APP_SECONDARY_COLOUR,
signatureColour: import.meta.env.VITE_APP_SIGNATURE_COLOUR,
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_STAGING_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: DefaultDarkLogo,
lightLogo: DefaultLightLogo,
transparentLogoBG: false,
blacklist: [],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
docs: "Platform",
protips: protips,
tutorialPlaylistID: "",
homePage: "/devices"
const AG_FEATURES: WhiteLabelFeatures = {
bins: true,
visualFarm: true,
contracts: true,
transactions: true,
fields: true,
grainTypes: true,
grainUnit: true,
marketplace: true,
cableEstimator: true,
ventilation: false,
mines: false,
constructionMap: false,
jobsites: false,
heaters: false,
aviationMap: false,
terminals: false,
security: false,
};
const BXT_WHITE_LABEL: WhiteLabel = {
name: "Brand X Technologies",
primaryColour: "blue",
// primaryColour: "#0000FF",
secondaryColour: "yellow",
// secondaryColour: "#FFFF00",
// signatureColour: "#272727",
signatureColour: "#005bb0",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_DEV_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: BXTDarkLogo,
lightLogo: BXTLightLogo,
transparentLogoBG: false,
blacklist: [],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
docs: "Platform",
protips: protips,
homePage: "/devices"
const CONSTRUCTION_FEATURES: WhiteLabelFeatures = {
bins: false,
visualFarm: false,
contracts: false,
transactions: false,
fields: false,
grainTypes: false,
grainUnit: false,
marketplace: false,
cableEstimator: false,
ventilation: false,
mines: false,
constructionMap: true,
jobsites: true,
heaters: true,
aviationMap: false,
terminals: false,
security: false,
};
const STREAMLINE_WHITE_LABEL: WhiteLabel = {
name: "Streamline",
primaryColour: "#FFFF",
// primaryColour: "#0000FF",
secondaryColour: "yellow",
// secondaryColour: "#FFFF00",
// signatureColour: "#272727",
signatureColour: "#005bb0",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_STREAMLINE_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: StreamlineLogo,
lightLogo: StreamlineLogo,
transparentLogoBG: false,
blacklist: [],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
docs: "Platform",
protips: protips,
homePage: "/devices"
const AVIATION_FEATURES: WhiteLabelFeatures = {
bins: false,
visualFarm: false,
contracts: false,
transactions: false,
fields: false,
grainTypes: false,
grainUnit: false,
marketplace: false,
cableEstimator: false,
ventilation: false,
mines: false,
constructionMap: false,
jobsites: false,
heaters: false,
aviationMap: true,
terminals: true,
security: false,
};
export function isBXT(): boolean {
return getName() === "Brand X Technologies";
const MIVENT_FEATURES: WhiteLabelFeatures = {
bins: false,
visualFarm: false,
contracts: false,
transactions: false,
fields: false,
grainTypes: false,
grainUnit: false,
marketplace: false,
cableEstimator: false,
ventilation: true,
mines: true,
constructionMap: false,
jobsites: false,
heaters: false,
aviationMap: false,
terminals: false,
security: false,
};
const BASE_FEATURES: WhiteLabelFeatures = {
bins: false,
visualFarm: false,
contracts: false,
transactions: false,
fields: false,
grainTypes: false,
grainUnit: false,
marketplace: false,
cableEstimator: false,
ventilation: false,
mines: false,
constructionMap: false,
jobsites: false,
heaters: false,
aviationMap: false,
terminals: false,
security: false,
};
const registry: Record<string, WhiteLabel> = {
"bxt": {
slug: "bxt",
name: "Brand X Technologies",
primaryColour: "blue",
secondaryColour: "yellow",
signatureColour: "#005bb0",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_DEV_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: BXTDarkLogo,
lightLogo: BXTLightLogo,
transparentLogoBG: false,
blacklist: [],
features: { ...BASE_FEATURES, security: true },
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
docs: "Platform",
protips: protips,
homePage: "/devices",
},
"staging": {
slug: "staging",
name: "Staging",
primaryColour: import.meta.env.VITE_APP_PRIMARY_COLOUR,
secondaryColour: import.meta.env.VITE_APP_SECONDARY_COLOUR,
signatureColour: import.meta.env.VITE_APP_SIGNATURE_COLOUR,
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_STAGING_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: DefaultDarkLogo,
lightLogo: DefaultLightLogo,
transparentLogoBG: false,
blacklist: [],
features: AG_FEATURES,
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_BXT,
docs: "Platform",
protips: protips,
homePage: "/devices",
},
"adaptive-ag": {
slug: "adaptive-ag",
name: "Adaptive Agriculture",
primaryColour: "green",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_ADAPTIVE_AGRICULTURE_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://adaptiveagriculture.ca",
darkLogo: AdapativeAgLogo,
lightLogo: AdapativeAgLogo,
transparentLogoBG: true,
blacklist: ["cost"],
features: AG_FEATURES,
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_ADAPTIVE_AGRICULTURE,
docs: "AdaptiveAg",
protips: protips,
tutorialPlaylistID: "PLpLmJnI66Jfl5FXME31ckGam-sD8gB1s2",
thumbnail: AdaptiveAgThumbnail,
tutorialFiles: [
{
name: "Bindapt+",
url: "https://adaptiveagriculture.ca/wp-content/uploads/2023/08/Bindapt-Set-Up-Guide.pdf"
},
{
name: "Adapter Plate",
url: "https://adaptiveagriculture.ca/wp-content/uploads/2023/08/Bindapt-Adapter-Plate-Set-Up-Guide.pdf"
}
],
homePage: "/bins",
},
"intellifarms": {
slug: "intellifarms",
name: "Intellifarms",
primaryColour: "#9E1B32",
secondaryColour: "#4A4F55",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_INTELLIFARMS_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://myintellifarms.com",
darkLogo: IntellifarmsLogo,
lightLogo: IntellifarmsLogoWhite,
transparentLogoBG: true,
blacklist: [],
features: AG_FEATURES,
docs: "Platform",
protips: protips,
homePage: "/bins",
},
"streamline": {
slug: "streamline",
name: "Streamline",
primaryColour: "#FFFF",
secondaryColour: "yellow",
signatureColour: "#005bb0",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_STREAMLINE_CLIENT_ID,
redirectOnLogout: false,
logoutRedirectTarget: "",
darkLogo: StreamlineLogo,
lightLogo: StreamlineLogo,
transparentLogoBG: false,
blacklist: [],
features: AG_FEATURES,
docs: "Platform",
protips: protips,
homePage: "/devices",
},
"aerogrow": {
slug: "aerogrow",
name: "AeroGrow",
primaryColour: "green",
secondaryColour: "cyan",
signatureColour: "#fff",
signatureAccentColour: "#000",
auth0ClientId: import.meta.env.VITE_AUTH0_AEROGROW_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://www.aerogrowmanufacturing.com",
darkLogo: AeroGrowDarkLogo,
lightLogo: AeroGrowLightLogo,
transparentLogoBG: true,
blacklist: [],
features: BASE_FEATURES,
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_AEROGROW,
docs: "Platform",
protips: protips,
homePage: "/devices",
},
"mivent": {
slug: "mivent",
name: "MiVent",
primaryColour: "green",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_MIVENT_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://mivent.ca",
darkLogo: MiVentLightLogo,
lightLogo: MiVentLightLogo,
transparentLogoBG: true,
blacklist: ["cost"],
features: MIVENT_FEATURES,
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_MIVENT,
docs: "Platform",
protips: protips,
homePage: "/devices",
},
"adaptive-construction": {
slug: "adaptive-construction",
name: "Adaptive Construction",
primaryColour: "blue",
secondaryColour: "blue",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_ADAPTIVE_CONSTRUCTION_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://adaptiveconstruction.ca",
darkLogo: AdConLogo,
lightLogo: AdConLogo,
transparentLogoBG: true,
blacklist: ["cost"],
features: CONSTRUCTION_FEATURES,
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_ADAPTIVE_CONSTRUCTION,
docs: "AdaptiveConstruction",
protips: protips,
homePage: "/devices",
},
"omniair": {
slug: "omniair",
name: "OmniAir",
primaryColour: "#004f9b",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_OMNIAIR_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://omniairsystems.com",
darkLogo: MiPCALogo,
lightLogo: MiPCALogo,
transparentLogoBG: true,
blacklist: ["cost"],
features: AVIATION_FEATURES,
docs: "OmniAir",
protips: protips,
homePage: "/devices",
},
"mipca": {
slug: "mipca",
name: "MiPCA",
primaryColour: "#004f9b",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_OMNIAIR_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://mionetech.com",
darkLogo: MiPCALogo,
lightLogo: MiPCALogo,
transparentLogoBG: true,
blacklist: ["cost"],
features: AVIATION_FEATURES,
docs: "MiPCA",
protips: protips,
homePage: "/devices",
},
};
// Ordered most-specific to least-specific
const DOMAIN_RULES: [RegExp, string][] = [
[/bxt-dev/, "bxt"],
[/staging\.brandxtech/, "staging"],
[/streamline\./, "streamline"],
[/brandxtech|brandxducks/, "bxt"],
[/adaptiveagriculture|adaptiveag/, "adaptive-ag"],
[/adaptiveconstruction/, "adaptive-construction"],
[/aerogrowmanufacturing/, "aerogrow"],
[/mivent/, "mivent"],
[/omniair/, "omniair"],
[/mionetech|mipca/, "mipca"],
[/myintellifarms|intellifarms/, "intellifarms"],
];
function resolveSlug(): string {
const override = import.meta.env.VITE_WHITELABEL;
if (override && registry[override]) return override;
const host = window.location.hostname;
for (const [pattern, slug] of DOMAIN_RULES) {
if (pattern.test(host)) return slug;
}
return "adaptive-ag";
}
const ADAPTIVE_AGRICULTURE_WHITE_LABEL: WhiteLabel = {
name: "Adaptive Agriculture",
primaryColour: "green",
// primaryColour: "#008000",
secondaryColour: "yellow",
// secondaryColour: "#FFFF00",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_ADAPTIVE_AGRICULTURE_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://adaptiveagriculture.ca",
darkLogo: AdapativeAgLogo,
lightLogo: AdapativeAgLogo,
transparentLogoBG: true,
blacklist: ["cost"],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_ADAPTIVE_AGRICULTURE,
docs: "AdaptiveAg",
protips: protips.concat([]),
tutorialPlaylistID: "PLpLmJnI66Jfl5FXME31ckGam-sD8gB1s2",
thumbnail: AdaptiveAgThumbnail,
tutorialFiles: [
{
name: "Bindapt+",
url: "https://adaptiveagriculture.ca/wp-content/uploads/2023/08/Bindapt-Set-Up-Guide.pdf"
},
{
name: "Adapter Plate",
url:
"https://adaptiveagriculture.ca/wp-content/uploads/2023/08/Bindapt-Adapter-Plate-Set-Up-Guide.pdf"
}
],
homePage: "/bins"
};
export function IsAdaptiveAgriculture(): boolean {
return (
getName() === "Adaptive Agriculture" ||
window.location.origin.includes("staging") ||
window.location.origin.includes("localhost")
);
}
const INTELLIFARMS_WHITE_LABEL: WhiteLabel = {
name: "Intellifarms",
primaryColour: "#9E1B32",
secondaryColour: "#4A4F55",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_INTELLIFARMS_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://myintellifarms.com",
darkLogo: IntellifarmsLogo,
lightLogo: IntellifarmsLogoWhite,
transparentLogoBG: true,
blacklist: [],
docs: "Platform",
protips: protips,
homePage: "/bins"
};
export function IsIntellifarms(): boolean {
return (
getName() === "Intellifarms"
// window.location.origin.includes("staging") ||
// window.location.origin.includes("localhost")
);
}
export function IsStreamline(): boolean {
return (
getName() === "Streamline"
// window.location.origin.includes("staging") ||
// window.location.origin.includes("localhost")
);
}
const AEROGROW_WHITE_LABEL: WhiteLabel = {
name: "AeroGrow",
primaryColour: "green",
secondaryColour: "cyan",
signatureColour: "#fff",
signatureAccentColour: "#000",
auth0ClientId: import.meta.env.VITE_AUTH0_AEROGROW_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://www.aerogrowmanufacturing.com",
darkLogo: AeroGrowDarkLogo,
lightLogo: AeroGrowLightLogo,
transparentLogoBG: true,
blacklist: [],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_AEROGROW,
docs: "Platform",
protips: protips
};
export function IsMiVent(): boolean {
return (
getName() === "MiVent" ||
window.location.origin.includes("staging") ||
window.location.origin.includes("localhost")
);
}
const MIVENT_WHITE_LABEL: WhiteLabel = {
name: "MiVent",
primaryColour: "green",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_MIVENT_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://mivent.ca",
darkLogo: MiVentLightLogo,
lightLogo: MiVentLightLogo,
transparentLogoBG: true,
blacklist: ["cost"],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_MIVENT,
docs: "Platform",
protips: protips.concat([])
};
const ADAPTIVE_CONSTRUCTION_WHITE_LABEL: WhiteLabel = {
name: "Adaptive Construction",
primaryColour: "blue",
secondaryColour: "blue",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_ADAPTIVE_CONSTRUCTION_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://adaptiveconstruction.ca",
darkLogo: AdConLogo,
lightLogo: AdConLogo,
transparentLogoBG: true,
blacklist: ["cost"],
hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_ADAPTIVE_CONSTRUCTION,
docs: "AdaptiveConstruction",
protips: protips.concat([])
};
export function IsAdCon(): boolean {
return (
getName() === "Adaptive Construction" ||
window.location.origin.includes("staging") ||
window.location.origin.includes("localhost")
);
}
const OMNIAIR_WHITE_LABEL: WhiteLabel = {
name: "OmniAir",
primaryColour: "#004f9b",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
auth0ClientId: import.meta.env.VITE_AUTH0_OMNIAIR_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://omniairsystems.com",
darkLogo: MiPCALogo,
lightLogo: MiPCALogo,
transparentLogoBG: true,
blacklist: ["cost"],
//hotjarID: import.meta.env.REACT_APP_HOTJAR_ID_OMNIAIR, testing what happens if this is excluded
docs: "OmniAir",
protips: protips.concat([])
};
export function IsOmniAir(): boolean {
return (
getName() === "OmniAir" ||
window.location.origin.includes("staging") ||
window.location.origin.includes("localhost")
);
}
const MIPCA_WHITE_LABEL: WhiteLabel = {
name: "MiPCA",
primaryColour: "#004f9b",
secondaryColour: "yellow",
signatureColour: "#272727",
signatureAccentColour: "#fff",
//omni air and MiPCA are the same client ID in Auth0, it is to replace it, once omniair gets removed we can re-name this
auth0ClientId: import.meta.env.VITE_AUTH0_OMNIAIR_CLIENT_ID,
redirectOnLogout: true,
logoutRedirectTarget: "https://mionetech.com",
darkLogo: MiPCALogo,
lightLogo: MiPCALogo,
transparentLogoBG: true,
blacklist: ["cost"],
docs: "MiPCA",
protips: protips.concat([])
};
export function IsMiPCA(): boolean {
return (
getName() === "MiPCA" ||
window.location.origin.includes("staging") ||
window.location.origin.includes("localhost")
);
}
const whitelabels = new Map<string, WhiteLabel>([
["streamline", STREAMLINE_WHITE_LABEL],
["adaptiveag", ADAPTIVE_AGRICULTURE_WHITE_LABEL],
["adaptiveagriculture", ADAPTIVE_AGRICULTURE_WHITE_LABEL],
["brandxducks", BXT_WHITE_LABEL],
["brandxtech", BXT_WHITE_LABEL],
["aerogrowmanufacturing", AEROGROW_WHITE_LABEL],
["localhost", BXT_WHITE_LABEL],
["staging", STAGING_WHITELABEL],
["10.0", ADAPTIVE_CONSTRUCTION_WHITE_LABEL],
["mivent", MIVENT_WHITE_LABEL],
["adaptiveconstruction", ADAPTIVE_CONSTRUCTION_WHITE_LABEL],
["omniair", OMNIAIR_WHITE_LABEL],
["mipca", MIPCA_WHITE_LABEL],
["mionetech", MIPCA_WHITE_LABEL],
["intellifarms", INTELLIFARMS_WHITE_LABEL]
]);
let cached: WhiteLabel | null = null;
export function getWhitelabel(): WhiteLabel {
// if (isOffline()) {
// return DEFAULT_WHITELABEL;
// }
if (!cached) {
cached = registry[resolveSlug()];
}
return cached;
}
const hostname = window.location.hostname;
if (window.location.origin.includes("bxt-dev")) {
return BXT_WHITE_LABEL;
}
if (window.location.origin.includes("localhost")) {
return INTELLIFARMS_WHITE_LABEL;
}
if (window.location.origin.includes("staging") || import.meta.env.VITE_LOCAL_STAGING=='true') {
return STAGING_WHITELABEL;
}
const whiteLabelKeys = Array.from(whitelabels.keys());
for (var i = 0; i < whiteLabelKeys.length; i++) {
let key = whiteLabelKeys[i];
if (hostname.includes(key)) {
return whitelabels.get(key) as WhiteLabel;
}
}
return ADAPTIVE_AGRICULTURE_WHITE_LABEL;
export function getFeatures(): WhiteLabelFeatures {
return getWhitelabel().features;
}
export function getPrimaryColour(): any {
@ -397,7 +448,7 @@ export function getSignatureAccentColour(): any {
return getWhitelabel().signatureAccentColour;
}
export function getAuth0ClientId(): any {
export function getAuth0ClientId(): string {
return getWhitelabel().auth0ClientId;
}
@ -418,10 +469,6 @@ export function getLightLogo(): any {
}
export function hideLogo(): boolean {
// if (isOffline()) {
// return false;
// }
return getWhitelabel().name === "";
}