/** * WordPress dependencies */ import { select } from '@safe-wordpress/data'; import { addQueryArgs } from '@safe-wordpress/url'; /** * External dependencies */ import { store as NAB_DATA } from '@nab/data'; export function openConnectionAuthorizer( { onOpen = () => void null, onClose = () => void null, }: { readonly onOpen?: () => void; readonly onClose?: () => void; } ): void { onOpen(); const siteId = select( NAB_DATA ).getPluginSetting( 'siteId' ); const apiRoot = select( NAB_DATA ).getPluginSetting( 'apiUrl' ); const redirect = select( NAB_DATA ).getRestUrl( '/nab/v1/recommendation-engine/ga4-connect' ); const dialog = window.open( addQueryArgs( `${ apiRoot }/connect/ga4`, { siteId, redirect, } ), '', 'width=640,height=480' ); const timer = setInterval( () => { if ( ! dialog?.closed ) { return; } clearInterval( timer ); onClose(); }, 500 ); }