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) => ( avatar ) }, { 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 (
folder{" "}

{project.project.name}

); }) ) : ( Нет проектов )}
) }, { label: "Отчетность", renderCell: (item) => ( report Подробный отчет
arrow
) }, { 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) => ( ))}
)} ) : (
У вас нет нанятого персонала, разместите вашу
первую вакансию на вкладке{" "} Мои вакансии
)}
)}
); };