New alert service

This commit is contained in:
Urtzi Alfaro
2025-12-05 20:07:01 +01:00
parent 1fe3a73549
commit 667e6e0404
393 changed files with 26002 additions and 61033 deletions

View File

@@ -16,13 +16,14 @@ import type {
Notification,
EventDomain,
UseNotificationsConfig,
} from '../types/events';
import { isNotification } from '../types/events';
} from '../api/types/events';
import { isNotification } from '../api/types/events';
interface UseEventNotificationsReturn {
notifications: Notification[];
recentNotifications: Notification[];
isLoading: boolean;
isConnected: boolean; // Added isConnected to interface
clearNotifications: () => void;
}
@@ -52,7 +53,7 @@ export function useEventNotifications(config: UseNotificationsConfig = {}): UseE
const [notifications, setNotifications] = useState<Notification[]>([]);
const [isLoading, setIsLoading] = useState(true);
// Use refs to track previous values and prevent unnecessary updates
// Use refs to track previous values and prevent unnecessary updates
const prevEventIdsRef = useRef<string>('');
const prevEventTypesRef = useRef<string[]>([]);
const prevMaxAgeRef = useRef<number>(maxAge);
@@ -62,8 +63,8 @@ export function useEventNotifications(config: UseNotificationsConfig = {}): UseE
// Check if the configuration has actually changed
const currentEventTypes = eventTypes || [];
const currentDomains = domains || [];
const configChanged =
const configChanged =
JSON.stringify(currentEventTypes) !== JSON.stringify(prevEventTypesRef.current) ||
prevMaxAgeRef.current !== maxAge ||
JSON.stringify(currentDomains) !== JSON.stringify(prevDomainsRef.current);
@@ -75,7 +76,7 @@ export function useEventNotifications(config: UseNotificationsConfig = {}): UseE
// Create current event IDs string for comparison
const currentEventIds = events.map(e => e.id).join(',');
// Only process if config changed OR events actually changed
if (!configChanged && currentEventIds === prevEventIdsRef.current) {
return; // No changes, skip processing