refactor userFilesInfo query
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { getUserFilesInfo } from '@/app/actions/action';
|
||||
|
||||
export interface FilesInfo {
|
||||
total: {
|
||||
size: number;
|
||||
quantity: number;
|
||||
check: number;
|
||||
violation: number;
|
||||
protected: number;
|
||||
};
|
||||
images: {
|
||||
quantity: number;
|
||||
size: number;
|
||||
check: number;
|
||||
violation: number;
|
||||
protected: number;
|
||||
};
|
||||
videos: {
|
||||
quantity: number;
|
||||
size: number;
|
||||
check: number;
|
||||
violation: number;
|
||||
protected: number;
|
||||
};
|
||||
audios: {
|
||||
quantity: number;
|
||||
size: number;
|
||||
check: number;
|
||||
violation: number;
|
||||
protected: number;
|
||||
};
|
||||
documents: {
|
||||
quantity: number;
|
||||
size: number;
|
||||
check: number;
|
||||
violation: number;
|
||||
protected: number;
|
||||
};
|
||||
}
|
||||
|
||||
export const useUserFilesInfo = () => {
|
||||
return useQuery({
|
||||
queryKey: ['userFilesInfo'],
|
||||
queryFn: getUserFilesInfo,
|
||||
select: (data): FilesInfo => {
|
||||
if (!data) {
|
||||
return {
|
||||
total: { size: 0, quantity: 0, check: 0, violation: 0, protected: 0 },
|
||||
images: { quantity: 0, size: 0, check: 0, violation: 0, protected: 0 },
|
||||
videos: { quantity: 0, size: 0, check: 0, violation: 0, protected: 0 },
|
||||
audios: { quantity: 0, size: 0, check: 0, violation: 0, protected: 0 },
|
||||
documents: { quantity: 0, size: 0, check: 0, violation: 0, protected: 0 },
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
total: {
|
||||
size: data.all_files_size,
|
||||
quantity: data.all_files_quantity,
|
||||
check: data.all_files_check,
|
||||
violation: data.all_files_violation,
|
||||
protected: data.protected_files_count,
|
||||
},
|
||||
images: {
|
||||
quantity: data.images_quantity,
|
||||
size: data.images_size,
|
||||
check: data.images_check,
|
||||
violation: data.images_violations,
|
||||
protected: data.protected_image_files_count,
|
||||
},
|
||||
videos: {
|
||||
quantity: data.videos_quantity,
|
||||
size: data.videos_size,
|
||||
check: data.videos_check,
|
||||
violation: data.videos_violations,
|
||||
protected: data.protected_video_files_count,
|
||||
},
|
||||
audios: {
|
||||
quantity: data.audios_quantity,
|
||||
size: data.audios_size,
|
||||
check: data.audios_check,
|
||||
violation: data.audios_violations,
|
||||
protected: data.protected_audio_files_count,
|
||||
},
|
||||
documents: {
|
||||
quantity: data.document_quantity,
|
||||
size: data.document_size,
|
||||
check: data.document_check,
|
||||
violation: data.document_violations,
|
||||
protected: data.protected_document_files_count,
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user