guild_front/src/components/Outstaffing/Outstaffing.jsx

89 lines
2.5 KiB
React
Raw Normal View History

2023-05-24 13:49:09 +03:00
import React from "react";
import { useSelector, useDispatch } from "react-redux";
2023-05-24 13:49:09 +03:00
import OutstaffingBlock from "../OutstaffingBlock/OutstaffingBlock";
import TagSelect from "../Select/TagSelect";
import {
selectTags,
getPositionId,
setPositionId,
} from "../../redux/outstaffingSlice";
2023-01-18 17:37:52 +03:00
2023-05-24 13:49:09 +03:00
import front from "../../images/front-end.webp";
import back from "../../images/back-end.webp";
import design from "../../images/design.webp";
2023-01-18 17:37:52 +03:00
2023-05-24 13:49:09 +03:00
import "./outstaffing.scss";
2021-08-12 17:42:29 +03:00
2021-11-30 17:00:58 +03:00
const createSelectPositionHandler =
2023-05-24 13:49:09 +03:00
({ positionId, setPositionId, dispatch }) =>
(id) => {
if (id === positionId) {
dispatch(setPositionId(null));
} else {
dispatch(setPositionId(id));
}
};
2021-08-12 17:42:29 +03:00
2021-07-01 14:25:17 +03:00
const Outstaffing = () => {
const dispatch = useDispatch();
const positionId = useSelector(getPositionId);
const tagsArr = useSelector(selectTags);
2021-06-01 15:25:01 +03:00
2021-11-30 17:00:58 +03:00
const onSelectPosition = createSelectPositionHandler({
positionId,
setPositionId,
2023-05-24 13:49:09 +03:00
dispatch,
});
2021-06-01 15:25:01 +03:00
return (
2023-05-24 13:49:09 +03:00
<>
<section className="outstaffing">
<div className="row">
<div className="col-12 col-xl-4">
<OutstaffingBlock
dataTags={
tagsArr &&
tagsArr.flat().filter((tag) => tag.name === "skills_front")
}
img={front}
header="Frontend разработчики"
positionId="2"
isSelected={positionId === "2"}
onSelect={(id) => onSelectPosition(id)}
/>
</div>
<div className="col-12 col-xl-4">
<OutstaffingBlock
dataTags={
tagsArr &&
tagsArr.flat().filter((tag) => tag.name === "skills_back")
}
img={back}
header="Backend разработчики"
positionId="1"
isSelected={positionId === "1"}
onSelect={(id) => onSelectPosition(id)}
/>
</div>
<div className="col-12 col-xl-4">
<OutstaffingBlock
dataTags={
tagsArr &&
tagsArr.flat().filter((tag) => tag.name === "skills_design")
}
img={design}
header="Дизайн проектов"
positionId="5"
isSelected={positionId === "5"}
onSelect={(id) => onSelectPosition(id)}
/>
2021-11-30 17:00:58 +03:00
</div>
2023-05-24 13:49:09 +03:00
</div>
</section>
<TagSelect />
</>
);
};
2021-06-01 15:25:01 +03:00
2023-05-24 13:49:09 +03:00
export default Outstaffing;