# extendify/3.1.1/src/Agent/hooks/usePortal.js

Extendify, version 3.1.1. 21 lines.

- Page: https://pluginprobe.com/plugins/extendify/3.1.1/code/src/Agent/hooks/usePortal.js
- Raw: https://pluginprobe.com/plugins/extendify/3.1.1/raw/src/Agent/hooks/usePortal.js
- Modified: 2026-03-19T19:35:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/3.1.1/code/src/Agent/hooks/usePortal.js#L10-L20`.

```javascript
import { useEffect, useState } from '@wordpress/element';

export const usePortal = (id) => {
	const [node] = useState(() => {
		const existing = document.getElementById(id);
		if (existing) return existing;
		const el = Object.assign(document.createElement('div'), {
			className: 'extendify-agent',
			id,
		});
		return el;
	});

	useEffect(() => {
		document.getElementById('extendify-agent-main').prepend(node);
		return () => node.remove();
	}, [node]);

	return node;
};

```
