interview page and design fixes
This commit is contained in:
@ -1,7 +1,78 @@
|
||||
import React from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useHistory, useParams, } from 'react-router-dom';
|
||||
import { currentCandidate, selectCurrentCandidate } from '../redux/outstaffingSlice';
|
||||
import SVG from 'react-inlinesvg';
|
||||
import { WithLogout } from '../hoc/withLogout';
|
||||
import Form from '../components/Form/Form';
|
||||
import { LEVELS, SKILLS } from '../components/constants/constants';
|
||||
import { fetchItemsForId } from '../server/server';
|
||||
|
||||
const FormPage = () => <WithLogout><Form /></WithLogout>;
|
||||
import arrow from '../images/right-arrow.png';
|
||||
import rectangle from '../images/rectangle_secondPage.png';
|
||||
import telegramIcon from '../images/telegram-icon.svg';
|
||||
|
||||
import './formPage.scss';
|
||||
|
||||
const goBack = (history) => {
|
||||
history.goBack();
|
||||
};
|
||||
|
||||
const FormPage = () => {
|
||||
const params = useParams();
|
||||
const history = useHistory();
|
||||
const dispatch = useDispatch();
|
||||
const candidate = useSelector(selectCurrentCandidate)
|
||||
|
||||
if(!candidate.id) {
|
||||
fetchItemsForId(`${process.env.REACT_APP_API_URL}/api/profile/`, Number(params.id)).then((el) =>
|
||||
dispatch(currentCandidate(el))
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<WithLogout>
|
||||
<div className='form-page'>
|
||||
<div className='form-page__back'>
|
||||
<div className='form-page__arrow' onClick={() => goBack(history)}>
|
||||
<div className='form-page__arrow-img'>
|
||||
<img src={arrow} alt="" />
|
||||
</div>
|
||||
<div className='form-page__back-to-candidate'>
|
||||
<span>Вернуться к кандидату</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='form-page__candidate'>
|
||||
<div className='form-page__avatar'>
|
||||
<img src={candidate.photo} />
|
||||
</div>
|
||||
<div className='form-page__candidate-info'>
|
||||
<div className='form-page__position'>
|
||||
<span>{candidate.specification} {SKILLS[candidate.position_id]}, {LEVELS[candidate.level]}</span>
|
||||
</div>
|
||||
<div className='form-page__selected'>
|
||||
<img src={rectangle} />
|
||||
<span>Выбранный кандидат</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className='form-page__interview'>
|
||||
<div className='form-page__form'><Form /></div>
|
||||
<div className='form-page__separator'>
|
||||
<div className='form-page__line'></div>
|
||||
<div className='form-page__option'>или</div>
|
||||
</div>
|
||||
<div className='form-page__telegram'>
|
||||
<div className='form-page__telegram-text'>Заявка на собеседование через телеграм</div>
|
||||
<div className='form-page__telegram-icon'>
|
||||
<SVG src={telegramIcon} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</WithLogout>
|
||||
)
|
||||
}
|
||||
|
||||
export default FormPage;
|
||||
|
126
src/pages/formPage.scss
Normal file
126
src/pages/formPage.scss
Normal file
@ -0,0 +1,126 @@
|
||||
.form-page {
|
||||
&__arrow {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
margin-top: 80px;
|
||||
margin-left: -32px;
|
||||
|
||||
&-img {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
&__candidate {
|
||||
margin-top: 60px;
|
||||
margin-left: 48px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
&__back-to-candidate {
|
||||
margin-left: 40px;
|
||||
margin-right: 120px;
|
||||
font-family: 'GT Eesti Pro Display';
|
||||
font-size: 1.8em;
|
||||
font-weight: 100;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
&__avatar {
|
||||
img {
|
||||
width: 61px;
|
||||
height: 61px;
|
||||
}
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
&__position {
|
||||
color: #000000;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
&__selected {
|
||||
span {
|
||||
color: #000000;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 10px;
|
||||
font-weight: 300;
|
||||
line-height: 22.38px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 152px;
|
||||
margin-right: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
&__interview {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&__form {
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
&__separator {
|
||||
width: 10%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&__line {
|
||||
width: 3px;
|
||||
height: 135px;
|
||||
background-color: #e4f1f6;
|
||||
margin-bottom: 26px;
|
||||
}
|
||||
|
||||
&__option {
|
||||
color: #000000;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
&__telegram {
|
||||
width: 45%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
&-text {
|
||||
width: 225px;
|
||||
color: #000000;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 33px;
|
||||
text-align: center;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
margin-bottom: 29px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-page + .logout-button{
|
||||
top: 0px !important;
|
||||
right: 2.5rem;
|
||||
}
|
Reference in New Issue
Block a user