Files
frigate/web/src/hooks/use-config-messages.ts
T

33 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-03-29 16:25:40 -05:00
import { useMemo } from "react";
import type {
ConditionalMessage,
FieldConditionalMessage,
MessageConditionContext,
} from "@/components/config-form/section-configs/types";
2026-09-18 08:33:23 -05:00
import { resolveMessageKey } from "@/utils/runtimeOverrides";
2026-03-29 16:25:40 -05:00
export function useConfigMessages(
messages: ConditionalMessage[] | undefined,
fieldMessages: FieldConditionalMessage[] | undefined,
context: MessageConditionContext | undefined,
): {
activeMessages: ConditionalMessage[];
activeFieldMessages: FieldConditionalMessage[];
} {
const activeMessages = useMemo(() => {
if (!messages || !context) return [];
2026-09-18 08:33:23 -05:00
return messages
.filter((msg) => msg.condition(context))
.map((msg) => ({ ...msg, messageKey: resolveMessageKey(msg, context) }));
2026-03-29 16:25:40 -05:00
}, [messages, context]);
const activeFieldMessages = useMemo(() => {
if (!fieldMessages || !context) return [];
2026-09-18 08:33:23 -05:00
return fieldMessages
.filter((msg) => msg.condition(context))
.map((msg) => ({ ...msg, messageKey: resolveMessageKey(msg, context) }));
2026-03-29 16:25:40 -05:00
}, [fieldMessages, context]);
return { activeMessages, activeFieldMessages };
}