diff --git a/src/shell/components/global-sidebar/components/InstanceMenu/views/NormalMenu.tsx b/src/shell/components/global-sidebar/components/InstanceMenu/views/NormalMenu.tsx index 3e6fa423f0..3f08cca674 100644 --- a/src/shell/components/global-sidebar/components/InstanceMenu/views/NormalMenu.tsx +++ b/src/shell/components/global-sidebar/components/InstanceMenu/views/NormalMenu.tsx @@ -121,16 +121,18 @@ export const NormalMenu: FC = ({ {instance?.name} - - {domain.replace(/http:\/\/|https:\/\//gm, "")} - + {Boolean(domain) && ( + + {domain.replace(/http:\/\/|https:\/\//gm, "")} + + )} diff --git a/src/shell/hooks/use-domain.js b/src/shell/hooks/use-domain.ts similarity index 69% rename from src/shell/hooks/use-domain.js rename to src/shell/hooks/use-domain.ts index f61c182783..0b5d5735f2 100644 --- a/src/shell/hooks/use-domain.js +++ b/src/shell/hooks/use-domain.ts @@ -1,24 +1,29 @@ "use strict"; import { useStore } from "react-redux"; +import moment from "moment-timezone"; -export function useDomain() { +import { Domain } from "../services/types"; + +type UseDomain = () => string; +export const useDomain: UseDomain = () => { const store = useStore(); const state = store.getState(); + const { domains }: { domains: Domain[] } = state.instance; // Let WebEngine figure out https & www settings - const format = (domain) => `http://${domain}`; + const format = (domain: string) => `http://${domain}`; - if (Array.isArray(state.instance.domains) && state.instance.domains.length) { + if (Array.isArray(domains) && domains.length) { /** * By default when an instance is created it gets a .zesty.dev domain * linked to the 'dev' branch. We look for a domain record which is neither. * That is most likely the primary domain. */ - const prodDomains = state.instance.domains + const prodDomains = domains .filter((domain) => domain.branch !== "dev") - .sort((a, b) => new Date(b.updatedAt) - new Date(a.updatedAt)); + .sort((a, b) => moment(b.updatedAt).diff(moment(a.updatedAt))); const customDomain = prodDomains.find( (domain) => !domain.domain.includes(".zesty.dev") @@ -33,12 +38,12 @@ export function useDomain() { return format(prodDomains[0].domain); } else { // No domain has been pointed at 'live' branch - return null; + return ""; } } } else { // No domains are configured. // Most likely an older instance before .zesty.dev domains were auto created - return null; + return ""; } -} +};