File "refresh-button-portal.js"
Full Path: /home/fresvfqn/waterdamagerestorationandrepairsmithtown.com/wp-content/plugins/surerank/src/apps/seo-popup/components/refresh-button-portal.js
File size: 1.1 KB
MIME-type: text/x-java
Charset: utf-8
import { useState, useEffect, createPortal } from '@wordpress/element';
import { RefreshButton } from './page-seo-checks/analyzer/utils/page-builder';
const RefreshButtonPortal = ( {
isRefreshing,
isChecking,
onClick,
targetSelector = '.refresh-button-container',
} ) => {
const [ targetElement, setTargetElement ] = useState( null );
useEffect( () => {
const findTarget = () => {
const element = document.querySelector( targetSelector );
if ( element ) {
setTargetElement( element );
}
};
findTarget();
const Observer =
window.MutationObserver ||
window.WebKitMutationObserver ||
window.MozMutationObserver;
const observer = Observer ? new Observer( findTarget ) : null;
if ( observer ) {
observer.observe( document.body, {
childList: true,
subtree: true,
} );
}
return () => observer.disconnect();
}, [ targetSelector ] );
if ( ! targetElement ) {
return null;
}
return createPortal(
<RefreshButton
isRefreshing={ isRefreshing }
isChecking={ isChecking }
onClick={ onClick }
/>,
targetElement
);
};
export default RefreshButtonPortal;