UNPKG

react-beautiful-grid-shahab

Version:

66 lines (60 loc) 1.82 kB
/** @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;