main.tsx
TLDR
The main.tsx file is the entry point for the Demo Projects project. It initializes various components and renders the main application to the specified DOM element.
Classes
No classes are defined in this file.
Methods
No methods are defined in this file.
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react'
import ReactDOM from 'react-dom'
import {Provider as ReduxProvider} from 'react-redux'
import {store as emojiMartStore} from 'emoji-mart'
import App from './app'
import {initThemes} from './theme'
import {importNativeAppSettings} from './nativeApp'
import {UserSettings} from './userSettings'
import {IUser} from './user'
import {getMe} from './store/users'
import {useAppSelector} from './store/hooks'
import '@mattermost/compass-icons/css/compass-icons.css'
import './styles/variables.scss'
import './styles/main.scss'
import './styles/labels.scss'
import './styles/_markdown.scss'
import store from './store'
import WithWebSockets from './components/withWebSockets'
emojiMartStore.setHandlers({getter: UserSettings.getEmojiMartSetting, setter: UserSettings.setEmojiMartSetting})
importNativeAppSettings()
initThemes()
const MainApp = () => {
const me = useAppSelector<IUser|null>(getMe)
return (
<WithWebSockets userId={me?.id}>
<App/>
</WithWebSockets>
)
}
ReactDOM.render(
(
<ReduxProvider store={store}>
<MainApp/>
</ReduxProvider>
),
document.getElementById('focalboard-app'),
)