mirror of
https://github.com/docmost/docmost.git
synced 2026-08-30 18:36:26 +08:00
feat: notifications (#1947)
* feat: notifications * feat: watchers * improvements * handle page move for watchers * make watchers non-blocking * more
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { useEffect } from "react";
|
||||
import { useAtom } from "jotai";
|
||||
import { useQueryClient } from "@tanstack/react-query";
|
||||
import { socketAtom } from "@/features/websocket/atoms/socket-atom";
|
||||
import { NOTIFICATION_KEY } from "../queries/notification-query";
|
||||
|
||||
export function useNotificationSocket() {
|
||||
const queryClient = useQueryClient();
|
||||
const [socket] = useAtom(socketAtom);
|
||||
|
||||
useEffect(() => {
|
||||
if (!socket) return;
|
||||
|
||||
const handler = () => {
|
||||
queryClient.invalidateQueries({ queryKey: NOTIFICATION_KEY });
|
||||
};
|
||||
|
||||
socket.on("notification", handler);
|
||||
return () => {
|
||||
socket.off("notification", handler);
|
||||
};
|
||||
}, [socket, queryClient]);
|
||||
}
|
||||
Reference in New Issue
Block a user