diff --git a/backend/app/api/v1/user.py b/backend/app/api/v1/user.py index 8cad774..8bb9b01 100644 --- a/backend/app/api/v1/user.py +++ b/backend/app/api/v1/user.py @@ -30,11 +30,19 @@ def request_user_api_key(api_key_request: APIKeyRequest, db: Session = Depends(g def save_user_api_key( api_key_request: UpdateAPIKeyRequest, db: Session = Depends(get_db) ): + users = user_repository.get_users(db, n=1) if not users: raise HTTPException(status_code=404, detail="No User Exists!") + try: + requests.get_user_usage_data(api_key_request.api_key) + except Exception: + raise HTTPException( + status_code=400, detail="Invalid API Key" + ) + user_repository.update_user_api_key(db, users[0].id, api_key_request.api_key) return { diff --git a/frontend/src/app/(app)/projects/[projectId]/page.tsx b/frontend/src/app/(app)/projects/[projectId]/page.tsx index d75e194..fcff46e 100644 --- a/frontend/src/app/(app)/projects/[projectId]/page.tsx +++ b/frontend/src/app/(app)/projects/[projectId]/page.tsx @@ -105,6 +105,8 @@ export default function Project() { hasNextPage, isFetchingNextPage, isLoading: isAssetsLoading, + isFetching: isAssetsFetching, + refetch: refetchAssets, } = useInfiniteQuery({ queryKey: ["projectAssets", id], queryFn: ({ pageParam = 1 }) => GetProjectAssets(id, pageParam, pageSize), @@ -200,11 +202,11 @@ export default function Project() { const handleFileUpload = async (fileList: FileList | null) => { if (fileList) { + setUploadingFile(true); const files = Array.from(fileList); setUploadingFiles((prev) => [...prev, ...files]); try { - setUploadingFile(true); for (const file of files) { const response = await AddProjectAsset(id, file); @@ -216,11 +218,12 @@ export default function Project() { setUploadingFile(false); setUploadingFiles([]); setUploadedFiles([]); - queryClient.invalidateQueries({ queryKey: ["projectAssets"] }); + refetchAssets(); } catch (error) { console.error("Error uploading files:", error); setUploadingFiles([]); setUploadedFiles([]); + setUploadingFile(false); } } }; @@ -300,6 +303,12 @@ export default function Project() { } }, [inView, fetchNextPage, hasNextPage]); + const shouldShowDragAndDrop = + !uploadingFile && + !isAssetsLoading && + !isAssetsFetching && + (!assets || assets.length === 0); + return ( <>
@@ -370,7 +379,7 @@ export default function Project() { {activeTab === "assets" && ( <> - {!uploadingFile && assets && assets?.length === 0 ? ( + {shouldShowDragAndDrop ? (