import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { api, unwrap } from "../api/client"; import { qk } from "../api/queryKeys"; import type { components } from "../api/schema"; export type Notification = components["schemas"]["NotificationRead"]; export function useNotifications(enabled: boolean) { return useQuery({ queryKey: qk.notifications, queryFn: async () => unwrap(await api.GET("/api/notifications")), enabled, }); } export function useMarkNotificationsRead() { const qc = useQueryClient(); return useMutation({ // ids не задаём → сервер отметит прочитанными все непрочитанные. mutationFn: async (ids?: number[]) => unwrap(await api.POST("/api/notifications/read", { body: { ids: ids ?? null } })), onSuccess: () => qc.invalidateQueries({ queryKey: qk.notifications }), }); }