import { useAtLeastOnePermission, useRoute, useRouteParameter } from '@rocket.chat/ui-contexts'; import type { ReactNode } from 'react'; import { Suspense, useEffect } from 'react'; import MarketPlaceSidebar from './MarketplaceSidebar'; import PageSkeleton from '../../components/PageSkeleton'; import SidebarPortal from '../../portals/SidebarPortal'; import NotFoundPage from '../notFound/NotFoundPage'; export type MarketplaceRouterProps = { children?: ReactNode }; const MarketplaceRouter = ({ children }: MarketplaceRouterProps) => { const currentContext = useRouteParameter('context') || 'all'; const marketplaceRoute = useRoute('marketplace'); const canAccessMarketplace = useAtLeastOnePermission(['access-marketplace', 'manage-apps']); useEffect(() => { const initialize = async () => { // The currentContext === 'all' verification is for users who bookmarked // the old marketplace // TODO: Remove the all verification in the future; if (currentContext === 'all') { marketplaceRoute.replace({ context: 'explore', page: 'list' }); } }; initialize(); }, [currentContext, marketplaceRoute]); if (!canAccessMarketplace) { return ; } return children ? ( <> }>{children} ) : ( ); }; export default MarketplaceRouter;