react-beautiful-grid-shahab
Version:
66 lines (60 loc) • 1.82 kB
JSX
/** @format */
import React, { useState } from "react";
const SortedModal = ({
showModal,
modalData,
applyFilter,
closeModal,
clearFilter,
}) => {
const [selectedValues, setSelectedValues] = useState([]);
const handleSelection = (value) => {
setSelectedValues(
(prev) =>
prev.includes(value)
? prev.filter((item) => item !== value) // Deselect value
: [...prev, value] // Select value
);
};
return (
showModal && (
<div
className='inset-0 model-overlay absolute'
onClick={closeModal}>
<div
className='bg-white p-4 rounded w-44 h-44 overflow-y-auto absolute top-[13%] left-[30%]'
onClick={(e) => e.stopPropagation()} // Prevent click propagation
>
<ul className='max-h-64 mt-4'>
{modalData.map((value, id) => (
<li
key={id}
className='flex items-center space-x-2'>
<input
id={id}
type='checkbox'
checked={selectedValues.includes(value)}
onChange={() => handleSelection(value)}
/>
<label htmlFor={id}>{value}</label>
</li>
))}
</ul>
<div className='flex justify-end space-x-4 mt-0'>
<button
onClick={clearFilter}
className='text-red-500'>
Reset
</button>
<button
onClick={() => applyFilter(selectedValues)}
className='px-4 py-2 bg-blue-500 text-white rounded'>
OK
</button>
</div>
</div>
</div>
)
);
};
export default SortedModal;