From a359f8b8fc89a362d735b789ab18e37516747bce Mon Sep 17 00:00:00 2001 From: mashazyu Date: Thu, 3 Jan 2019 16:15:18 +0100 Subject: [PATCH] create settings segment component, create new section on settings page --- .../export-dialog.js | 0 .../import-dialog.js | 0 components/settings/data-management/index.js | 35 +++++++++++++ components/settings/import-export/index.js | 50 ------------------- components/settings/index.js | 4 +- components/settings/password/create.js | 2 +- .../settings/password/enter-new-password.js | 2 +- components/settings/password/update.js | 2 +- .../{password => }/settings-button.js | 4 +- components/settings/settings-menu.js | 4 +- components/settings/settings-segment.js | 21 ++++++++ i18n/en/labels.js | 2 +- i18n/en/settings.js | 6 ++- 13 files changed, 70 insertions(+), 62 deletions(-) rename components/settings/{import-export => data-management}/export-dialog.js (100%) rename components/settings/{import-export => data-management}/import-dialog.js (100%) create mode 100644 components/settings/data-management/index.js delete mode 100644 components/settings/import-export/index.js rename components/settings/{password => }/settings-button.js (84%) create mode 100644 components/settings/settings-segment.js diff --git a/components/settings/import-export/export-dialog.js b/components/settings/data-management/export-dialog.js similarity index 100% rename from components/settings/import-export/export-dialog.js rename to components/settings/data-management/export-dialog.js diff --git a/components/settings/import-export/import-dialog.js b/components/settings/data-management/import-dialog.js similarity index 100% rename from components/settings/import-export/import-dialog.js rename to components/settings/data-management/import-dialog.js diff --git a/components/settings/data-management/index.js b/components/settings/data-management/index.js new file mode 100644 index 0000000..52e4717 --- /dev/null +++ b/components/settings/data-management/index.js @@ -0,0 +1,35 @@ +import React from 'react' +import { ScrollView } from 'react-native' +import labels from '../../../i18n/en/settings' +import AppText from '../../app-text' +import SettingsSegment from '../settings-segment' +import SettingsButton from '../settings-button' +import openImportDialogAndImport from './import-dialog' +import openShareDialogAndExport from './export-dialog' + +const Settings = () => { + return ( + + + {labels.export.segmentExplainer} + + {labels.export.button} + + + + {labels.import.segmentExplainer} + + {labels.import.button} + + + + {labels.deleteSegment.explainer} + + {labels.deleteSegment.title} + + + + ) +} + +export default Settings diff --git a/components/settings/import-export/index.js b/components/settings/import-export/index.js deleted file mode 100644 index 430f29b..0000000 --- a/components/settings/import-export/index.js +++ /dev/null @@ -1,50 +0,0 @@ -import React, { Component } from 'react' -import { - View, ScrollView, - TouchableOpacity, -} from 'react-native' -import styles from '../../../styles/index' -import labels from '../../../i18n/en/settings' -import AppText from '../../app-text' -import openImportDialogAndImport from './import-dialog' -import openShareDialogAndExport from './export-dialog' - -export default class Settings extends Component { - constructor(props) { - super(props) - this.state = {} - } - - render() { - return ( - - - - {labels.export.button} - - {labels.export.segmentExplainer} - - - {labels.export.button} - - - - - - {labels.import.button} - - {labels.import.segmentExplainer} - - - {labels.import.button} - - - - - ) - } -} diff --git a/components/settings/index.js b/components/settings/index.js index a1eaa03..7bbbdc5 100644 --- a/components/settings/index.js +++ b/components/settings/index.js @@ -1,9 +1,9 @@ import Reminders from './reminders' import NfpSettings from './nfp-settings' -import ImportExport from './import-export' +import DataManagement from './data-management' import Password from './password' import About from './about' export default { - Reminders, NfpSettings, ImportExport, Password, About + Reminders, NfpSettings, DataManagement, Password, About } diff --git a/components/settings/password/create.js b/components/settings/password/create.js index bda688f..cdc9b69 100644 --- a/components/settings/password/create.js +++ b/components/settings/password/create.js @@ -2,7 +2,7 @@ import React, { Component } from 'react' import { View } from 'react-native' import settings from '../../../i18n/en/settings' import EnterNewPassword from './enter-new-password' -import SettingsButton from './settings-button' +import SettingsButton from '../settings-button' import showBackUpReminder from './show-backup-reminder' export default class CreatePassword extends Component { diff --git a/components/settings/password/enter-new-password.js b/components/settings/password/enter-new-password.js index ed09ead..084a6bc 100644 --- a/components/settings/password/enter-new-password.js +++ b/components/settings/password/enter-new-password.js @@ -5,7 +5,7 @@ import nodejs from 'nodejs-mobile-react-native' import { requestHash, changeEncryptionAndRestartApp } from '../../../db' import AppText from '../../app-text' import PasswordField from './password-field' -import SettingsButton from './settings-button' +import SettingsButton from '../settings-button' import styles from '../../../styles' import settings from '../../../i18n/en/settings' diff --git a/components/settings/password/update.js b/components/settings/password/update.js index a246c0e..bac6d2b 100644 --- a/components/settings/password/update.js +++ b/components/settings/password/update.js @@ -6,7 +6,7 @@ import settings from '../../../i18n/en/settings' import { requestHash } from '../../../db' import EnterNewPassword from './enter-new-password' import PasswordField from './password-field' -import SettingsButton from './settings-button' +import SettingsButton from '../settings-button' import showBackUpReminder from './show-backup-reminder' import checkCurrentPassword from './check-current-password' diff --git a/components/settings/password/settings-button.js b/components/settings/settings-button.js similarity index 84% rename from components/settings/password/settings-button.js rename to components/settings/settings-button.js index 97272bb..bfa8983 100644 --- a/components/settings/password/settings-button.js +++ b/components/settings/settings-button.js @@ -2,8 +2,8 @@ import React from 'react' import PropTypes from 'prop-types' import { TouchableOpacity } from 'react-native' -import AppText from '../../app-text' -import styles from '../../../styles' +import AppText from '../app-text' +import styles from '../../styles' const SettingsButton = ({ children, ...props }) => { return ( diff --git a/components/settings/settings-menu.js b/components/settings/settings-menu.js index 4152c11..3d927e0 100644 --- a/components/settings/settings-menu.js +++ b/components/settings/settings-menu.js @@ -7,14 +7,12 @@ import styles from '../../styles/index' import settingsLabels from '../../i18n/en/settings' import AppText from '../app-text' -console.log(settingsLabels.menuTitles) const labels = settingsLabels.menuTitles -console.log(settingsLabels.menuTitles) const menu = [ {title: labels.reminders, component: 'Reminders'}, {title: labels.nfpSettings, component: 'NfpSettings'}, - {title: labels.importExport, component: 'ImportExport'}, + {title: labels.dataManagement, component: 'DataManagement'}, {title: labels.password, component: 'Password'}, {title: labels.about, component: 'About'} ] diff --git a/components/settings/settings-segment.js b/components/settings/settings-segment.js new file mode 100644 index 0000000..c28910d --- /dev/null +++ b/components/settings/settings-segment.js @@ -0,0 +1,21 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { View } from 'react-native' +import AppText from '../app-text' +import styles from '../../styles' + +const SettingsSegment = ({ children, ...props }) => { + return ( + + {props.title} + {children} + + ) +} + +SettingsSegment.propTypes = { + title: PropTypes.string.isRequired +} + +export default SettingsSegment \ No newline at end of file diff --git a/i18n/en/labels.js b/i18n/en/labels.js index 743f4c1..17e3526 100644 --- a/i18n/en/labels.js +++ b/i18n/en/labels.js @@ -27,7 +27,7 @@ export const headerTitles = { SettingsMenu: 'Settings', Reminders: settingsTitles.reminders, NfpSettings: settingsTitles.nfpSettings, - ImportExport: settingsTitles.importExport, + DataManagement: settingsTitles.dataManagement, Password: settingsTitles.password, About: settingsTitles.about, BleedingEditView: 'Bleeding', diff --git a/i18n/en/settings.js b/i18n/en/settings.js index 9d46eb4..4628f45 100644 --- a/i18n/en/settings.js +++ b/i18n/en/settings.js @@ -2,7 +2,7 @@ export default { menuTitles: { reminders: 'Reminders', - importExport: 'Import and Export', + dataManagement: 'Data management', nfpSettings: 'NFP settings', password: 'Password', about: 'About' @@ -35,6 +35,10 @@ export default { }, segmentExplainer: 'Import data in CSV format' }, + deleteSegment: { + title: 'Delete app data', + explainer: 'Delete all app data from this phone' + }, tempScale: { segmentTitle: 'Temperature scale', segmentExplainer: 'Change the minimum and maximum value for the temperature chart',