From 6cbfcb9d6407b3678dbda33bd8519fde4f89f0df Mon Sep 17 00:00:00 2001 From: mashazyu Date: Sat, 25 May 2019 17:15:38 +0200 Subject: [PATCH] Fixes delete data bug --- .../settings/data-management/delete-data.js | 10 +++++- components/settings/data-management/index.js | 31 ++++++++++++++++--- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/components/settings/data-management/delete-data.js b/components/settings/data-management/delete-data.js index 581c881..6af5da3 100644 --- a/components/settings/data-management/delete-data.js +++ b/components/settings/data-management/delete-data.js @@ -1,6 +1,7 @@ import React, { Component } from 'react' import RNFS from 'react-native-fs' import { Alert, ToastAndroid } from 'react-native' +import PropTypes from 'prop-types' import { clearDb, isDbEmpty } from '../../../db' import { hasEncryptionObservable } from '../../../local-storage' @@ -24,6 +25,7 @@ export default class DeleteData extends Component { } onAlertConfirmation = () => { + this.props.onStartDeletion() if (this.state.isPasswordSet) { this.setState({ isConfirmingWithPassword: true }) } else { @@ -78,8 +80,9 @@ export default class DeleteData extends Component { render() { const { isConfirmingWithPassword } = this.state + const { isDeletingData } = this.props - if (isConfirmingWithPassword) { + if (isConfirmingWithPassword && isDeletingData) { return ( ) } +} + +DeleteData.propTypes = { + isDeletingData: PropTypes.bool, + onStartDeletion: PropTypes.func.isRequired } \ No newline at end of file diff --git a/components/settings/data-management/index.js b/components/settings/data-management/index.js index 04a6ccb..bf32d6d 100644 --- a/components/settings/data-management/index.js +++ b/components/settings/data-management/index.js @@ -13,7 +13,10 @@ export default class DataManagement extends Component { constructor(props) { super(props) - this.state = { isLoading: false } + this.state = { + isLoading: false, + currentAction: null + } } startLoading = () => { @@ -33,7 +36,22 @@ export default class DataManagement extends Component { this.endLoading() } + startExport = () => { + this.setCurrentAction('export') + openShareDialogAndExport() + } + + startImport = () => { + this.setCurrentAction('import') + openImportDialog(this.startImportFlow) + } + + setCurrentAction = (action) => { + this.setState({ currentAction: action }) + } + render() { + const { currentAction } = this.state return ( {this.state.isLoading && } @@ -42,14 +60,14 @@ export default class DataManagement extends Component { {labels.export.segmentExplainer} - + {labels.export.button} {labels.import.segmentExplainer} openImportDialog(this.startImportFlow)} + onPress= {this.startImport} > {labels.import.button} @@ -59,7 +77,10 @@ export default class DataManagement extends Component { last > {labels.deleteSegment.explainer} - + this.setCurrentAction('delete')} + /> @@ -67,4 +88,4 @@ export default class DataManagement extends Component { ) } -} +} \ No newline at end of file