/**
* Admin Dashboard Entry Point
*
* Main entry point for React admin interface
*
* @package ThinkRank
* @since 1.0.0
*/
import { createRoot } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import './stores';
import './styles/admin.scss';
import './styles/sitemap.xsl';
import './styles/sitemap-index.xsl';
import App from './components/App';
/**
* Initialize admin interface
*/
document.addEventListener('DOMContentLoaded', () => {
// Find admin containers
const containers = {
dashboard: document.getElementById('thinkrank-dashboard'),
'essential-seo': document.getElementById('thinkrank-essential-seo'),
'ai-tools': document.getElementById('thinkrank-ai-tools'),
settings: document.getElementById('thinkrank-settings'),
credits: document.getElementById('thinkrank-credits'),
analytics: document.getElementById('thinkrank-analytics'),
};
// Render appropriate component based on container
Object.entries(containers).forEach(([page, container]) => {
if (container) {
renderAdminPage(page, container);
}
});
});
/**
* Render admin page component
*
* @param {string} page Page identifier
* @param {Element} container DOM container
*/
function renderAdminPage(page, container) {
try {
// Create root and render component using React 18 API
const root = createRoot(container);
root.render(
${__('Failed to load ThinkRank interface. Please refresh the page.', 'thinkrank')}