import { useMutation, useQuery, UseQueryResult, useQueryClient } from '@tanstack/react-query'; import { createPage, deletePage, getPageById, getRecentChanges, updatePage, } from '@/features/page/services/page-service'; import { IPage } from '@/features/page/types/page.types'; import { notifications } from '@mantine/notifications'; const RECENT_CHANGES_KEY = ['recentChanges']; export function usePageQuery(pageId: string): UseQueryResult { return useQuery({ queryKey: ['page', pageId], queryFn: () => getPageById(pageId), enabled: !!pageId, }); } export function useRecentChangesQuery(): UseQueryResult { return useQuery({ queryKey: RECENT_CHANGES_KEY, queryFn: () => getRecentChanges(), refetchOnMount: true, }); } export function useCreatePageMutation() { return useMutation>({ mutationFn: (data) => createPage(data), }); } export function useUpdatePageMutation() { return useMutation>({ mutationFn: (data) => updatePage(data), }); } export function useDeletePageMutation() { return useMutation({ mutationFn: (pageId: string) => deletePage(pageId), onSuccess: () => { notifications.show({ message: 'Page deleted successfully' }); }, }); }