refactor(web): use React Query for Google Drive folder operations

- Fix errors in connectors-api.service (use .issues instead of .errors)
- Create useGoogleDriveFolders hook with proper React Query integration
- Add Google Drive folders cache keys with proper query invalidation
- Refactor GoogleDriveFolderTree to use React Query hook for root data
- Remove manual state management (isInitialized, setRootItems, loadRootItems)
- Remove unused state (driveFolders, isLoadingFolders) from manage page
- Simplify handleOpenDriveFolderDialog function
- Automatic loading, caching, error handling, and refetching via React Query
- Better performance with proper caching and state management
This commit is contained in:
CREDO23 2025-12-28 19:17:37 +02:00
parent c5c61a2c6b
commit 10c98745cd
6 changed files with 129 additions and 93 deletions

View file

@ -0,0 +1,29 @@
import { useQuery } from "@tanstack/react-query";
import { connectorsApiService } from "@/lib/apis/connectors-api.service";
import { cacheKeys } from "@/lib/query-client/cache-keys";
interface UseGoogleDriveFoldersOptions {
connectorId: number;
parentId?: string;
enabled?: boolean;
}
export function useGoogleDriveFolders({
connectorId,
parentId,
enabled = true,
}: UseGoogleDriveFoldersOptions) {
return useQuery({
queryKey: cacheKeys.connectors.googleDrive.folders(connectorId, parentId),
queryFn: async () => {
return connectorsApiService.listGoogleDriveFolders({
connector_id: connectorId,
parent_id: parentId,
});
},
enabled: enabled && !!connectorId,
staleTime: 5 * 60 * 1000, // 5 minutes
retry: 2,
});
}