qlik-oss/sn-table

View on GitHub
src/nebula-hooks/use-react-root.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { useEffect, useMemo } from "@nebula.js/stardust";
import { createRoot } from "react-dom/client";

const useReactRoot = (rootElement: HTMLElement) => {
  const reactRoot = useMemo(() => createRoot(rootElement), [rootElement]);

  useEffect(() => () => reactRoot.unmount(), [reactRoot]);

  return reactRoot;
};

export default useReactRoot;