import { getTheme } from "@table-library/react-table-library/baseline";
import { CompactTable } from "@table-library/react-table-library/compact";
import { usePagination } from "@table-library/react-table-library/pagination";
import { useSort } from "@table-library/react-table-library/sort";
import { useTheme } from "@table-library/react-table-library/theme";
import React, { useEffect, useState } from "react";
import { Link, Navigate } from "react-router-dom";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import { Footer } from "@components/Common/Footer/Footer";
import { Loader } from "@components/Common/Loader/Loader";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import folder from "assets/icons/folder.svg";
import report from "assets/icons/report.svg";
import "./partnerСategories.scss";
export const PartnerCategories = () => {
if (localStorage.getItem("role_status") !== "18") {
return ;
}
const [loader, setLoader] = useState(false);
const theme = useTheme(getTheme());
const [nodes, setNodes] = useState([]);
const [initialNodes, setInitialNodes] = useState([]);
const [activeTab, setActiveTab] = useState(0);
const [search, setSearch] = useState("");
const tabs = [
{
name: "Фронтенд",
value: 2
},
{
name: "Бэкенд",
value: 1
}
];
const COLUMNS = [
{
label: "",
renderCell: (item) => (
)
},
{
label: "Данные",
renderCell: (item) => (
{item?.employee.fio}
{item?.employee.level_title} / {item?.employee.position.name}
)
},
{
label: "Участвует в проекте",
renderCell: (item) => (
{item?.employee.projects.length ? (
item.employee.projects.map((project) => {
return (

{" "}
{project.project.name}
);
})
) : (
Нет проектов
)}
)
},
{
label: "Отчетность",
renderCell: (item) => (
Подробный отчет
)
},
{
label: Действие,
renderCell: () =>
}
];
let data = { nodes };
const sort = useSort(
data,
{
onChange: onSortChange
},
{
sortFns: {
NAME: (array) =>
array.sort((a, b) => a.employee.fio.localeCompare(b.employee.fio))
}
}
);
const pagination = usePagination(data, {
state: {
page: 0,
size: 10
}
});
useEffect(() => {
setLoader(true);
apiRequest("/project/my-employee").then((el) => {
setNodes(el.managerEmployees);
setInitialNodes(el.managerEmployees);
setLoader(false);
});
}, []);
const handleSearch = (event) => {
setSearch(event.target.value);
setNodes(
initialNodes.filter((item) =>
item.employee.fio
.toLowerCase()
.includes(event.target.value.toLowerCase())
)
);
};
function onSortChange(action, state) {
console.log(action, state);
}
return (
Данные персонала
{loader ? (
) : (
{Boolean(initialNodes.length) ? (
<>
{
setActiveTab(0);
setNodes(initialNodes);
}}
className={
activeTab === 0
? "table__tab table__tab--active"
: "table__tab"
}
>
Все
{tabs.map((tab) => {
return (
{
setActiveTab(tab.name);
setNodes(
initialNodes.filter(
(item) => item.employee.position.id === tab.value
)
);
}}
className={
activeTab === tab.name
? "table__tab table__tab--active"
: "table__tab"
}
key={tab.value}
>
{tab.name}
);
})}
{Boolean(nodes.length) &&
pagination.state.getPages(data.nodes).length > 1 && (
{pagination.state
.getPages(data.nodes)
.map((_, index) => (
))}
)}
>
) : (
У вас нет нанятого персонала, разместите вашу
первую
вакансию на вкладке{" "}
Мои вакансии
)}
)}
);
};