Skip to content
Snippets Groups Projects
Commit f8eef668 authored by Julia Friesel's avatar Julia Friesel
Browse files

Merge branch '359-delete-data-bug-fix' into 'master'

Resolve "Bug: Settings > Manage your data > Delete app data"

Closes #359

See merge request bloodyhealth/drip!224
parents ac2bad1d 6cbfcb9d
No related branches found
No related tags found
No related merge requests found
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 (
<ConfirmWithPassword
onSuccess={this.deleteAppData}
......@@ -94,4 +97,9 @@ export default class DeleteData extends Component {
</SettingsButton>
)
}
}
DeleteData.propTypes = {
isDeletingData: PropTypes.bool,
onStartDeletion: PropTypes.func.isRequired
}
\ No newline at end of file
......@@ -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 (
<View flex={1}>
{this.state.isLoading && <AppLoadingView />}
......@@ -42,14 +60,14 @@ export default class DataManagement extends Component {
<View>
<FramedSegment title={labels.export.button}>
<AppText>{labels.export.segmentExplainer}</AppText>
<SettingsButton onPress={openShareDialogAndExport}>
<SettingsButton onPress={this.startExport}>
{labels.export.button}
</SettingsButton>
</FramedSegment>
<FramedSegment title={labels.import.button}>
<AppText>{labels.import.segmentExplainer}</AppText>
<SettingsButton
onPress= {() => openImportDialog(this.startImportFlow)}
onPress= {this.startImport}
>
{labels.import.button}
</SettingsButton>
......@@ -59,7 +77,10 @@ export default class DataManagement extends Component {
last
>
<AppText>{labels.deleteSegment.explainer}</AppText>
<DeleteData />
<DeleteData
isDeletingData = { currentAction === 'delete' }
onStartDeletion = {() => this.setCurrentAction('delete')}
/>
</FramedSegment>
</View>
</ScrollView>
......@@ -67,4 +88,4 @@ export default class DataManagement extends Component {
</View>
)
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment