APIComponents<OverlayProvider>

<OverlayProvider>

OverlayProvider determines where overlays are rendered in your React application.

<OverlayProvider>
  <App />
</OverlayProvider>

Reference

Since overlays are typically rendered above other elements, they should be placed at the root of your application.

<OverlayProvider>
  <App />
</OverlayProvider>

Important Notes

  • OverlayProvider should be rendered only once in your React application. Multiple instances may prevent overlays from working correctly due to context propagation issues.

Usage

<OverlayProvider /> provides the context needed to render all overlays.

Any component that renders overlays must be placed under the <OverlayProvider /> component.

import React from 'react';
import { OverlayProvider, overlay } from 'overlay-kit';
import { Modal } from '@src/components';
 
function App() {
  const notify = () =>
    overlay.open(({ isOpen, close, unmount }) => (
      <Modal isOpen={isOpen} onClose={close} onExit={unmount}>
        {/* Modal content */}
      </Modal>
    ));
 
  return <button onClick={notify}>open modal</button>;
}
 
export function Root() {
  return (
    <OverlayProvider>
      <App />
      {/* All overlays will be rendered here */}
    </OverlayProvider>
  );
}