Files
mattermostest/src/renderer/modals/welcomeScreen/welcomeScreen.tsx
Devin Binnie 686b4ac9f1 [MM-50485] Migrate app to ServerManager, remove view names and replace with IDs (#2672)
* Migrate app to ServerManager, remove view names and replace with IDs

* Fixed a test

* Fixed a bug when adding the initial server

* Merge'd

* Bug fixes and PR feedback
2023-04-12 12:52:34 -04:00

84 lines
2.2 KiB
TypeScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React, {useEffect, useState} from 'react';
import ReactDOM from 'react-dom';
import {MattermostTeam} from 'types/config';
import IntlProvider from 'renderer/intl_provider';
import WelcomeScreen from '../../components/WelcomeScreen';
import ConfigureServer from '../../components/ConfigureServer';
import 'bootstrap/dist/css/bootstrap.min.css';
const MOBILE_SCREEN_WIDTH = 1200;
const onConnect = (data: MattermostTeam) => {
window.desktop.modals.finishModal(data);
};
const WelcomeScreenModalWrapper = () => {
const [darkMode, setDarkMode] = useState(false);
const [getStarted, setGetStarted] = useState(false);
const [mobileView, setMobileView] = useState(false);
const [currentTeams, setCurrentTeams] = useState<MattermostTeam[]>([]);
const handleWindowResize = () => {
setMobileView(window.innerWidth < MOBILE_SCREEN_WIDTH);
};
useEffect(() => {
window.desktop.getDarkMode().then((result) => {
setDarkMode(result);
});
window.desktop.onDarkModeChange((result) => {
setDarkMode(result);
});
window.desktop.modals.getModalInfo<MattermostTeam[]>().then((result) => {
setCurrentTeams(result);
});
handleWindowResize();
window.addEventListener('resize', handleWindowResize);
return () => {
window.removeEventListener('resize', handleWindowResize);
};
}, []);
const onGetStarted = () => {
setGetStarted(true);
};
return (
<IntlProvider>
{getStarted ? (
<ConfigureServer
mobileView={mobileView}
darkMode={darkMode}
currentTeams={currentTeams}
onConnect={onConnect}
/>
) : (
<WelcomeScreen
darkMode={darkMode}
onGetStarted={onGetStarted}
/>
)}
</IntlProvider>
);
};
const start = () => {
ReactDOM.render(
<WelcomeScreenModalWrapper/>,
document.getElementById('app'),
);
};
start();