Skip to content
Snippets Groups Projects
notifications.ts 962 B
Newer Older
  • Learn to ignore specific revisions
  • import { useEffect, useState } from 'react';
    
    import {getNotifications, AgentNotification} from "src/utils/agentUtils";
    
    import rootStore from "src/store/rootStore";
    
    import {Results, useQuery} from "@realm/react";
    import Email from "../db-models/Email";
    
    export const useAgentNotifications = (): AgentNotification[] => {
      const [notifications, setNotifications] = useState<AgentNotification[]>([]);
    
    
      const fetchNotifications = async () => {
        const data = await getNotifications(rootStore.agentStore.agent);
        setNotifications(data);
      }
    
      useEffect(() => {
        const interval = setInterval(fetchNotifications, 2000);
    
        fetchNotifications();
    
        return () => clearInterval(interval);
      }, []);
    
      return notifications;
    };
    
    
    export const useEmailNotifications = (): Results<Email> => {
      let emailQuery = useQuery(Email);
      emailQuery = emailQuery.filtered(`read == $0`, false);
      emailQuery = emailQuery.sorted('createdAt', true);
    
      return emailQuery;
    };