mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-04 08:47:23 +08:00
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
import { useEffect } from '@wordpress/element';
|
|
import { useSelect } from '@wordpress/data';
|
|
import { STORE_NAME } from '../../stores/axoStore';
|
|
import {
|
|
createWatermarkContainer,
|
|
removeWatermark,
|
|
updateWatermarkContent,
|
|
} from './utils';
|
|
|
|
/**
|
|
* Manages the lifecycle and content of the AXO watermark.
|
|
*
|
|
* @param {Object} props
|
|
* @param {Object} props.fastlaneSdk - The Fastlane SDK instance.
|
|
* @return {null} This component doesn't render any visible elements.
|
|
*/
|
|
const WatermarkManager = ( { fastlaneSdk } ) => {
|
|
// Select relevant states from the AXO store
|
|
const isAxoActive = useSelect( ( select ) =>
|
|
select( STORE_NAME ).getIsAxoActive()
|
|
);
|
|
const isAxoScriptLoaded = useSelect( ( select ) =>
|
|
select( STORE_NAME ).getIsAxoScriptLoaded()
|
|
);
|
|
|
|
useEffect( () => {
|
|
if ( isAxoActive || ( ! isAxoActive && ! isAxoScriptLoaded ) ) {
|
|
// Create watermark container and update content when AXO is active or loading
|
|
createWatermarkContainer();
|
|
updateWatermarkContent( {
|
|
isAxoActive,
|
|
isAxoScriptLoaded,
|
|
fastlaneSdk,
|
|
} );
|
|
} else {
|
|
// Remove watermark when AXO is inactive and not loading
|
|
removeWatermark();
|
|
}
|
|
|
|
// Cleanup function to remove watermark on unmount
|
|
return removeWatermark;
|
|
}, [ fastlaneSdk, isAxoActive, isAxoScriptLoaded ] );
|
|
|
|
// This component doesn't render anything directly
|
|
return null;
|
|
};
|
|
|
|
export default WatermarkManager;
|