import {ChakraProvider} from '@chakra-ui/react'
import * as React from 'react'
import {datadogRum} from '@datadog/browser-rum'
import reportWebVitals from './reportWebVitals'
import * as serviceWorker from './serviceWorker'
import {vantagePlusTheme} from './styles/theme'
import {Router} from './routes'
import { createRoot } from 'react-dom/client'
import '../src/styles/fonts.css'
import { Provider } from 'react-redux'
import { store } from './store'
import {CONFIG} from './config'
import {shouldEnableDD} from './utils/env'

if (shouldEnableDD()) {
  datadogRum.init({
    applicationId: CONFIG.DD_APP_ID,
    clientToken: CONFIG.DD_CLIENT_TOKEN,
    service: CONFIG.DD_SERVICE,
    env: CONFIG.DD_ENV,
    version: CONFIG.DD_VERSION
  })
}

const container = document.getElementById('root')!
const root = createRoot(container)

root.render(
  <React.StrictMode>
    <Provider store={store}>
      <ChakraProvider theme={vantagePlusTheme}>
        <Router />
      </ChakraProvider>
    </Provider>
  </React.StrictMode>
)

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://cra.link/PWA
serviceWorker.unregister()

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals()
