brilliant-orangeB
Refine2y ago
25 replies
brilliant-orange

how to add filter

const { dataGridProps, search, filters } = useDataGrid<
    BaseRecord,
    HttpError,
    IPointsFilterVariables
  >({
    pagination: {
      mode: 'server',
    },
    initialPageSize: 10,
    onSearch: (params) => {
      const filters: CrudFilters = [];
      const { q, type } = params;

      filters.push({
        field: 'q',
        operator: 'eq',
        value: q !== '' ? q : undefined,
      });

      filters.push({
        field: 'points',
        operator: 'eq',
        value: q !== '' ? q : undefined,
      });

      filters.push(
        {
          field: 'order_date',
          operator: 'gte',
          value: startValue
            ? dayjs(startValue).format('YYYY-MM-DD 00:00:00')
            : undefined,
        },
        {
          field: 'order_date',
          operator: 'lte',
          value: endValue
            ? dayjs(endValue).format('YYYY-MM-DD 23:59:59')
            : undefined,
        },
      );

      filters.push({
        field: 'type',
        operator: 'eq',
        value: type !== '' ? type : 'member_phone',
      });

      filters.push({
        field: 'status',
        operator: 'eq',
        value: selectedStatuses,
      });

      return filters;
    },
  });

  const { register, handleSubmit, control, reset } = useForm<
    BaseRecord,
    HttpError,
    IPointsFilterVariables
  >({
    defaultValues: {
      q: getDefaultFilter('q', filters, 'eq'),
      type: getDefaultFilter('type', filters, 'eq'),
      points: getDefaultFilter('points', filters, 'eq'),
      status: getDefaultFilter('status', filters, 'eq'),
    },
  });

when I search 'type' = 'member_id'. but Url not add filter 'type'
http://localhost:3003/membership?pageSize=10&current=1&filters[0][field]=q&filters[0][value]=jjj&filters[0][operator]=eq
`
Was this page helpful?