import { IconNews } from '@material-hu/icons/tabler';

import HuSidebarNavItem from '@material-hu/components/design-system/Sidebar/components/NavItem';

import {
  capabilityToi18nKey,
  useCustomServerTranslation,
} from 'src/hooks/useCustomServerTranslation';
import { UserPermissions } from 'src/utils/permissions';

import useGetSidebarIcon from '../hooks/useGetSidebarIcon';
import { type SidebarItemProps } from '../types';
import { getItemIsActive } from '../utils';

const ArticlesItem = ({
  isCollapsed,
  onClick,
  isActive: isActiveProp,
}: SidebarItemProps) => {
  const getCustomTitle = useCustomServerTranslation();
  const getIcon = useGetSidebarIcon();
  const isActive = isActiveProp ?? getItemIsActive('news');

  const title = getCustomTitle(
    capabilityToi18nKey(UserPermissions.VIEW_ARTICLES),
    'TITLE_' + UserPermissions.VIEW_ARTICLES,
  );

  return (
    <HuSidebarNavItem
      key="news"
      depth={0}
      title={title}
      icon={getIcon({ defaultIcon: IconNews, key: 'Magazine' })}
      path="news"
      isCollapsed={isCollapsed}
      onClick={onClick}
      active={isActive}
    />
  );
};

export default ArticlesItem;
