import classnames from 'classnames/dedupe'; import { useEffect, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { ReactComponent as Logo } from '../../gutenberg/icons/ghostkit-text-logo.svg'; import getPages from '../pages'; const { version } = window.ghostkitVariables; export default function Container(props) { const { data } = props; const [pages, setPages] = useState({}); const [activePage, setActivePage] = useState(''); // Mounted. useEffect(() => { // get variable. const $_GET = []; window.location.href.replace( /[?&]+([^=&]+)=([^&]*)/gi, (a, name, value) => { $_GET[name] = value; } ); const newPages = getPages(); setPages(newPages); setActivePage( $_GET.sub_page ? $_GET.sub_page : Object.keys(newPages)[0] ); }, []); // Changed page. useEffect(() => { // disable active links. document .querySelectorAll('.toplevel_page_ghostkit .current') .forEach(($el) => { $el.classList.remove('current'); }); // find new active link. let $links = document.querySelectorAll( `.toplevel_page_ghostkit [href="admin.php?page=ghostkit&sub_page=${activePage}"]` ); if (!$links || !$links.length) { $links = document.querySelectorAll( '.toplevel_page_ghostkit [href="admin.php?page=ghostkit"]' ); } $links.forEach(($link) => { $link.parentNode.classList.add('current'); }); // change address bar link if ($links && $links.length) { window.history.pushState( document.title, document.title, $links[0].href ); } }, [activePage]); const resultTabs = []; let resultContent = ''; Object.keys(pages).forEach((k) => { resultTabs.push(