2023-04-18 13:58:36 +03:00
|
|
|
|
import React, {useEffect, useState} from 'react';
|
2023-02-27 16:50:32 +03:00
|
|
|
|
import {Link, Navigate} from "react-router-dom";
|
2023-04-18 13:58:36 +03:00
|
|
|
|
import {useDispatch} from 'react-redux'
|
|
|
|
|
import {setPartnerRequestId, setPartnerRequests} from '../../redux/outstaffingSlice'
|
2023-02-21 19:05:04 +03:00
|
|
|
|
|
|
|
|
|
import {ProfileHeader} from "../../components/ProfileHeader/ProfileHeader";
|
2023-02-27 16:50:32 +03:00
|
|
|
|
import {ProfileBreadcrumbs} from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs"
|
2023-03-27 16:03:24 +03:00
|
|
|
|
import {SliderWorkers} from "../../components/SliderWorkers/SliderWorkers"
|
2023-04-18 13:58:36 +03:00
|
|
|
|
import {Loader} from "../../components/Loader/Loader"
|
2023-02-21 19:05:04 +03:00
|
|
|
|
import {Footer} from "../../components/Footer/Footer";
|
|
|
|
|
|
2023-04-18 13:58:36 +03:00
|
|
|
|
import {apiRequest} from "../../api/request";
|
|
|
|
|
|
2023-03-27 16:03:24 +03:00
|
|
|
|
import cursorImg from "../../images/cursorImg.png"
|
|
|
|
|
|
2023-02-21 19:05:04 +03:00
|
|
|
|
import './partnerRequests.scss'
|
2023-04-19 20:22:06 +03:00
|
|
|
|
import { Navigation } from '../../components/Navigation/Navigation';
|
2023-02-21 19:05:04 +03:00
|
|
|
|
|
|
|
|
|
export const PartnerRequests = () => {
|
2023-02-27 16:50:32 +03:00
|
|
|
|
if(localStorage.getItem('role_status') !== '18') {
|
|
|
|
|
return <Navigate to="/profile" replace/>
|
|
|
|
|
}
|
2023-04-18 13:58:36 +03:00
|
|
|
|
|
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
const [requests, setRequests] = useState([])
|
|
|
|
|
const [loader, setLoader] = useState(true)
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
apiRequest(`/request/get-request-list?user_id=${localStorage.getItem('id')}&search_depth=3`).then((el) => {
|
|
|
|
|
setRequests(el)
|
|
|
|
|
setLoader(false)
|
|
|
|
|
})
|
|
|
|
|
}, [])
|
2023-02-21 19:05:04 +03:00
|
|
|
|
return (
|
|
|
|
|
<div className='partnerRequests'>
|
|
|
|
|
<ProfileHeader />
|
2023-04-19 20:22:06 +03:00
|
|
|
|
<Navigation />
|
2023-02-21 19:05:04 +03:00
|
|
|
|
<div className='container'>
|
2023-02-27 16:50:32 +03:00
|
|
|
|
<ProfileBreadcrumbs links={[
|
|
|
|
|
{name: 'Главная', link: '/profile'},
|
|
|
|
|
{name: 'Запросы и открытые позиции', link: '/profile/requests'}
|
|
|
|
|
]}
|
|
|
|
|
/>
|
2023-02-21 19:05:04 +03:00
|
|
|
|
<h2 className='partnerRequests__title'>Запросы</h2>
|
2023-04-18 13:58:36 +03:00
|
|
|
|
{loader &&
|
|
|
|
|
<Loader />
|
|
|
|
|
}
|
|
|
|
|
{Boolean(requests.length) && !loader &&
|
|
|
|
|
<div className='partnerRequests__section'>
|
|
|
|
|
<div className='partnerRequests__section__items'>
|
|
|
|
|
{
|
|
|
|
|
requests.map((item, index) => {
|
|
|
|
|
return <Link key={index} to={'/profile/bid'} className='partnerRequests__section__item'
|
|
|
|
|
onClick={() => {
|
|
|
|
|
dispatch(setPartnerRequestId(item.id))
|
|
|
|
|
dispatch(setPartnerRequests(requests))
|
|
|
|
|
}}>
|
|
|
|
|
<p className='partnerRequests__section__item__name'>
|
|
|
|
|
{item.position.name}
|
|
|
|
|
</p>
|
|
|
|
|
<p className='partnerRequests__section__item__count'>
|
|
|
|
|
Подходящие кандидаты
|
|
|
|
|
<span>{item.result_count}</span>
|
|
|
|
|
</p>
|
|
|
|
|
</Link>
|
|
|
|
|
})
|
|
|
|
|
}
|
2023-03-27 16:03:24 +03:00
|
|
|
|
</div>
|
2023-04-18 13:58:36 +03:00
|
|
|
|
<div className='partnerRequests__section__info'>
|
2023-03-27 16:03:24 +03:00
|
|
|
|
<h3>Инструкция: подачи заявки</h3>
|
|
|
|
|
<p>
|
|
|
|
|
Оператор компании заводит заявку и указывает необходимые параметры —
|
|
|
|
|
количество сотрудников, стек, уровень специалиста
|
|
|
|
|
</p>
|
2023-04-18 13:58:36 +03:00
|
|
|
|
<Link to={'/profile/add-request'}>
|
|
|
|
|
<span>+</span>
|
|
|
|
|
Создать запрос
|
|
|
|
|
</Link>
|
2023-03-27 16:03:24 +03:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-04-18 13:58:36 +03:00
|
|
|
|
}
|
|
|
|
|
{!Boolean(requests.length) && !loader &&
|
|
|
|
|
<div className="partnerRequests__noItems">
|
|
|
|
|
<div className="partnerRequests__noItems__create">
|
|
|
|
|
<div className="partnerRequests__noItems__create__link">
|
|
|
|
|
<img src={cursorImg} alt="cursor" />
|
|
|
|
|
<p>У вас еще нет запросов на сотрудников</p>
|
|
|
|
|
<Link to={'/profile/add-request'}>
|
|
|
|
|
<span>+</span>
|
|
|
|
|
Создать запрос
|
|
|
|
|
</Link>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="partnerRequests__noItems__create__instruction">
|
|
|
|
|
<h3>Инструкция: подачи заявки</h3>
|
|
|
|
|
<p>
|
|
|
|
|
Оператор компании заводит заявку и указывает необходимые параметры —
|
|
|
|
|
количество сотрудников, стек, уровень специалиста
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="partnerRequests__noItems__freeEmployees">
|
|
|
|
|
<SliderWorkers title={"Свободные разработчики"} titleInfo={"в нашей базе"} />
|
|
|
|
|
<p>Перейти в полный <Link to={'/profile/catalog'}>КАТАЛОГ</Link> сотрудников</p>
|
|
|
|
|
</div>
|
2023-03-27 16:03:24 +03:00
|
|
|
|
</div>
|
2023-04-18 13:58:36 +03:00
|
|
|
|
}
|
2023-02-21 19:05:04 +03:00
|
|
|
|
</div>
|
|
|
|
|
<Footer/>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
};
|