checkpoint

need polishing
This commit is contained in:
dimitar committed 2026-01-29 05:13:52 +01:00
1 parent 0351726eeb
commit 5a457fa99f
11 files changed
+1610 -90

No files matched your search

+53
View File
@@ -14,6 +14,8 @@ export function useLiveBlog(slug: string) {
queryKey: ['liveBlog', slug],
queryFn: () => api.fetchLiveBlogBySlug(slug),
enabled: !!slug,
refetchOnWindowFocus: true,
refetchOnMount: true,
});
}
@@ -85,4 +87,55 @@ export function useDeleteLiveBlogUpdate() {
queryClient.invalidateQueries({ queryKey: ['liveBlogUpdates', variables.liveBlogId] });
},
});
}
// Live Blog CRUD Mutations
export function useCreateLiveBlog() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (dto: api.CreateLiveBlogDto) => api.createLiveBlog(dto),
onSuccess: () => {
// Invalidate all live blogs queries
queryClient.invalidateQueries({ queryKey: ['liveBlogs'] });
queryClient.invalidateQueries({ queryKey: ['recentLiveBlogs'] });
},
});
}
export function useUpdateLiveBlog() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ id, dto }: { id: string; dto: api.UpdateLiveBlogDto }) =>
api.updateLiveBlog(id, dto),
onSuccess: (data, variables) => {
// Force immediate refetch of all live blog queries
queryClient.invalidateQueries({
queryKey: ['liveBlog'],
refetchType: 'active'
});
queryClient.invalidateQueries({
queryKey: ['liveBlogs'],
refetchType: 'active'
});
queryClient.invalidateQueries({
queryKey: ['recentLiveBlogs'],
refetchType: 'active'
});
},
});
}
export function useDeleteLiveBlog() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (id: string) => api.deleteLiveBlog(id),
onSuccess: () => {
// Invalidate all live blogs queries
queryClient.invalidateQueries({ queryKey: ['liveBlogs'] });
queryClient.invalidateQueries({ queryKey: ['recentLiveBlogs'] });
},
});
}