Commit 7b008520 authored by Hines, Jesse's avatar Hines, Jesse
Browse files

Fix some bugs in filter modal

Fix issue when some columns have filter false. And fix default filter getting set incorrectly
parent 81deb7b8
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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"}`}
@@ -28,7 +26,8 @@ export function ColumnSelection({
                <div className="h-2 w-2 rounded-full bg-blue-500" />
              )}
          </button>
        ))}
        ))
      }
    </div>
  );
}
+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;
@@ -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;
@@ -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: "",
      });
    }
@@ -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);