()
| 404 | * Throws a promise to trigger suspense if the data isn't available yet. |
| 405 | */ |
| 406 | export const useEnvironmentsWithHealth = () => { |
| 407 | const [environments] = useAtom(environmentsWithHealth); |
| 408 | |
| 409 | if (environments) return environments; |
| 410 | |
| 411 | throw new Promise<EnvironmentsWithHealth>((resolve) => { |
| 412 | const interval = setInterval(() => { |
| 413 | const envLoadable = getStore().get(loadableEnvironmentsWithHealth); |
| 414 | const map = |
| 415 | envLoadable.state === "hasData" ? envLoadable.data : undefined; |
| 416 | if (map) { |
| 417 | clearInterval(interval); |
| 418 | resolve(map); |
| 419 | } |
| 420 | }, 50); |
| 421 | }); |
| 422 | }; |
| 423 | |
| 424 | const defaultTimeout = 10_000; // 10 seconds |
| 425 | const maxBootDuration = { minutes: 15 }; |
no test coverage detected