File: /home/deshuvsd/www/wp-content/plugins/surerank/src/apps/admin-search-console/search-console.js
import { useSelect } from '@wordpress/data';
import { STORE_NAME } from '@/admin-store/constants';
import { cn } from '@/functions/utils';
import SearchConsolePopup from '@/apps/admin-dashboard/search-console-popup';
import SiteSelectorPopup from '@/apps/admin-dashboard/site-selector-popup';
import '@AdminStore/store';
import RenderContent from '@AdminDashboard/render-content';
import { useMemo } from '@wordpress/element';
import { Container } from '@bsf/force-ui';
const SearchConsole = () => {
const { searchConsole } = useSelect( ( select ) => {
const selectors = select( STORE_NAME );
return {
searchConsole: selectors.getSearchConsole(),
};
}, [] );
const isSearchConsoleConnected = useMemo(
() => searchConsole?.authenticated === '1',
[ searchConsole?.authenticated ]
);
const isSiteSelected = useMemo(
() => !! searchConsole?.hasSiteSelected,
[ searchConsole?.hasSiteSelected ]
);
const { openSiteSelectorModal } = useSelect( ( select ) => {
const selectors = select( STORE_NAME );
return {
openSiteSelectorModal: selectors.getOpenSiteSelectorModal(),
};
} );
const shouldShowOverlay =
! isSearchConsoleConnected || ! isSiteSelected || openSiteSelectorModal;
return (
<>
<SearchConsolePopup isOpen={ ! isSearchConsoleConnected } />
{ isSearchConsoleConnected && ! isSiteSelected && (
<SiteSelectorPopup />
) }
{ openSiteSelectorModal && isSiteSelected && <SiteSelectorPopup /> }
<div className={ cn( 'relative h-full', shouldShowOverlay && "after:content-[''] after:fixed after:block after:w-full after:h-full after:inset-0 after:bg-black/40 after:backdrop-blur-[5px] after:z-0" ) }>
<Container
className="h-full p-5 pb-8 xl:p-8 max-[1920px]:max-w-full mx-auto box-content bg-background-secondary"
cols={ 12 }
containerType="grid"
gap="2xl"
>
<Container
direction="column"
className={ cn(
'gap-8 col-span-12 relative',
shouldShowOverlay && 'blur-sm'
) }
>
<RenderContent
connected={ isSearchConsoleConnected }
siteSelected={ isSiteSelected }
/>
</Container>
</Container>
</div>
</>
);
};
export default SearchConsole;