import React, { useMemo } from 'react'; import { OriginFeature } from '@energyweb/utils-general'; import { useUserInfo } from '@energyweb/origin-ui-core'; import { CreateBundlePage } from '../pages/CreateBundlePage'; import { BundlesTablePage, IBundleTableProps } from '../pages/BundlesTable'; import { MyTradesPage } from '../pages/MyTradesPage'; import { MyOrdersPage } from '../pages/MyOrdersPage'; import { SupplyTablePage } from '../pages/SupplyTablePage'; import { ViewMarketPage } from '../pages/ViewMarketPage'; interface IExchangeMenuItem { key: string; label: string; render: () => any; show: boolean; features?: OriginFeature[]; props?: IBundleTableProps; } export const useExchangeMenu = (): IExchangeMenuItem[] => { const { userIsActiveAndPartOfOrg } = useUserInfo(); return useMemo( () => [ { key: 'view-market', label: 'navigation.exchange.view_market', render() { return ; }, show: true, features: [OriginFeature.Exchange] }, { key: 'bundles', label: 'navigation.exchange.bundles', render() { return ; }, show: true, features: [OriginFeature.Exchange, OriginFeature.Bundles] }, { key: 'create_bundle', label: 'navigation.exchange.create_bundle', render() { return ; }, show: userIsActiveAndPartOfOrg, features: [OriginFeature.Exchange, OriginFeature.Bundles] }, { key: 'my_bundles', label: 'navigation.exchange.my_bundles', render() { return ; }, props: { owner: true }, show: userIsActiveAndPartOfOrg, features: [OriginFeature.Exchange, OriginFeature.Bundles] }, { key: 'my-trades', label: 'navigation.exchange.my_trades', render() { return ; }, show: userIsActiveAndPartOfOrg, features: [OriginFeature.Exchange] }, { key: 'my_orders', label: 'navigation.exchange.my_orders', render() { return ; }, show: userIsActiveAndPartOfOrg, features: [OriginFeature.Exchange] }, { key: 'supply', label: 'navigation.exchange.supply', render() { return ; }, show: userIsActiveAndPartOfOrg, features: [OriginFeature.Exchange] } ], [userIsActiveAndPartOfOrg] ); };