Hello guys! I’m a beginner in programming and just started learning React and I have this code.
let [contactList, setContacts] = useState(contacts);
const [checkedMale, setCheckedMale] = useState(false);
const [checkedFemale, setCheckedFemale] = useState(false);
let [search, setSearch] = useState("");
function searchBox(event) {
setSearch(event.target.value);
}
useEffect(() => {
setContacts(
contacts
.map((el) => {
if (
Object.values(el).filter((val) =>
val.toLowerCase().includes(search)
).length > 0
) {
if ((checkedFem && el.gender === "female") || !el.gender) {
return el;
}
if ((checkedMale && el.gender === "male") || !el.gender) {
return el;
}
}
})
.filter((val) => val !== undefined)
);
}, [search, checkedFem, checkedMale]);
return (
<div>
<div className="navigation">
<input className="searcInp" onChange={searchBox}></input>
<div className="checkedRender">
<input
type="checkbox"
value={checkedMale}
onChange={() => setCheckedMale((checkedMale) => !checkedMale)}
/>
{checkedMale ? "Male" : "notMale"}
<input
type="checkbox"
value={checkedFemale}
onChange={() => setCheckedFemale((checkedFemale) => !checkedFemale)}
/>
{checkedFemale ? "female" : "notFemale"}
</div>
</div>
<div>
{contactList.map((element, i) => {
return <Contract data={element} key={i} />;
})}
</div>
</div>
);
;
export default Contracts;
Could you help me and explain ? How it works? I’ll be very happy) Thanks)