Skip to content
Snippets Groups Projects
Commit d89a3815 authored by Aggarwal Himanshu's avatar Aggarwal Himanshu
Browse files

Add custom hook for filters

parent f19e2d17
No related branches found
No related tags found
2 merge requests!7Merge develop to main,!5Filters Feature
import React, { useState } from "react";
/**
* Format of each filter should be:
* {
* subject: "",
* condition: "",
* value: ""
* }
*/
export default function useFilters(initialArray) {
const [filters, setFilters] = useState(initialArray);
const checkIfFilterExists = (filter) => {
for (let i = 0; i < filters.length; i++) {
if (
filters[i].subject === filter.subject &&
filters[i].condition === filter.condition &&
filters[i].value === filter.value
) {
return true;
}
}
return false;
};
const addFilter = (filter) => {
// Check if filter already exists
if (checkIfFilterExists(filter)) {
return;
}
setFilters([...filters, filter]);
};
const removeFilter = (filter) => {
setFilters(
filters.filter(({ subject, condition, value }) => {
return (
subject !== filter.subject &&
condition !== filter.condition &&
value !== filter.value
);
})
);
};
return [filters, addFilter, removeFilter];
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment