<% sideEffectImportFilePaths.forEach(sideEffect => print(`import '${sideEffect}';\n`)); %>
import React from 'react';
import ReactDOM from 'react-dom';
<% Object.entries(imports).forEach(([key, value]) => { print(`import ${value} from '${key}';\n`) }); %>

import Entry from '<%= entryPath %>';

const contentImports = {
  <% Object.entries(contentImports).forEach(([key, value]) => { print(`'${key}': React.lazy(() => import('${value}')),`) }); %>
}

const navigationConfig = JSON.parse('<%= navigationConfig %>');
const pageConfig = JSON.parse('<%= pageConfig %>');

const siteConfig = {
  titleConfig: {
    title: '<%= title %>',
    <% headline && print(`headline: '${headline}',`)%>
    <% subline && print(`subline: '${subline}',`)%>
  },
  settingsConfig: {
    <% defaultTheme && print(`defaultTheme: '${defaultTheme}',`)%>
    <% defaultLocale && print(`defaultLocale: '${defaultLocale}',`)%>
    <% defaultDirection && print(`defaultDirection: '${defaultDirection}',`)%>
  },
  contentImports,
  navigationConfig,
  extensionItems: [
    <% extensionItems.forEach(ext => print(`{ key: '${ext.key}', text: '${ext.text}', icon: ${ext.icon}, modal: ${ext.modal} },`)); %>
  ],
  sites: <%= sites %>,
  basename: '<%= basename %>',
  routesMap: <%= routesMap %>,
  pageConfig,
  enableDebugLogging: <%= enableDebugLogging %>,
  additionalConfig: <%= additionalConfig %>,
};

if (siteConfig.enableDebugLogging) {
  console.log('siteConfig', siteConfig);
}

ReactDOM.render(<Entry siteConfig={siteConfig} />, document.getElementById('root'));
