All files / app/src/features/measure/lib get-measure-table-filters.tsx

97.14% Statements 34/35
100% Branches 1/1
33.33% Functions 1/3
97.14% Lines 34/35

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 511x                               1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x  
import { TFunction } from '@/shared/@types'
import { TableFilterAtom, TableFilterQuery } from '@tmk/ui-kit'
import { useUsersCollection } from '@/entities/user'
import { displayDateFilters } from '@/entities/accounting-object'
import { useWarehousesCollection } from '@/entities/warehouse'
import { Contract, useContracts } from '@/entities/contract'
import dayjs from 'dayjs'
import { DEFAULT_DATE_FORMAT } from '@/shared/config'
import { TableFilterItem } from '@/widgets/table'
import {
  dateOperationMeasureAtom,
  performedByOperationMeasureAtom,
  warehouseContractOperationMeasureAtom,
  warehouseOperationMeasureAtom,
} from '@/features/measure'
 
export const getMeasuresFilters = (t: TFunction): TableFilterItem[] => [
  {
    label: t('accounting-object:dateOfOperation'),
    name: 'date',
    atom: dateOperationMeasureAtom as TableFilterAtom,
    type: 'range-date',
    displayValue: date => displayDateFilters(t, date as string[]),
  },
  {
    label: t('accounting-object:Warehouse'),
    atom: warehouseOperationMeasureAtom as TableFilterAtom,
    name: 'warehouse',
    type: 'selectSearch',
    useQuery: useWarehousesCollection as TableFilterQuery,
    labelKey: 'name',
  },
  {
    label: t('common:User'),
    atom: performedByOperationMeasureAtom as TableFilterAtom,
    name: 'user',
    type: 'selectSearch',
    useQuery: useUsersCollection as TableFilterQuery,
    labelKey: 'displayName',
  },
  {
    label: t('accounting-object:Contract'),
    atom: warehouseContractOperationMeasureAtom as TableFilterAtom,
    name: 'contract',
    type: 'selectSearch',
    useQuery: useContracts as TableFilterQuery,
    transformLabel: entity =>
      `${(entity as Contract).number} ${t('from')} ${dayjs((entity as Contract).date).format(DEFAULT_DATE_FORMAT)}`,
  },
]