Added new modal Aspt and fixed pages/modals

This commit is contained in:
MaxOvs19
2023-04-12 22:20:05 +03:00
parent 1e4e79897a
commit 2e7375f18e
12 changed files with 444 additions and 149 deletions

View File

@ -1,79 +1,85 @@
import React from 'react'
import {Link} from 'react-router-dom'
import {Achievement} from '../Achievement/Achievement'
import React, { useState } from "react";
import { Link } from "react-router-dom";
import { Achievement } from "../Achievement/Achievement";
import {LEVELS, SKILLS} from '../../constants/constants'
import ModalAspt from "../UI/ModalAspt/ModalAspt";
import { urlForLocal } from "../../helper";
import { LEVELS, SKILLS } from "../../constants/constants";
import './candidateSidebar.scss'
import {urlForLocal} from "../../helper";
import "./candidateSidebar.scss";
const getYearsString = (years) => {
let yearsString;
if (years % 10 === 1) {
yearsString = 'год'
yearsString = "год";
} else if (years === 11 || years === 12 || years === 13 || years === 14) {
yearsString = 'лет'
yearsString = "лет";
} else if (years % 10 === 2 || years % 10 === 3 || years % 10 === 4) {
yearsString = 'года'
yearsString = "года";
} else {
yearsString = 'лет'
yearsString = "лет";
}
return `${years} ${yearsString}`
return `${years} ${yearsString}`;
};
const CandidateSidebar = ({candidate, setActiveSnippet, activeSnippet}) => {
const userId = localStorage.getItem('id');
const CandidateSidebar = ({ candidate, setActiveSnippet, activeSnippet }) => {
const userId = localStorage.getItem("id");
const showSnippet = () => {
setActiveSnippet(!activeSnippet)
setActiveSnippet(!activeSnippet);
};
const [addAspt, setAddAspt] = useState(false);
return (
<div className='candidate-sidebar'>
<div className='candidate-sidebar__info'>
<div className='candidate-sidebar__position'>
<h2>
{candidate.specification} {SKILLS[candidate.position_id]},{' '}
{LEVELS[candidate.level]}{' '}
</h2>
</div>
{candidate.photo && <img src={urlForLocal(candidate.photo)} alt=''/>}
{candidate && candidate.years_of_exp && (
<>
<p className='candidate-sidebar__experience-title'>Опыт работы</p>
<p className='candidate-sidebar__experience'>
{getYearsString(candidate.years_of_exp)}
</p>
</>
)}
<Link to={`/candidate/${candidate.id}/form`}>
<button className='candidate-sidebar__select'>
Выбрать к собеседованию
</button>
</Link>
{userId && (
<>
<Link to={`/${candidate.id}/calendar`}>
<button className='candidate-sidebar__select'>
Отчёты
</button>
</Link>
<button
className='candidate-sidebar__select'
onClick={showSnippet}
>
{activeSnippet ? "Показать" : "Скрыть"}
</button>
<div className='candidate-sidebar__achievements'>
{candidate &&
candidate.achievements &&
candidate.achievements.map((item) => {
return <Achievement key={item.id} achievement={item.achievement}/>
})}
</div>
</>)}
<div className="candidate-sidebar">
<div className="candidate-sidebar__info">
<div className="candidate-sidebar__position">
<h2>
{candidate.specification} {SKILLS[candidate.position_id]},{" "}
{LEVELS[candidate.level]}{" "}
</h2>
</div>
{candidate.photo && <img src={urlForLocal(candidate.photo)} alt="" />}
{candidate && candidate.years_of_exp && (
<>
<p className="candidate-sidebar__experience-title">Опыт работы</p>
<p className="candidate-sidebar__experience">
{getYearsString(candidate.years_of_exp)}
</p>
</>
)}
<ModalAspt active={addAspt} setActive={setAddAspt}></ModalAspt>
<button
className="candidate-sidebar__select"
onClick={() => setAddAspt(true)}
>
Выбрать к собеседованию
</button>
{userId && (
<>
<Link to={`/${candidate.id}/calendar`}>
<button className="candidate-sidebar__select">Отчёты</button>
</Link>
<button className="candidate-sidebar__select" onClick={showSnippet}>
{activeSnippet ? "Показать" : "Скрыть"}
</button>
<div className="candidate-sidebar__achievements">
{candidate &&
candidate.achievements &&
candidate.achievements.map((item) => {
return (
<Achievement key={item.id} achievement={item.achievement} />
);
})}
</div>
</>
)}
</div>
)
</div>
);
};
export default CandidateSidebar
export default CandidateSidebar;