diff --git a/web/core/components/exporter/guide.tsx b/web/core/components/exporter/guide.tsx index 7096555ec..eff265a3f 100644 --- a/web/core/components/exporter/guide.tsx +++ b/web/core/components/exporter/guide.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import Link from "next/link"; @@ -51,6 +51,11 @@ const IntegrationGuide = observer(() => { : null ); + const handleRefresh = () => { + setRefreshing(true); + mutate(EXPORT_SERVICES_LIST(workspaceSlug as string, `${cursor}`, `${per_page}`)).then(() => setRefreshing(false)); + }; + const handleCsvClose = () => { router.replace(`/${workspaceSlug?.toString()}/settings/exports`); }; @@ -58,6 +63,18 @@ const IntegrationGuide = observer(() => { const hasProjects = workspaceProjectIds && workspaceProjectIds.length > 0; const isAdmin = currentWorkspaceRole === EUserWorkspaceRoles.ADMIN; + useEffect(() => { + const interval = setInterval(() => { + if (exporterServices?.results?.some((service) => service.status === "processing")) { + handleRefresh(); + } else { + clearInterval(interval); + } + }, 3000); + + return () => clearInterval(interval); + }, [exporterServices]); + return ( <>
@@ -103,12 +120,7 @@ const IntegrationGuide = observer(() => {