import { useMessages } from 'hooks'; export function useFilters() { const { formatMessage, labels } = useMessages(); const filterLabels = { eq: formatMessage(labels.is), neq: formatMessage(labels.isNot), s: formatMessage(labels.isSet), ns: formatMessage(labels.isNotSet), c: formatMessage(labels.contains), dnc: formatMessage(labels.doesNotContain), t: formatMessage(labels.true), f: formatMessage(labels.false), gt: formatMessage(labels.greaterThan), lt: formatMessage(labels.lessThan), gte: formatMessage(labels.greaterThanEquals), lte: formatMessage(labels.lessThanEquals), be: formatMessage(labels.before), af: formatMessage(labels.after), }; const typeFilters = { string: ['eq', 'neq'], array: ['c', 'dnc'], boolean: ['t', 'f'], number: ['eq', 'neq', 'gt', 'lt', 'gte', 'lte'], date: ['be', 'af'], uuid: ['eq'], }; const getFilters = type => { return typeFilters[type]?.map(key => ({ type, value: key, label: filterLabels[key] })) ?? []; }; return { getFilters, filterLabels, typeFilters }; } export default useFilters;