import React from 'react'
import { Link } from 'react-router-dom';
// import { BiUserCircle, BiHomeAlt, BiBookContent } from 'react-icons/bi'
// import { AiOutlineSetting, AiOutlineOrderedList } from 'react-icons/ai'
// import { FaQuestionCircle } from 'react-icons/fa'
// import * as ReactIcons from 'react-icons/all'
// import { useFetch } from "../../../hooks/request";
// import { Layout, Menu, Badge } from 'antd';
import HttpRequest from "../../../repositories";
import api from "../../../repositories/api";
import Helper from "../../../helpers";

const iconStyle = {
  fontSize: 17
}

const logout = async () => {
  let { method, url } = api.logout;
  await HttpRequest.makeRequest(method, window.constants.api_base_url + url).then(
    async (response) => {
      if (response.code != 200) {
        Helper.sendNotification("error", response.code, response.message);
      } else {
        Helper.removeStorageData();
      }
    }
  );

}

function SidebarMenu() {
  let user = window.helpers.getStorageData('session');
  const adminSideBar: Array<any> = []
  let total_menu = parseInt(user.cms_modules.length) + parseInt(1)
  {
    user.cms_modules.map((module: any, value) => {
      // let Icon = ReactIcons[module.icon]
      if (module.parent_id == 0 && module.is_parent == 0) {
        adminSideBar.push({
          key: module.sort_order,
          // icon: <Icon />,
          label: (
            <Link to={'/' + module.route_name}>
              {module.name}
            </Link>
          )
        })

      } else {
        if (module.is_parent == 1) {
          let child: Array<any> = []
          let child_menu = module.child_menu.map((chid_menu: any) => {
            // let IconChild = ReactIcons[chid_menu.icon]
            child.push({
              key: chid_menu.sort_order,
              // icon: <IconChild />,
              label: (
                <Link to={'/' + chid_menu.route_name}>
                  {chid_menu.name}
                </Link>
              )
            })
          })
          adminSideBar.push({
            key: module.sort_order,
            icon: <Icon />,
            label: module.name,
            children: child
          })
        }
      }
    })
  }
  // let Lgout = ReactIcons['AiOutlineLogout'];
  adminSideBar.push({
    key: total_menu,
    // icon: <Lgout />,
    label: (
      <Link onClick={logout}>
        Logout
      </Link>
    ),
  })

  return (
    <Menu
      theme="light"
      mode="inline"
      items={adminSideBar}
    />
  )
}

export default SidebarMenu
