import React, { ReactNode } from "react";
import classNames from "classnames";
import { PRODUCT_ID, PRODUCT_NAME, THEME } from "../../types";
import { Box } from "../Box";
import { Link } from "../Link";
import { MenuRenderer, useMenuContext } from "../MenuRenderer";
import { PopoverMenu } from "../PopoverMenu";
import { ProductIcon } from "../ProductIcon";
import { AppbarDropdownIcon } from "./AppbarDropdownIcon";
import { AppbarTabMarker } from "./AppbarTabMarker";
import { cn, popperModifiers } from "./config";
type AppbarProductMenuProps = {
currentProductId: PRODUCT_ID;
disabled?: boolean;
};
type AppbarProductMenuItemProps = {
children: ReactNode;
href: string;
};
type ProductConfig = {
id: PRODUCT_ID;
name: PRODUCT_NAME;
url: string;
hidden?: boolean;
};
const products: ProductConfig[] = [
{
id: PRODUCT_ID.EXCHANGE,
name: PRODUCT_NAME.EXCHANGE,
url: "https://exchange.aptible.com/",
hidden: true,
},
{
id: PRODUCT_ID.TRUST_CENTER,
name: PRODUCT_NAME.TRUST_CENTER,
url: "https://trust.aptible.com/",
},
{
id: PRODUCT_ID.COMPLY,
name: PRODUCT_NAME.COMPLY,
url: "https://comply-grc.aptible.com/",
},
{
id: PRODUCT_ID.DEPLOY,
name: PRODUCT_NAME.DEPLOY,
url: "https://dashboard.aptible.com/",
},
];
export const AppbarProductMenuItem = ({
children,
href,
}: AppbarProductMenuItemProps) => {
const { itemProps } = useMenuContext();
return (
{children}
);
};
export const AppbarProductMenu = (props: AppbarProductMenuProps) => {
const { currentProductId, disabled } = props;
const productName: PRODUCT_NAME = products.filter(
(product: ProductConfig) => product.id === currentProductId,
)[0].name;
return (
(
)}
>
{({ listProps }) => (
{products
.filter((p) => !p.hidden)
.map((product) => (
{product.name}
))}
)}
);
};