# extendify/2.2.0/src/HelpCenter/HelpCenter.jsx

Extendify, version 2.2.0. 40 lines.

- Page: https://pluginprobe.com/plugins/extendify/2.2.0/code/src/HelpCenter/HelpCenter.jsx
- Raw: https://pluginprobe.com/plugins/extendify/2.2.0/raw/src/HelpCenter/HelpCenter.jsx
- Modified: 2024-09-12T15:49:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/2.2.0/code/src/HelpCenter/HelpCenter.jsx#L10-L20`.

```jsx
import { useEffect } from '@wordpress/element';
import { AnimatePresence } from 'framer-motion';
import { Modal } from '@help-center/components/modal/Modal';
import { GuidedTour } from '@help-center/components/tours/GuidedTour';
import { useRouter } from '@help-center/hooks/useRouter';
import { useGlobalSyncStore } from '@help-center/state/globals-sync';

export const HelpCenter = () => {
	// register a custom event to hide the Help Center.
	const { setVisibility, visibility } = useGlobalSyncStore();
	const { navigateTo } = useRouter();

	useEffect(() => {
		const handleOpen = (event) => {
			event?.detail?.page && navigateTo(event.detail.page);
			setVisibility('open');
		};
		const handleMinimize = () => {
			if (visibility !== 'open') return;
			setVisibility('minimized');
		};

		window.addEventListener('extendify-hc:open', handleOpen);
		window.addEventListener('extendify-hc:minimize', handleMinimize);
		return () => {
			window.removeEventListener('extendify-hc:open', handleOpen);
			window.removeEventListener('extendify-hc:minimize', handleMinimize);
		};
	}, [setVisibility, visibility, navigateTo]);

	return (
		<>
			<AnimatePresence>
				<Modal />
			</AnimatePresence>
			<GuidedTour />
		</>
	);
};

```
