@@ -29,6 +29,11 @@ export default function SearchAndFilter<T extends Record<string, any>>({
2929 const [ isFilterOpen , setIsFilterOpen ] = useState ( false ) ;
3030 const [ activeSection , setActiveSection ] = useState < string | null > ( null ) ;
3131
32+ /**
33+ * Handles changes to the search input.
34+ * Applies search and currently active filters in real time.
35+ */
36+
3237 const handleSearchChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
3338 const newSearchTerm = e . target . value ;
3439 setSearchTerm ( newSearchTerm ) ;
@@ -75,6 +80,10 @@ export default function SearchAndFilter<T extends Record<string, any>>({
7580 onFilterApply ( searchFilteredItems ) ;
7681 } ;
7782
83+ /**
84+ * Toggles a filter value on or off for a given field.
85+ * Updates pending filters only.
86+ */
7887 const toggleFilter = ( field : string , value : string ) => {
7988 setPendingFilters ( ( prevFilters ) => {
8089 const updatedFilters = { ...prevFilters } ;
@@ -94,10 +103,17 @@ export default function SearchAndFilter<T extends Record<string, any>>({
94103 } ) ;
95104 } ;
96105
106+ /**
107+ * Returns the total number of active filter values.
108+ */
97109 const getActiveFilterCount = ( ) => {
98110 return Object . values ( filters ) . reduce ( ( acc , curr ) => acc + curr . length , 0 ) ;
99111 } ;
100112
113+ /**
114+ * Clears all applied and pending filters.
115+ * Keeps the current search term active.
116+ */
101117 const clearFilters = ( ) => {
102118 setPendingFilters ( { } ) ;
103119 setFilters ( { } ) ;
@@ -115,6 +131,9 @@ export default function SearchAndFilter<T extends Record<string, any>>({
115131 onFilterApply ( searchFilteredItems ) ;
116132 } ;
117133
134+ /**
135+ * Applies pending filters and updates the result set.
136+ */
118137 const applyFilters = ( ) => {
119138 setFilters ( pendingFilters ) ;
120139
@@ -159,6 +178,10 @@ export default function SearchAndFilter<T extends Record<string, any>>({
159178 setIsFilterOpen ( false ) ;
160179 } ;
161180
181+ /**
182+ * Resets search input and all filters.
183+ * Restores the full item list.
184+ */
162185 const clearAll = ( ) => {
163186 setSearchTerm ( '' ) ;
164187 setFilters ( { } ) ;
0 commit comments