rsnext/test/integration/worker-webpack5/pages/index.js
2021-08-17 09:18:08 +02:00

37 lines
1 KiB
JavaScript

import * as React from 'react'
import { Expensive } from '../lib/sharedCode'
export default function Home() {
const [expensiveWebStatus, setExpensiveWebStatus] = React.useState('WAIT')
const [expensiveWorkerStatus, setExpensiveWorkerComplete] =
React.useState('WAIT')
const worker = React.useRef()
React.useEffect(() => {
worker.current = new Worker(new URL('../lib/worker.js', import.meta.url))
worker.current.addEventListener('message', ({ data }) => {
if (data) {
setExpensiveWorkerComplete('PASS')
}
})
worker.current.addEventListener('error', (data) => {
setExpensiveWorkerComplete('FAIL')
})
}, [worker, setExpensiveWorkerComplete])
React.useEffect(() => {
try {
Expensive()
setExpensiveWebStatus('PASS')
} catch {
setExpensiveWebStatus('FAIL')
}
}, [])
return (
<main>
<h1>$RefreshRegistry repro</h1>
<div id="web-status">Web: {expensiveWebStatus}</div>
<div id="worker-status">Worker: {expensiveWorkerStatus}</div>
</main>
)
}