/* eslint-disable react/display-name */
import React from 'react'
import ReactDOM from 'react-dom/client'
import i18next from 'i18next'
import { i18nextReactInitConfig } from '@brojs/cli'
import App from './app'
import { createStore } from "./__data__/store"
i18next.t = i18next.t.bind(i18next)
const i18nextPromise = i18nextReactInitConfig(i18next)
export default (props) =>
let rootElement: ReactDOM.Root
export const mount = async (Component, element = document.getElementById('app')) => {
const store = createStore()
await i18nextPromise
rootElement = ReactDOM.createRoot(element)
rootElement.render()
if(module.hot) {
module.hot.accept('./app', ()=> {
rootElement.render()
})
}
}
export const unmount = () => {
rootElement.unmount()
}