1
0
Fork 0
mirror of https://github.com/voltbonn/qrcode.volt.link.git synced 2024-06-24 06:50:59 +00:00
qrcode.volt.link/src/index.js
2021-07-03 18:52:55 +02:00

70 lines
2.3 KiB
JavaScript

import React, { useState, useEffect, useCallback } from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import App from './pages/App.js'
// import reportWebVitals from './reportWebVitals'
import { BrowserRouter as Router } from 'react-router-dom'
import 'intl-pluralrules'
import { AppLocalizationProvider, locales } from './fluent/l10n.js'
window.domains = {
// frontend: 'https://qrcode.volt.link',
frontend: 'http://localhost:3000/',
// backend: 'https://volt.link/',
backend: 'http://localhost:4000/',
}
function AppLanguageWrapper() {
// const [userLocales, setUserLocales] = useState(['de'])
const [userLocales, setUserLocales] = useState(navigator.languages)
const [currentLocale, setCurrentLocale] = useState(null)
useEffect(() => {
if (!!window.umami) {
let systemLocales = navigator.languages
if (!!systemLocales || Array.isArray(systemLocales)) {
for (let locale of systemLocales) {
locale = locale.toLowerCase() // Not really correct but the system locales sadly don't conform to the standard.
const language = locale.split('-')[0]
if (language !== locale) {
window.umami.trackEvent('L: ' + language) // Log just the language.
}
window.umami.trackEvent('L: ' + locale) // Log the full locale.
}
}
}
}, [])
const handleLanguageChange = useCallback(event => {
setUserLocales([event.target.dataset.locale])
}, [setUserLocales])
const handleCurrentLocalesChange = useCallback(currentLocales => {
setCurrentLocale(currentLocales.length > 0 ? currentLocales[0] : '')
}, [setCurrentLocale])
return <AppLocalizationProvider
key="AppLocalizationProvider"
userLocales={userLocales}
onLocaleChange={handleCurrentLocalesChange}
>
<App locales={locales} currentLocale={currentLocale} onLanguageChange={handleLanguageChange} />
</AppLocalizationProvider>
}
ReactDOM.render(
<React.StrictMode>
<Router>
<AppLanguageWrapper />
</Router>
</React.StrictMode>,
document.getElementById('root')
)
// 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()