/** * WordPress dependencies */ import domReady from '@safe-wordpress/dom-ready'; import '@safe-wordpress/notices'; import { render } from '@safe-wordpress/element'; /** * External dependencies */ import '@nab/data'; import { registerCoreExperiments } from '@nab/experiment-library'; import { registerCommands } from '@nab/commands'; import { PreviewUrlButton, QuotaMeter, TestCreationButtons, TitleAction, } from '@nab/components'; import { createStagingNotice } from '@nab/utils'; import type { Experiment, Heatmap, SubscriptionPlan } from '@nab/types'; /** * Internal dependencies */ import './style.scss'; import { renderHelp } from './help'; import { OverviewProvider } from './components/provider'; import { OverviewExperimentsList } from './components/overview-experiments-list'; type Settings = { readonly staging: 'environment-type' | 'url' | false; readonly experiments: ReadonlyArray< Experiment >; readonly heatmaps: ReadonlyArray< Heatmap >; readonly subscription: SubscriptionPlan | false; }; export function initPage( id: string, settings: Settings ): void { registerCoreExperiments(); domReady( () => registerCommands() ); const { experiments, heatmaps, staging, subscription } = settings; const titleAction = document.getElementById( `${ id }-title-action` ); const content = document.getElementById( id ); createStagingNotice( staging ); render( <> , titleAction ); render( , content ); renderHelp(); }