Переписываю спорные решения
Фикс отправки отчета, проверка на массив в map в Description.js
This commit is contained in:
@ -1,11 +1,11 @@
|
||||
import React, {useState} from 'react'
|
||||
import React, {useEffect, useState} from 'react'
|
||||
import {Link, useNavigate} from 'react-router-dom'
|
||||
import {useDispatch, useSelector} from 'react-redux'
|
||||
import {withSwalInstance} from 'sweetalert2-react'
|
||||
import swal from 'sweetalert2'
|
||||
|
||||
import {Loader} from '../Loader/Loader'
|
||||
import ErrorBoundary from "../../hoc/ErrorBoundary";
|
||||
import ErrorBoundary from "../../HOC/ErrorBoundary";
|
||||
|
||||
import {auth, selectAuth, setUserInfo} from '../../redux/outstaffingSlice'
|
||||
import {loading} from '../../redux/loaderSlice'
|
||||
@ -13,7 +13,7 @@ import {setRole} from '../../redux/roleSlice'
|
||||
|
||||
import {selectIsLoading} from '../../redux/loaderSlice'
|
||||
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
|
||||
import ellipse from '../../images/ellipse.png'
|
||||
|
||||
@ -30,7 +30,6 @@ export const AuthBox = ({title, altTitle, roleChangeLink}) => {
|
||||
const isAuth = useSelector(selectAuth);
|
||||
const isLoading = useSelector(selectIsLoading);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const [username, setUsername] = useState('');
|
||||
const [password, setPassword] = useState('');
|
||||
@ -40,6 +39,12 @@ export const AuthBox = ({title, altTitle, roleChangeLink}) => {
|
||||
navigate('/')
|
||||
}
|
||||
|
||||
useEffect(()=> {
|
||||
if (!localStorage.getItem('auth_token')) {
|
||||
dispatch(auth(false))
|
||||
}
|
||||
}, []);
|
||||
|
||||
const submitHandler = () => {
|
||||
|
||||
if (!isLoading) {
|
||||
|
@ -8,7 +8,7 @@ import {Footer} from '../Footer/Footer'
|
||||
|
||||
import {currentCandidate, selectCurrentCandidate,} from '../../redux/outstaffingSlice'
|
||||
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
import {createMarkup} from "../../helper";
|
||||
|
||||
import arrow from '../../images/right-arrow.png'
|
||||
@ -33,7 +33,7 @@ const Candidate = () => {
|
||||
|
||||
const [activeSnippet, setActiveSnippet] = useState(true);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
window.scrollTo(0, 0)
|
||||
|
@ -3,11 +3,13 @@ import {useSelector} from 'react-redux'
|
||||
import {Link} from 'react-router-dom'
|
||||
|
||||
import {Loader} from '../Loader/Loader'
|
||||
import ErrorBoundary from "../../hoc/ErrorBoundary";
|
||||
import ErrorBoundary from "../../HOC/ErrorBoundary";
|
||||
|
||||
import {LEVELS, SKILLS} from '../../constants/constants'
|
||||
import {selectProfiles, selectFilteredCandidates,} from '../../redux/outstaffingSlice'
|
||||
|
||||
import {urlForLocal} from '../../helper'
|
||||
|
||||
import male from '../../images/medium_male.png'
|
||||
import rectangle from '../../images/rectangle_secondPage.png'
|
||||
|
||||
@ -20,6 +22,7 @@ const Description = ({onLoadMore, isLoadingMore}) => {
|
||||
const filteredListArr = useSelector(selectFilteredCandidates);
|
||||
|
||||
|
||||
|
||||
if (!filteredListArr) {
|
||||
return (
|
||||
<section className='description'>
|
||||
@ -30,7 +33,7 @@ const Description = ({onLoadMore, isLoadingMore}) => {
|
||||
candidatesListArr.map((el) => (
|
||||
<div className='row' key={el.id}>
|
||||
<div className='col-2 col-xs-12'>
|
||||
<img className='description__img' src={el.photo} alt=''/>
|
||||
<img className='description__img' src={urlForLocal(el.photo)} alt=''/>
|
||||
</div>
|
||||
<div className='col-12 col-xl-6'>
|
||||
<h3 className='description__title'>
|
||||
@ -114,7 +117,7 @@ const Description = ({onLoadMore, isLoadingMore}) => {
|
||||
? filteredListArr.map((el) => (
|
||||
<div className='row' key={el.id}>
|
||||
<div className='col-2'>
|
||||
<img className='description__img' src={el.photo} alt=''/>
|
||||
<img className='description__img' src={()=>urlForLocal(el?.photo)} alt=''/>
|
||||
</div>
|
||||
<div className='col-12 col-xl-6'>
|
||||
<h3 className='description__title'>
|
||||
|
@ -7,7 +7,7 @@ import './form.scss'
|
||||
|
||||
import { withSwalInstance } from 'sweetalert2-react'
|
||||
import swal from 'sweetalert2'
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
|
||||
|
||||
const SweetAlert = withSwalInstance(swal);
|
||||
@ -25,7 +25,6 @@ const Form = () => {
|
||||
});
|
||||
const [isFetching, setIsFetching] = useState(false);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const handleChange = (e) => {
|
||||
const { id, value } = e.target;
|
||||
|
@ -7,7 +7,7 @@ import {
|
||||
filteredCandidates,
|
||||
} from '../../redux/outstaffingSlice'
|
||||
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
|
||||
import './outstaffingBlock.scss'
|
||||
|
||||
@ -57,7 +57,6 @@ const OutstaffingBlock = (
|
||||
|
||||
const itemsArr = useSelector(selectItems);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const handleBlockClick = (item, id) => {
|
||||
if (!itemsArr.find((el) => item === el.value)) {
|
||||
|
@ -9,12 +9,15 @@ import {ProfileCalendarComponent} from "./ProfileCalendarComponent";
|
||||
import { Footer } from '../Footer/Footer'
|
||||
import {ProfileHeader} from "../ProfileHeader/ProfileHeader";
|
||||
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {urlForLocal} from "../../helper";
|
||||
|
||||
import {apiRequest} from "../../api/request";
|
||||
import { getProfileInfo } from '../../redux/outstaffingSlice'
|
||||
import {setReportDate} from "../../redux/reportSlice";
|
||||
|
||||
import './profileCalendar.scss'
|
||||
|
||||
|
||||
export const ProfileCalendar = () => {
|
||||
const dispatch = useDispatch();
|
||||
const profileInfo = useSelector(getProfileInfo);
|
||||
@ -23,13 +26,12 @@ export const ProfileCalendar = () => {
|
||||
const [totalHours, setTotalHours] = useState(0);
|
||||
const [requestDates, setRequestDates] = useState('');
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect(() => {
|
||||
setRequestDates(getReports(moment()))
|
||||
});
|
||||
},[]);
|
||||
|
||||
useEffect(async () => {
|
||||
useEffect( () => {
|
||||
if (!requestDates) {
|
||||
return
|
||||
}
|
||||
@ -57,7 +59,7 @@ export const ProfileCalendar = () => {
|
||||
<h2 className='summary__title'>Ваши отчеты</h2>
|
||||
<div className='summary__info'>
|
||||
<div className='summary__person'>
|
||||
<img src={profileInfo.photo} className='summary__avatar' alt='avatar'/>
|
||||
<img src={urlForLocal(profileInfo.photo)} className='summary__avatar' alt='avatar'/>
|
||||
<p className='summary__name'>{profileInfo.fio} {profileInfo.specification}</p>
|
||||
</div>
|
||||
<Link to='/report'>
|
||||
|
@ -3,21 +3,21 @@ import {useNavigate, NavLink} from "react-router-dom";
|
||||
import {useDispatch, useSelector} from "react-redux";
|
||||
|
||||
import {Loader} from '../Loader/Loader'
|
||||
|
||||
import {apiRequest} from "../../api/request";
|
||||
import {auth, getProfileInfo, setProfileInfo} from "../../redux/outstaffingSlice";
|
||||
import {getRole} from "../../redux/roleSlice";
|
||||
|
||||
|
||||
import {urlForLocal} from "../../helper";
|
||||
|
||||
import './profileHeader.scss'
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
|
||||
|
||||
|
||||
|
||||
export const ProfileHeader = () => {
|
||||
const navigate = useNavigate();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const userRole = useSelector(getRole);
|
||||
const profileInfo = useSelector(getProfileInfo);
|
||||
@ -61,8 +61,8 @@ export const ProfileHeader = () => {
|
||||
</nav>
|
||||
|
||||
<div className='profileHeader__personalInfo'>
|
||||
<h3 className='profileHeader__personalInfoName'>{profileInfo.fio}</h3>
|
||||
<img src={profileInfo.photo} className='profileHeader__personalInfoAvatar' alt='avatar'/>
|
||||
<h3 className='profileHeader__personalInfoName'>{profileInfo?.fio}</h3>
|
||||
<img src={profileInfo.photo ? urlForLocal(profileInfo.photo) : ""} className='profileHeader__personalInfoAvatar' alt='avatar'/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@ import {currentMonthAndDay} from '../Calendar/calendarHelper'
|
||||
import {Footer} from "../Footer/Footer";
|
||||
import {ProfileHeader} from "../ProfileHeader/ProfileHeader";
|
||||
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
|
||||
import {getReportDate} from '../../redux/reportSlice'
|
||||
|
||||
@ -35,7 +35,6 @@ const getCreatedDate = (day) => {
|
||||
const ReportForm = () => {
|
||||
const reportDate = useSelector(getReportDate);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
const [isFetching, setIsFetching] = useState(false);
|
||||
const [reportSuccess, setReportSuccess] = useState(false);
|
||||
|
||||
|
@ -2,7 +2,7 @@ import React, {useState} from 'react'
|
||||
import {useSelector, useDispatch} from 'react-redux'
|
||||
import Select from 'react-select'
|
||||
import {Loader} from '../Loader/Loader'
|
||||
import {useRequest} from "../../hooks/useRequest";
|
||||
import {apiRequest} from "../../api/request";
|
||||
import {
|
||||
selectedItems,
|
||||
selectItems,
|
||||
@ -19,7 +19,6 @@ const TagSelect = () => {
|
||||
const [searchLoading, setSearchLoading] = useState(false);
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const itemsArr = useSelector(selectItems);
|
||||
const tagsArr = useSelector(selectTags);
|
||||
|
@ -6,9 +6,9 @@ import {BookkeepingFormField} from "../BookkeepingFormField/BookkeepingFormField
|
||||
import {BookkepingSelect} from '../BookkepingSelect/BookkepingSelect';
|
||||
import {BookkepingInput} from '../BookkepingInput/BookkepingInput';
|
||||
|
||||
import {useRequest} from "../../../../hooks/useRequest";
|
||||
|
||||
import "./actContent.css"
|
||||
import {apiRequest} from "../../../../api/request";
|
||||
|
||||
export const ActContent = () => {
|
||||
|
||||
@ -16,7 +16,6 @@ export const ActContent = () => {
|
||||
const [selectedTemplate, setSelectedTemplate] = useState();
|
||||
const [templatedFields, setTemplatedFields] = useState([]);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect(() => {
|
||||
apiRequest('/template/get-template-list')
|
||||
|
@ -5,7 +5,6 @@ import {BookkeepingFormField} from "../BookkeepingFormField/BookkeepingFormField
|
||||
import {BookkepingSelect} from '../BookkepingSelect/BookkepingSelect';
|
||||
import {BookkepingInput} from '../BookkepingInput/BookkepingInput';
|
||||
import {Link} from "react-router-dom"
|
||||
import {useRequest} from "../../../../hooks/useRequest";
|
||||
|
||||
export const ContractContent = () => {
|
||||
|
||||
@ -13,7 +12,6 @@ export const ContractContent = () => {
|
||||
const [selectedTemplate, setSelectedTemplate] = useState();
|
||||
const [templatedFields, setTemplatedFields] = useState([]);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect(() => {
|
||||
apiRequest(`/document/get-document-list`)
|
||||
|
@ -1,8 +1,8 @@
|
||||
import React, {useEffect} from 'react'
|
||||
import {useDispatch, useSelector} from 'react-redux'
|
||||
import {selectUserInfo, setQuestionnairesList, setUserInfo} from "../../../redux/quizSlice";
|
||||
import {useRequest} from "../../../hooks/useRequest";
|
||||
import './quiz.scss'
|
||||
import {apiRequest} from "../../../api/request";
|
||||
|
||||
export const HeaderQuiz = ({header}) => {
|
||||
|
||||
@ -10,7 +10,6 @@ export const HeaderQuiz = ({header}) => {
|
||||
const userId = localStorage.getItem('id');
|
||||
const userInfo = useSelector(selectUserInfo);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(setUserInfo(userId))
|
||||
|
@ -5,14 +5,14 @@ import {useEffect, useState} from "react";
|
||||
import {useSelector} from "react-redux";
|
||||
import {selectedTest} from "../../../redux/quizSlice";
|
||||
|
||||
import {useRequest} from "../../../hooks/useRequest";
|
||||
import {useRequest} from "../../../HOOks/useRequest";
|
||||
import {apiRequest} from "../../../api/request";
|
||||
|
||||
export const Instruction = () => {
|
||||
|
||||
const [countQuestions, setCountQuestions] = useState(null);
|
||||
const test = useSelector(selectedTest);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect( () => {
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
import React, {useEffect, useState} from 'react';
|
||||
import {useDispatch, useSelector} from "react-redux";
|
||||
import {fetchResultTest, selectedTest, selectResult} from "../../../redux/quizSlice";
|
||||
import {useRequest} from "../../../hooks/useRequest";
|
||||
import {useRequest} from "../../../HOOks/useRequest";
|
||||
import {apiRequest} from "../../../api/request";
|
||||
|
||||
|
||||
export const Results = () => {
|
||||
@ -9,7 +10,6 @@ export const Results = () => {
|
||||
const test = useSelector(selectedTest);
|
||||
const [maxScore, setMaxScore] = useState('');
|
||||
const dispatch = useDispatch();
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(fetchResultTest(test.uuid));
|
||||
|
@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react'
|
||||
import {useNavigate} from "react-router-dom"
|
||||
import {useSelector, useDispatch} from 'react-redux'
|
||||
|
||||
import {useRequest} from "../../../hooks/useRequest";
|
||||
import {useRequest} from "../../../HOOks/useRequest";
|
||||
import {Progressbar} from './ProgressbarQuiz'
|
||||
import {GetOptionTask} from './GetOptionTask'
|
||||
|
||||
@ -11,6 +11,7 @@ import {
|
||||
} from './../../../redux/quizSlice'
|
||||
|
||||
import './quiz.scss'
|
||||
import {apiRequest} from "../../../api/request";
|
||||
|
||||
export const TaskQuiz = () => {
|
||||
|
||||
@ -26,7 +27,6 @@ export const TaskQuiz = () => {
|
||||
const [inputValue, setInputValue] = useState('');
|
||||
const [questions, setQuestions] = useState([]);
|
||||
|
||||
const {apiRequest} = useRequest();
|
||||
|
||||
const id = localStorage.getItem('id');
|
||||
|
||||
|
Reference in New Issue
Block a user