Refactor twenty-sdk folder stucture (#17733)

Only three barrels: `root`, `ui` and `front-component`
This commit is contained in:
Raphaël Bosi
2026-02-05 13:14:27 +01:00
committed by GitHub
parent 60f2a74bf0
commit 309785f7ff
36 changed files with 38 additions and 2327 deletions
@@ -0,0 +1,49 @@
import { ThreadWebWorker, release, retain } from '@quilted/threads';
import { RemoteReceiver } from '@remote-dom/core/receivers';
import { useEffect } from 'react';
import { type WorkerExports } from '../../types/WorkerExports';
import { createRemoteWorker } from '../worker/createRemoteWorker';
type FrontComponentWorkerEffectProps = {
componentUrl: string;
setReceiver: React.Dispatch<React.SetStateAction<RemoteReceiver | null>>;
setThread: React.Dispatch<
React.SetStateAction<ThreadWebWorker<WorkerExports> | null>
>;
setError: React.Dispatch<React.SetStateAction<Error | null>>;
};
export const FrontComponentWorkerEffect = ({
componentUrl,
setReceiver,
setThread,
setError,
}: FrontComponentWorkerEffectProps) => {
useEffect(() => {
const newReceiver = new RemoteReceiver({ retain, release });
const worker = createRemoteWorker();
worker.onerror = (event: ErrorEvent) => {
setError(event.error);
};
const thread = new ThreadWebWorker<WorkerExports>(worker);
setThread(thread);
thread.imports
.render(newReceiver.connection, { componentUrl })
.catch((error: Error) => {
setError(error);
});
setReceiver(newReceiver);
return () => {
setThread(null);
worker.terminate();
};
}, [componentUrl, setError, setReceiver, setThread]);
return null;
};