Files
mattermostest/src/renderer/modals/loadingScreen/index.tsx
Devin Binnie 4d754efdd7 [MM-61716][MM-62643] Introduce Modal component, remove bootstrap and react-bootstrap from most modals, update styles (#3317)
* Introduce Modal, add some styles from the webapp

* Remove bootstrap from LoadingScreen/WelcomeScreen

* Migrate add/edit server modal to Modal, remove bootstrap

* Migrate remove server modal to Modal, remove bootstrap

* Migrate certificate modal to Modal, remove bootstrap

* Migrate login and permission modals to Modal, remove Bootstrap

* Misc fixes

* E2E tests for current modals

* Update src/renderer/components/Modal.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* Update src/renderer/components/Modal.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* PR feedback

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-18 15:58:28 +00:00

71 lines
1.8 KiB
TypeScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import ReactDOM from 'react-dom';
import LoadingScreen from '../../components/LoadingScreen';
import 'renderer/css/components/LoadingAnimation.css';
import 'renderer/css/components/LoadingScreen.css';
type Props = Record<string, never>;
type State = {
showLoadingScreen: boolean;
darkMode: boolean;
}
class LoadingScreenRoot extends React.PureComponent<Props, State> {
constructor(props: Props) {
super(props);
this.state = {
showLoadingScreen: true,
darkMode: false,
};
}
async componentDidMount() {
window.desktop.onDarkModeChange(this.setDarkMode);
const darkMode = await window.desktop.getDarkMode();
this.setDarkMode(darkMode);
window.desktop.loadingScreen.onToggleLoadingScreenVisibility(this.onToggleLoadingScreenVisibility);
window.addEventListener('click', () => {
window.desktop.closeServersDropdown();
window.desktop.closeDownloadsDropdown();
});
}
setDarkMode = (darkMode: boolean) => {
this.setState({darkMode});
};
onToggleLoadingScreenVisibility = (showLoadingScreen: boolean) => {
this.setState({showLoadingScreen});
};
onFadeOutComplete = () => {
window.desktop.loadingScreen.loadingScreenAnimationFinished();
};
render() {
return (
<LoadingScreen
loading={this.state.showLoadingScreen}
darkMode={this.state.darkMode}
onFadeOutComplete={this.onFadeOutComplete}
/>
);
}
}
const start = async () => {
ReactDOM.render(
<LoadingScreenRoot/>,
document.getElementById('app'),
);
};
start();