import { Key } from 'react';
import { useLocation } from 'react-router-dom';
import { DownOutlined } from '@ant-design/icons';
import type { MenuProps } from 'antd/es/menu';

type MenuItem = Required<MenuProps>['items'][number];

export const getItem = (
  label: JSX.Element | string,
  key: Key,
  icon: JSX.Element | boolean,
  disabled?: boolean,
  children?: MenuItem[],
): MenuItem => {
  const getIcon = (): JSX.Element | null | undefined => {
    if (typeof icon === 'boolean' && icon) {
      return <DownOutlined />;
    } else if (typeof icon === 'boolean' && !icon) {
      return null;
    } else if (icon) {
      return icon as JSX.Element;
    }
  };

  return {
    key,
    icon: getIcon(),
    children,
    label,
    disabled,
  } as MenuItem;
};

// Функция для определения активной страницы
export const useCurrentMainMenuActiveKey = (): string[] => {
  const { pathname } = useLocation();
  const pathNameParams = pathname.split('/');

  if (pathNameParams.at(-2) === 'ncircc') {
    // Проверка для страницы Госсопка, так как внутри есть 3 вложенные страницы
    return ['/ncircc'];
  } else if (pathNameParams.length >= 3) {
    // Проверка для ротаций
    return [`/${pathNameParams[1]}/${pathNameParams[2]}`];
  } else {
    // Проверка для всех остальных страниц
    return [`/${pathNameParams[1]}`];
  }
};
