From f2706f509a24526413b2923f0a56c1a56b233423 Mon Sep 17 00:00:00 2001
From: mashazyu <mariya.z@gmail.com>
Date: Wed, 25 Mar 2020 16:55:03 +0100
Subject: [PATCH] Introduces data management section redesign

---
 .../settings/data-management/delete-data.js   | 12 ++--
 components/settings/data-management/index.js  | 71 +++++++++----------
 2 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/components/settings/data-management/delete-data.js b/components/settings/data-management/delete-data.js
index 6af5da38..9ad24bd9 100644
--- a/components/settings/data-management/delete-data.js
+++ b/components/settings/data-management/delete-data.js
@@ -3,12 +3,13 @@ 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'
-import SettingsButton from '../shared/settings-button'
+import Button from '../../common/button'
+
 import ConfirmWithPassword from '../shared/confirm-with-password'
 import alertError from '../shared/alert-error'
 
+import { clearDb, isDbEmpty } from '../../../db'
+import { hasEncryptionObservable } from '../../../local-storage'
 import settings from '../../../i18n/en/settings'
 import { shared as sharedLabels } from '../../../i18n/en/labels'
 import { EXPORT_FILE_NAME } from './constants'
@@ -18,6 +19,7 @@ const exportedFilePath = `${RNFS.DocumentDirectoryPath}/${EXPORT_FILE_NAME}`
 export default class DeleteData extends Component {
   constructor() {
     super()
+
     this.state = {
       isPasswordSet: hasEncryptionObservable.value,
       isConfirmingWithPassword: false
@@ -92,9 +94,9 @@ export default class DeleteData extends Component {
     }
 
     return (
-      <SettingsButton onPress={this.alertBeforeDeletion}>
+      <Button isCTA onPress={this.alertBeforeDeletion}>
         {settings.deleteSegment.title}
-      </SettingsButton>
+      </Button>
     )
   }
 }
diff --git a/components/settings/data-management/index.js b/components/settings/data-management/index.js
index 558bdfd5..ff9417a2 100644
--- a/components/settings/data-management/index.js
+++ b/components/settings/data-management/index.js
@@ -1,18 +1,22 @@
 import React, { Component } from 'react'
-import { ScrollView, View } from 'react-native'
+
+import AppLoadingView from '../../common/app-loading'
+import AppPage from '../../common/app-page'
 import AppText from '../../common/app-text'
+import Button from '../../common/button'
 import Segment from '../../common/segment'
-import AppLoadingView from '../../common/app-loading'
-import SettingsButton from '../shared/settings-button'
+
 import { openImportDialog, getFileContent, importData } from './import-dialog'
 import openShareDialogAndExport from './export-dialog'
 import DeleteData from './delete-data'
+
 import labels from '../../../i18n/en/settings'
 
 export default class DataManagement extends Component {
 
   constructor(props) {
     super(props)
+
     this.state = {
       isLoading: false,
       currentAction: null
@@ -51,41 +55,36 @@ export default class DataManagement extends Component {
   }
 
   render() {
-    const { currentAction } = this.state
+    const { currentAction, isLoading } = this.state
+    const isDeletingData = currentAction === 'delete'
+
     return (
-      <View flex={1}>
-        {this.state.isLoading && <AppLoadingView />}
-        {!this.state.isLoading &&
-          <ScrollView>
-            <View>
-              <Segment title={labels.export.button}>
-                <AppText>{labels.export.segmentExplainer}</AppText>
-                <SettingsButton onPress={this.startExport}>
-                  {labels.export.button}
-                </SettingsButton>
-              </Segment>
-              <Segment title={labels.import.button}>
-                <AppText>{labels.import.segmentExplainer}</AppText>
-                <SettingsButton
-                  onPress= {this.startImport}
-                >
-                  {labels.import.button}
-                </SettingsButton>
-              </Segment>
-              <Segment
-                title={labels.deleteSegment.title}
-                last
-              >
-                <AppText>{labels.deleteSegment.explainer}</AppText>
-                <DeleteData
-                  isDeletingData = { currentAction === 'delete' }
-                  onStartDeletion = {() => this.setCurrentAction('delete')}
-                />
-              </Segment>
-            </View>
-          </ScrollView>
+      <AppPage>
+        {isLoading && <AppLoadingView />}
+        {!isLoading &&
+          <React.Fragment>
+            <Segment title={labels.export.button}>
+              <AppText>{labels.export.segmentExplainer}</AppText>
+              <Button isCTA onPress={this.startExport}>
+                {labels.export.button}
+              </Button>
+            </Segment>
+            <Segment title={labels.import.button}>
+              <AppText>{labels.import.segmentExplainer}</AppText>
+              <Button isCTA onPress= {this.startImport}>
+                {labels.import.button}
+              </Button>
+            </Segment>
+            <Segment title={labels.deleteSegment.title} last>
+              <AppText>{labels.deleteSegment.explainer}</AppText>
+              <DeleteData
+                isDeletingData = {isDeletingData}
+                onStartDeletion = {() => this.setCurrentAction('delete')}
+              />
+            </Segment>
+          </React.Fragment>
         }
-      </View>
+      </AppPage>
     )
   }
 }
\ No newline at end of file
-- 
GitLab