Loading src/components/shared/list/filtering/ColumnSelection.tsx +5 −6 Original line number Diff line number Diff line Loading @@ -12,11 +12,9 @@ export function ColumnSelection({ }) { return ( <div className="flex w-1/4 flex-col border-r-2"> {columns .filter( (column) => column.filterable === undefined || column.filterable, ) .map((column, index) => ( {[...columns.entries()] .filter(([_index, column]) => column.filterable ?? true) .map(([index, column]) => ( <button key={column.propertyName} className={`flex items-center justify-between border-b-2 px-4 py-2 font-medium transition-opacity duration-500 hover:opacity-50 focus:outline-none ${index === openIndex && "bg-blue-500 text-white hover:opacity-100"}`} Loading @@ -28,7 +26,8 @@ export function ColumnSelection({ <div className="h-2 w-2 rounded-full bg-blue-500" /> )} </button> ))} )) } </div> ); } src/util/hooks/useListFilter.ts +7 −6 Original line number Diff line number Diff line import { BaseSyntheticEvent, useState } from "react"; import { ColumnHeader } from "../../models/dataGrid/columnHeader.model"; import { FilterOperators } from "../../models/filters/filterOperators.enum"; import { cloneDeep } from "lodash"; export type onOpen = (e: BaseSyntheticEvent) => void; export type onClose = (reset?: boolean) => void; Loading Loading @@ -65,8 +66,8 @@ export function useListFilter({ operator: FilterOperators; value: string | null; }) { const newColumsns = [...updatedColumns]; const column = newColumsns[openColumn]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; if (payload.operator) { if (Object.values(FilterOperators).includes(payload.operator)) { column.activeFilters[payload.index].operator = payload.operator; Loading @@ -75,16 +76,16 @@ export function useListFilter({ if (payload.value !== null) { column.activeFilters[payload.index].value = payload.value; } setUpdatedColumns(newColumsns); setUpdatedColumns(newColumns); } function onAddColumn(e: BaseSyntheticEvent) { e.preventDefault(); const newColumns = [...updatedColumns]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; if (column) { column.activeFilters.push({ operator: FilterOperators.Contains, operator: column.operators[0], value: "", }); } Loading @@ -93,7 +94,7 @@ export function useListFilter({ function onDeleteColumn(e: BaseSyntheticEvent, index: number) { e.preventDefault(); const newColumns = [...updatedColumns]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; column.activeFilters.splice(index, 1); setUpdatedColumns(newColumns); Loading Loading
src/components/shared/list/filtering/ColumnSelection.tsx +5 −6 Original line number Diff line number Diff line Loading @@ -12,11 +12,9 @@ export function ColumnSelection({ }) { return ( <div className="flex w-1/4 flex-col border-r-2"> {columns .filter( (column) => column.filterable === undefined || column.filterable, ) .map((column, index) => ( {[...columns.entries()] .filter(([_index, column]) => column.filterable ?? true) .map(([index, column]) => ( <button key={column.propertyName} className={`flex items-center justify-between border-b-2 px-4 py-2 font-medium transition-opacity duration-500 hover:opacity-50 focus:outline-none ${index === openIndex && "bg-blue-500 text-white hover:opacity-100"}`} Loading @@ -28,7 +26,8 @@ export function ColumnSelection({ <div className="h-2 w-2 rounded-full bg-blue-500" /> )} </button> ))} )) } </div> ); }
src/util/hooks/useListFilter.ts +7 −6 Original line number Diff line number Diff line import { BaseSyntheticEvent, useState } from "react"; import { ColumnHeader } from "../../models/dataGrid/columnHeader.model"; import { FilterOperators } from "../../models/filters/filterOperators.enum"; import { cloneDeep } from "lodash"; export type onOpen = (e: BaseSyntheticEvent) => void; export type onClose = (reset?: boolean) => void; Loading Loading @@ -65,8 +66,8 @@ export function useListFilter({ operator: FilterOperators; value: string | null; }) { const newColumsns = [...updatedColumns]; const column = newColumsns[openColumn]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; if (payload.operator) { if (Object.values(FilterOperators).includes(payload.operator)) { column.activeFilters[payload.index].operator = payload.operator; Loading @@ -75,16 +76,16 @@ export function useListFilter({ if (payload.value !== null) { column.activeFilters[payload.index].value = payload.value; } setUpdatedColumns(newColumsns); setUpdatedColumns(newColumns); } function onAddColumn(e: BaseSyntheticEvent) { e.preventDefault(); const newColumns = [...updatedColumns]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; if (column) { column.activeFilters.push({ operator: FilterOperators.Contains, operator: column.operators[0], value: "", }); } Loading @@ -93,7 +94,7 @@ export function useListFilter({ function onDeleteColumn(e: BaseSyntheticEvent, index: number) { e.preventDefault(); const newColumns = [...updatedColumns]; const newColumns = cloneDeep(updatedColumns); const column = newColumns[openColumn]; column.activeFilters.splice(index, 1); setUpdatedColumns(newColumns); Loading