apps/meteor/client/navbar/actions/NavbarMarketplaceAction.tsx
import { IconButton } from '@rocket.chat/fuselage';
import { useTranslation, useRouter } from '@rocket.chat/ui-contexts';
import type { AllHTMLAttributes } from 'react';
import React from 'react';
import GenericMenu from '../../components/GenericMenu/GenericMenu';
import { useHandleMenuAction } from '../../components/GenericMenu/hooks/useHandleMenuAction';
import { NavbarAction } from '../../components/Navbar';
import { useAppsItems } from '../../sidebar/header/actions/hooks/useAppsItems';
const NavbarMarketplaceAction = (props: AllHTMLAttributes<HTMLLIElement>) => {
const t = useTranslation();
const router = useRouter();
const routeName = router.getRouteName();
const appItems = useAppsItems();
const handleAction = useHandleMenuAction(appItems);
const showApps = appItems.length > 0;
if (!showApps) {
return (
<NavbarAction {...props}>
<IconButton icon='store' disabled />
</NavbarAction>
);
}
return (
<NavbarAction {...props}>
<GenericMenu
pressed={routeName === 'marketplace'}
medium
title={t('Marketplace')}
icon='store'
onAction={handleAction}
items={appItems}
placement='right-start'
/>
</NavbarAction>
);
};
export default NavbarMarketplaceAction;