HEX
Server: LiteSpeed
System: Linux server902.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: deshuvsd (2181)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/deshuvsd/www/wp-content/plugins/surerank/src/apps/seo-popup/hooks/usePageCheckStatus.js
import { useSelect } from '@wordpress/data';
import { useMemo } from '@wordpress/element';
import { STORE_NAME } from '@/store/constants';
import { calculateCheckStatus } from '@SeoPopup/utils/calculate-check-status';

/**
 * A simplified hook for getting page check status without suspense
 * Safe to use in components that can't be wrapped in Suspense
 *
 * @return {Object} Status data object with status, initializing, and counts
 */
const usePageCheckStatus = () => {
	const { categorizedChecks = {}, initializing = true } = useSelect(
		( select ) => {
			const storeSelectors = select( STORE_NAME );

			const pageSeoChecks = storeSelectors.getPageSeoChecks();

			return {
				categorizedChecks: pageSeoChecks.categorizedChecks,
				initializing: pageSeoChecks.initializing,
			};
		},
		[]
	);

	const { status, counts } = useMemo( () => {
		// Calculate page check status
		const pageStatus = calculateCheckStatus( categorizedChecks ) ?? {
			status: null,
			initializing: true,
			counts: { errorAndWarnings: 0 },
		};

		// Calculate combined status from page and keyword checks
		return pageStatus;
	}, [ categorizedChecks ] );

	return { status, initializing, counts };
};

export default usePageCheckStatus;