Add consent-gated media exchange library
This commit is contained in:
1 parent
b8e4a1bb88
commit
bf474dfe10
42 files changed
+2533
-9
No files matched your search
@@ -0,0 +1,33 @@
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
||||
import type { MediaLibraryUpdate } from '../../../../../packages/api-contracts/src/index.js';
|
||||
import { deleteMediaLibraryImage, fetchMediaLibrary, updateMediaLibraryImage, uploadMediaLibraryImage } from './api.js';
|
||||
|
||||
export const mediaLibraryQueryKey = ['dashboard', 'media-library'] as const;
|
||||
|
||||
export function useMediaLibraryQuery() {
|
||||
return useQuery({ queryKey: mediaLibraryQueryKey, queryFn: fetchMediaLibrary });
|
||||
}
|
||||
|
||||
export function useUploadMediaLibraryMutation() {
|
||||
const client = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: uploadMediaLibraryImage,
|
||||
onSuccess: () => client.invalidateQueries({ queryKey: mediaLibraryQueryKey }),
|
||||
});
|
||||
}
|
||||
|
||||
export function useUpdateMediaLibraryMutation() {
|
||||
const client = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: ({ id, update }: { id: string; update: MediaLibraryUpdate }) => updateMediaLibraryImage(id, update),
|
||||
onSuccess: () => client.invalidateQueries({ queryKey: mediaLibraryQueryKey }),
|
||||
});
|
||||
}
|
||||
|
||||
export function useDeleteMediaLibraryMutation() {
|
||||
const client = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: deleteMediaLibraryImage,
|
||||
onSuccess: () => client.invalidateQueries({ queryKey: mediaLibraryQueryKey }),
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user