| 1 |
import { useEffect, useState } from '@wordpress/element'; |
| 2 |
|
| 3 |
export const usePortal = (id) => { |
| 4 |
const [node] = useState(() => { |
| 5 |
const existing = document.getElementById(id); |
| 6 |
if (existing) return existing; |
| 7 |
const el = Object.assign(document.createElement('div'), { |
| 8 |
className: 'extendify-agent', |
| 9 |
id, |
| 10 |
}); |
| 11 |
return el; |
| 12 |
}); |
| 13 |
|
| 14 |
useEffect(() => { |
| 15 |
document.getElementById('extendify-agent-main').prepend(node); |
| 16 |
return () => node.remove(); |
| 17 |
}, [node]); |
| 18 |
|
| 19 |
return node; |
| 20 |
}; |
| 21 |
|