Application Android et IOS pour l'amicale des élèves
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LogoutDialog.js 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // @flow
  2. import * as React from 'react';
  3. import i18n from 'i18n-js';
  4. import {StackNavigationProp} from '@react-navigation/stack';
  5. import LoadingConfirmDialog from '../Dialogs/LoadingConfirmDialog';
  6. import ConnectionManager from '../../managers/ConnectionManager';
  7. type PropsType = {
  8. navigation: StackNavigationProp,
  9. visible: boolean,
  10. onDismiss: () => void,
  11. };
  12. class LogoutDialog extends React.PureComponent<PropsType> {
  13. onClickAccept = async (): Promise<void> => {
  14. const {props} = this;
  15. return new Promise((resolve: () => void) => {
  16. ConnectionManager.getInstance()
  17. .disconnect()
  18. .then(() => {
  19. props.navigation.reset({
  20. index: 0,
  21. routes: [{name: 'main'}],
  22. });
  23. props.onDismiss();
  24. resolve();
  25. });
  26. });
  27. };
  28. render(): React.Node {
  29. const {props} = this;
  30. return (
  31. <LoadingConfirmDialog
  32. visible={props.visible}
  33. onDismiss={props.onDismiss}
  34. onAccept={this.onClickAccept}
  35. title={i18n.t('dialog.disconnect.title')}
  36. titleLoading={i18n.t('dialog.disconnect.titleLoading')}
  37. message={i18n.t('dialog.disconnect.message')}
  38. />
  39. );
  40. }
  41. }
  42. export default LogoutDialog;