blob: 2ba2e196bf725bbada1928b93444112265e9bfbe (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* SPDX-License-Identifier: AGPL-3.0-or-later */
import React from "react";
export default (): React.JSX.Element => {
const [insertIframe, setInsertIframe] = React.useState(false);
React.useEffect((): (() => void) => {
const handleIframeLoad = (): (() => void) => {
// Insert the iframe after a 3000ms delay.
const timerId = setTimeout((): void => setInsertIframe(true), 3000);
// Cleanup the timer when the component unmounts.
return (): void => clearTimeout(timerId);
};
window.addEventListener("load", handleIframeLoad);
window.scroll(0, 0);
// Cleanup the event listener when the component unmounts.
return (): void => window.removeEventListener("load", handleIframeLoad);
}, []); // Empty dependency array means the effect runs only once after initial render.
return (
<>
{/* Use a descriptive title for accessibility */}
{insertIframe && (
<iframe
title="Input Page Preloader"
src="/input/"
style={{ display: "none" }}
/>
)}
</>
);
};
|