/* * Copyright 2020 Arnaud Vergnet * * This file is part of CAMPUS. * * CAMPUS is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * CAMPUS is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with CAMPUS. If not, see . */ // @flow import * as React from 'react'; import i18n from 'i18n-js'; import {StackNavigationProp} from '@react-navigation/stack'; import LoadingConfirmDialog from '../Dialogs/LoadingConfirmDialog'; import ConnectionManager from '../../managers/ConnectionManager'; type PropsType = { navigation: StackNavigationProp, visible: boolean, onDismiss: () => void, }; class LogoutDialog extends React.PureComponent { onClickAccept = async (): Promise => { const {props} = this; return new Promise((resolve: () => void) => { ConnectionManager.getInstance() .disconnect() .then(() => { props.navigation.reset({ index: 0, routes: [{name: 'main'}], }); props.onDismiss(); resolve(); }); }); }; render(): React.Node { const {props} = this; return ( ); } } export default LogoutDialog;