umami/hooks/useFilters.js

34 lines
957 B
JavaScript
Raw Normal View History

2023-07-02 07:02:49 +02:00
import { useMessages } from 'hooks';
2023-08-09 00:29:59 +02:00
export function useFilters(type) {
2023-07-02 07:02:49 +02:00
const { formatMessage, labels } = useMessages();
const filters = {
eq: formatMessage(labels.equals),
neq: formatMessage(labels.doesNotEqual),
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 types = {
string: ['eq', 'neq'],
array: ['c', 'dnc'],
boolean: ['t', 'f'],
number: ['eq', 'neq', 'gt', 'lt', 'gte', 'lte'],
date: ['be', 'af'],
2023-07-18 18:09:22 +02:00
uuid: ['eq'],
2023-07-02 07:02:49 +02:00
};
2023-08-09 00:29:59 +02:00
return types[type]?.map(key => ({ type, value: key, label: filters[key] })) ?? [];
2023-07-02 07:02:49 +02:00
}
export default useFilters;