mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 04:51:51 +00:00
ff45f46047
Co-authored-by: alejandrobailo <alejandrobailo94@gmail.com>
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
"use client";
|
|
|
|
import {
|
|
CROSS_PROVIDER_PDF_TASK_KIND,
|
|
crossProviderPdfHandler,
|
|
} from "@/app/(prowler)/compliance/_lib/cross-provider-pdf";
|
|
import { jiraDispatchTaskHandler } from "@/components/findings/jira-dispatch-task-handler";
|
|
import { useMountEffect } from "@/hooks/use-mount-effect";
|
|
import {
|
|
registerTaskKindHandler,
|
|
resumePendingTasks,
|
|
} from "@/store/task-watcher/store";
|
|
import { JIRA_DISPATCH_TASK_KIND } from "@/types/integrations";
|
|
|
|
// Kind registrations happen at module scope, before any task can settle in
|
|
// this tab. Adding a new watched task kind (integration tests, scan exports,
|
|
// …) is one line here plus a handler next to the feature that owns it.
|
|
registerTaskKindHandler(CROSS_PROVIDER_PDF_TASK_KIND, crossProviderPdfHandler);
|
|
registerTaskKindHandler(JIRA_DISPATCH_TASK_KIND, jiraDispatchTaskHandler);
|
|
|
|
/**
|
|
* Mounted once in the app layout (next to `Toaster`): resumes polling any
|
|
* backend task persisted as pending by `@/store/task-watcher`, so completion
|
|
* toasts survive a hard reload. In-session tracking needs no component at
|
|
* all — `trackAndPollTask` runs its loop at module scope from the
|
|
* dispatching click handler.
|
|
*/
|
|
export const TaskPollingWatcher = () => {
|
|
useMountEffect(() => {
|
|
resumePendingTasks();
|
|
});
|
|
|
|
return null;
|
|
};
|