'React Web Worker thread halting webpage

Im using the shopify react webworker package and my testing doesn't seem to be working. I have a worker thread that runs a loop for 3 seconds. My assumption is I should still beable to interact with the website while this worker runs but I am unable to. Any ideas or insight into how web workers work?

import React, { useEffect, useMemo, useState } from 'react';
import { createWorkerFactory, useWorker } from "@shopify/react-web-worker";

const createWorker = createWorkerFactory(() => import('./workers/Worker'))

function Process() {
    const [element, setElement] = useState("running")
    const worker = useWorker(createWorker);

    useEffect(() => {
        (async () => {
            const webWorkerMessage = await worker.workerFunction();
            setElement(webWorkerMessage);
        })();
    }, [worker]);

    return (
        <div>
            {element}
        </div>
    )
}


function App() {
    const [value, setValue] = useState(0)

    const buttonClick = () => {
        setValue(value + 1)
    }

    return (
        <div className="App">
            {(value === 0) ? <></> : <Process />}
            <button style={{ margin: 100 }} onClick={() => buttonClick()}>CLICK ME</button>
            {new Array(value).fill(
                <div>
                    Cool
                </div>
            )}
        </div>
    );
}

export default App;
export const workerFunction = (): string => {
    let retern = false
    let time = new Date().getTime()

    while(!retern){
        if(new Date().getTime() - time  > 1000){
            retern = true
        }
    }
    
    return "done"
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source