refactor(hooks): extract useOperatorLabels hook shared between useFilters and Funnel

This commit is contained in:
Rudy B. committed 2026-03-16 21:51:17 +01:00
1 parent 4c306ac287
commit c88313dfff
3 files changed
+26 -17

No files matched your search

+1
View File
@@ -76,6 +76,7 @@ export * from './useMessages';
export * from './useMobile';
export * from './useModified';
export * from './useNavigation';
export * from './useOperatorLabels';
export * from './usePagedQuery';
export * from './usePageParameters';
export * from './useRegionNames';
+2 -17
View File
@@ -3,11 +3,13 @@ import { safeDecodeURIComponent } from '@/lib/url';
import { useFields } from './useFields';
import { useMessages } from './useMessages';
import { useNavigation } from './useNavigation';
import { useOperatorLabels } from './useOperatorLabels';
export function useFilters() {
const { formatMessage, labels } = useMessages();
const { query } = useNavigation();
const { fields } = useFields();
const operatorLabels = useOperatorLabels();
const operators = [
{ name: 'eq', type: 'string', label: formatMessage(labels.is) },
@@ -29,23 +31,6 @@ export function useFilters() {
{ name: 'eq', type: 'uuid', label: formatMessage(labels.is) },
];
const operatorLabels = {
[OPERATORS.equals]: formatMessage(labels.is),
[OPERATORS.notEquals]: formatMessage(labels.isNot),
[OPERATORS.set]: formatMessage(labels.isSet),
[OPERATORS.notSet]: formatMessage(labels.isNotSet),
[OPERATORS.contains]: formatMessage(labels.contains),
[OPERATORS.doesNotContain]: formatMessage(labels.doesNotContain),
[OPERATORS.true]: formatMessage(labels.true),
[OPERATORS.false]: formatMessage(labels.false),
[OPERATORS.greaterThan]: formatMessage(labels.greaterThan),
[OPERATORS.lessThan]: formatMessage(labels.lessThan),
[OPERATORS.greaterThanEquals]: formatMessage(labels.greaterThanEquals),
[OPERATORS.lessThanEquals]: formatMessage(labels.lessThanEquals),
[OPERATORS.before]: formatMessage(labels.before),
[OPERATORS.after]: formatMessage(labels.after),
};
const typeFilters = {
string: [OPERATORS.equals, OPERATORS.notEquals, OPERATORS.contains, OPERATORS.doesNotContain],
array: [OPERATORS.contains, OPERATORS.doesNotContain],
+23
View File
@@ -0,0 +1,23 @@
import { OPERATORS } from '@/lib/constants';
import { useMessages } from './useMessages';
export function useOperatorLabels(): Record<string, string> {
const { formatMessage, labels } = useMessages();
return {
[OPERATORS.equals]: formatMessage(labels.is),
[OPERATORS.notEquals]: formatMessage(labels.isNot),
[OPERATORS.set]: formatMessage(labels.isSet),
[OPERATORS.notSet]: formatMessage(labels.isNotSet),
[OPERATORS.contains]: formatMessage(labels.contains),
[OPERATORS.doesNotContain]: formatMessage(labels.doesNotContain),
[OPERATORS.true]: formatMessage(labels.true),
[OPERATORS.false]: formatMessage(labels.false),
[OPERATORS.greaterThan]: formatMessage(labels.greaterThan),
[OPERATORS.lessThan]: formatMessage(labels.lessThan),
[OPERATORS.greaterThanEquals]: formatMessage(labels.greaterThanEquals),
[OPERATORS.lessThanEquals]: formatMessage(labels.lessThanEquals),
[OPERATORS.before]: formatMessage(labels.before),
[OPERATORS.after]: formatMessage(labels.after),
};
}