import React from 'react'; import type { Route } from 'nextjs-routes'; import type { Props as PageProps } from 'nextjs/getServerSideProps/handlers'; import useAdblockDetect from 'lib/hooks/useAdblockDetect'; import useGetCsrfToken from 'lib/hooks/useGetCsrfToken'; import useIsMounted from 'lib/hooks/useIsMounted'; import useNotifyOnNavigation from 'lib/hooks/useNotifyOnNavigation'; import * as mixpanel from 'lib/mixpanel'; interface Props { pathname: Pathname; children: React.ReactNode; query?: PageProps['query']; apiData?: PageProps['apiData']; } const PageNextJs = (props: Props) => { const isMounted = useIsMounted(); useGetCsrfToken(); useAdblockDetect(); useNotifyOnNavigation(); const isMixPanelInitialized = mixpanel.useInit(); mixpanel.useLogPageView(isMixPanelInitialized); return isMounted ? props.children : null; }; export default React.memo(PageNextJs);