Files
e99f73622b Update with web worker example to utilize the App Router (#70058)
This PR updates the with-web-worker example to use the App Router. Here
are the changes that have been made:

- Renamed the `pages` folder to the `app` folder.
- Updated the routing for `/` files to align with the App Router.
- Added the layout.tsx file as part of the App Router.
- Updated the package.json file.

The following actions were performed as part of this PR:
- Ran `pnpm prettier-check` with no issues found.
- Executed the `pnpm check-examples` script.

---------

Co-authored-by: samcx <[email protected]>
2024-09-13 14:09:24 -07:00

27 lines
665 B
TypeScript

"use client";
import { useEffect, useRef, useCallback } from "react";
export default function Index() {
const workerRef = useRef<Worker>();
useEffect(() => {
workerRef.current = new Worker(new URL("../worker.ts", import.meta.url));
workerRef.current.onmessage = (event: MessageEvent<number>) =>
alert(`WebWorker Response => ${event.data}`);
return () => {
workerRef.current?.terminate();
};
}, []);
const handleWork = useCallback(async () => {
workerRef.current?.postMessage(100000);
}, []);
return (
<>
<p>Do work in a WebWorker!</p>
<button onClick={handleWork}>Calculate PI</button>
</>
);
}