7.6.2.56. useOverlay
useOverlay フックは、Web コンソールのページ構造の外側の DOM にコンポーネントを直接挿入します。これにより、CSS を使用してコンポーネントを自由にスタイル設定し、配置できるようになります。たとえば、オーバーレイを UI の右上隅に浮かせる場合は、style={{ position: 'absolute', right: '2rem', top: '2rem', zIndex: 999 }} のようになります。useOverlay を複数回呼び出すことで、複数のオーバーレイを追加できます。closeOverlay 関数がオーバーレイコンポーネントに渡されます。これを呼び出すと、useOverlay で追加された可能性のある他のオーバーレイに影響を与えることなく、DOM からコンポーネントが削除されます。追加の props を useOverlay に渡すことができ、それらはオーバーレイコンポーネントに渡されます。
例
const OverlayComponent = ({ closeOverlay, heading }) => {
return (
<div style={{ position: 'absolute', right: '2rem', top: '2rem', zIndex: 999 }}>
<h2>{heading}</h2>
<Button onClick={closeOverlay}>Close</Button>
</div>
);
};
const ModalComponent = ({ body, closeOverlay, title }) => (
<Modal isOpen onClose={closeOverlay}>
<ModalHeader title={title} />
<ModalBody>{body}</ModalBody>
</Modal>
);
const AppPage: React.FC = () => {
const launchOverlay = useOverlay();
const onClickOverlay = () => {
launchOverlay(OverlayComponent, { heading: 'Test overlay' });
};
const onClickModal = () => {
launchOverlay(ModalComponent, { body: 'Test modal', title: 'Overlay modal' });
};
return (
<Button onClick={onClickOverlay}>Launch an Overlay</Button>
<Button onClick={onClickModal}>Launch a Modal</Button>
)
}