Rearrange Segment Element: * Rename SettingsSegment into FramedSegment * Move it out of Settings into Components
This commit is contained in:
@@ -3,7 +3,7 @@ import { ScrollView } from 'react-native'
|
|||||||
import Hyperlink from 'react-native-hyperlink'
|
import Hyperlink from 'react-native-hyperlink'
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
import labels from '../../../i18n/en/symptom-info.js'
|
import labels from '../../../i18n/en/symptom-info.js'
|
||||||
import SettingsSegment from '../../settings/shared/settings-segment'
|
import FramedSegment from '../../framed-segment'
|
||||||
import styles from '../../../styles/index'
|
import styles from '../../../styles/index'
|
||||||
import replace from '../../helpers/replace-url-with-text'
|
import replace from '../../helpers/replace-url-with-text'
|
||||||
|
|
||||||
@@ -25,11 +25,11 @@ export default class InfoSymptom extends Component {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={labels[currentSymptom].title}>
|
<FramedSegment title={labels[currentSymptom].title}>
|
||||||
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
||||||
<AppText>{labels[currentSymptom].text}</AppText>
|
<AppText>{labels[currentSymptom].text}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import PropTypes from 'prop-types'
|
||||||
|
|
||||||
|
import { View } from 'react-native'
|
||||||
|
import AppText from './app-text'
|
||||||
|
import styles from '../styles'
|
||||||
|
|
||||||
|
const FramedSegment = ({ children, ...props }) => {
|
||||||
|
const style = [styles.framedSegment, props.style]
|
||||||
|
if (props.last) style.push(styles.framedSegmentLast)
|
||||||
|
return (
|
||||||
|
<View style={[style]}>
|
||||||
|
{
|
||||||
|
props.title
|
||||||
|
&& <AppText style={styles.framedSegmentTitle}>{props.title}</AppText>
|
||||||
|
}
|
||||||
|
{children}
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
FramedSegment.propTypes = {
|
||||||
|
title: PropTypes.string
|
||||||
|
}
|
||||||
|
|
||||||
|
export default FramedSegment
|
||||||
@@ -14,7 +14,7 @@ export default function License({setLicense}) {
|
|||||||
return (
|
return (
|
||||||
<ScrollView style={styles.licensePage}>
|
<ScrollView style={styles.licensePage}>
|
||||||
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
||||||
<AppText style={styles.settingsSegmentTitle}>{labels.title}</AppText>
|
<AppText style={styles.framedSegmentTitle}>{labels.title}</AppText>
|
||||||
<AppText>{labels.text}</AppText>
|
<AppText>{labels.text}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
<View style={styles.licenseButtons}>
|
<View style={styles.licenseButtons}>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React, { Component } from 'react'
|
|||||||
import { ScrollView } from 'react-native'
|
import { ScrollView } from 'react-native'
|
||||||
import Hyperlink from 'react-native-hyperlink'
|
import Hyperlink from 'react-native-hyperlink'
|
||||||
import AppText from '../app-text'
|
import AppText from '../app-text'
|
||||||
import SettingsSegment from './shared/settings-segment'
|
import FramedSegment from '../framed-segment'
|
||||||
import styles from '../../styles/index'
|
import styles from '../../styles/index'
|
||||||
import labels, { links } from '../../i18n/en/settings'
|
import labels, { links } from '../../i18n/en/settings'
|
||||||
import replace from '../helpers/replace-url-with-text'
|
import replace from '../helpers/replace-url-with-text'
|
||||||
@@ -11,25 +11,25 @@ export default class AboutSection extends Component {
|
|||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={labels.aboutSection.title}>
|
<FramedSegment title={labels.aboutSection.title}>
|
||||||
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
||||||
<AppText>{labels.aboutSection.text}</AppText>
|
<AppText>{labels.aboutSection.text}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.philosophy.title}>
|
<FramedSegment title={labels.philosophy.title}>
|
||||||
<AppText>{labels.philosophy.text}</AppText>
|
<AppText>{labels.philosophy.text}</AppText>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.credits.title}>
|
<FramedSegment title={labels.credits.title}>
|
||||||
<AppText>{labels.credits.note}</AppText>
|
<AppText>{labels.credits.note}</AppText>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.website.title}>
|
<FramedSegment title={labels.website.title}>
|
||||||
<Hyperlink linkStyle={styles.link} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkDefault>
|
||||||
<AppText>{links.website.url}</AppText>
|
<AppText>{links.website.url}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.version.title} last>
|
<FramedSegment title={labels.version.title} last>
|
||||||
<AppText>{require('../../package.json').version}</AppText>
|
<AppText>{require('../../package.json').version}</AppText>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { ScrollView } from 'react-native'
|
import { ScrollView } from 'react-native'
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
import SettingsSegment from '../shared/settings-segment'
|
import FramedSegment from '../../framed-segment'
|
||||||
import SettingsButton from '../shared/settings-button'
|
import SettingsButton from '../shared/settings-button'
|
||||||
import openImportDialogAndImport from './import-dialog'
|
import openImportDialogAndImport from './import-dialog'
|
||||||
import openShareDialogAndExport from './export-dialog'
|
import openShareDialogAndExport from './export-dialog'
|
||||||
@@ -11,25 +11,25 @@ import labels from '../../../i18n/en/settings'
|
|||||||
const DataManagement = () => {
|
const DataManagement = () => {
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={labels.export.button}>
|
<FramedSegment title={labels.export.button}>
|
||||||
<AppText>{labels.export.segmentExplainer}</AppText>
|
<AppText>{labels.export.segmentExplainer}</AppText>
|
||||||
<SettingsButton onPress={openShareDialogAndExport}>
|
<SettingsButton onPress={openShareDialogAndExport}>
|
||||||
{labels.export.button}
|
{labels.export.button}
|
||||||
</SettingsButton>
|
</SettingsButton>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.import.button}>
|
<FramedSegment title={labels.import.button}>
|
||||||
<AppText>{labels.import.segmentExplainer}</AppText>
|
<AppText>{labels.import.segmentExplainer}</AppText>
|
||||||
<SettingsButton onPress={openImportDialogAndImport}>
|
<SettingsButton onPress={openImportDialogAndImport}>
|
||||||
{labels.import.button}
|
{labels.import.button}
|
||||||
</SettingsButton>
|
</SettingsButton>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment
|
<FramedSegment
|
||||||
title={labels.deleteSegment.title}
|
title={labels.deleteSegment.title}
|
||||||
last
|
last
|
||||||
>
|
>
|
||||||
<AppText>{labels.deleteSegment.explainer}</AppText>
|
<AppText>{labels.deleteSegment.explainer}</AppText>
|
||||||
<DeleteData />
|
<DeleteData />
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ export default class License extends Component {
|
|||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.settingsSegment}>
|
<View style={styles.framedSegment}>
|
||||||
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkText={replace} linkDefault>
|
||||||
<AppText style={styles.settingsSegmentTitle}>{`${labels.license.title} `}</AppText>
|
<AppText style={styles.framedSegmentTitle}>{`${labels.license.title} `}</AppText>
|
||||||
<AppText>{`${labels.license.text} `}</AppText>
|
<AppText>{`${labels.license.text} `}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Hyperlink from 'react-native-hyperlink'
|
|||||||
import styles, { iconStyles } from '../../../styles'
|
import styles, { iconStyles } from '../../../styles'
|
||||||
import labels from '../../../i18n/en/settings'
|
import labels from '../../../i18n/en/settings'
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
import SettingsSegment from '../shared/settings-segment'
|
import FramedSegment from '../../framed-segment'
|
||||||
import TempSlider from './temp-slider'
|
import TempSlider from './temp-slider'
|
||||||
import UseCervixSetting from './use-cervix'
|
import UseCervixSetting from './use-cervix'
|
||||||
import Icon from 'react-native-vector-icons/Entypo'
|
import Icon from 'react-native-vector-icons/Entypo'
|
||||||
@@ -21,22 +21,22 @@ export default class Settings extends Component {
|
|||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={labels.useCervix.title}>
|
<FramedSegment title={labels.useCervix.title}>
|
||||||
<UseCervixSetting/>
|
<UseCervixSetting/>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.tempScale.segmentTitle}>
|
<FramedSegment title={labels.tempScale.segmentTitle}>
|
||||||
<AppText>{labels.tempScale.segmentExplainer}</AppText>
|
<AppText>{labels.tempScale.segmentExplainer}</AppText>
|
||||||
<TempSlider/>
|
<TempSlider/>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment style={styles.settingsSegmentLast} >
|
<FramedSegment style={styles.framedSegmentLast} >
|
||||||
<View style={{flexDirection: 'row', alignItems: 'center'}}>
|
<View style={{flexDirection: 'row', alignItems: 'center'}}>
|
||||||
<Icon name="info-with-circle" style={iconStyles.infoInHeading}/>
|
<Icon name="info-with-circle" style={iconStyles.infoInHeading}/>
|
||||||
<AppText style={styles.settingsSegmentTitle}>{`${labels.preOvu.title} `}</AppText>
|
<AppText style={styles.framedSegmentTitle}>{`${labels.preOvu.title} `}</AppText>
|
||||||
</View>
|
</View>
|
||||||
<Hyperlink linkStyle={styles.link} linkText={replaceUrlWithText} linkDefault>
|
<Hyperlink linkStyle={styles.link} linkText={replaceUrlWithText} linkDefault>
|
||||||
<AppText>{labels.preOvu.note}</AppText>
|
<AppText>{labels.preOvu.note}</AppText>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { ScrollView } from 'react-native'
|
|||||||
import CreatePassword from './create'
|
import CreatePassword from './create'
|
||||||
import ChangePassword from './update'
|
import ChangePassword from './update'
|
||||||
import DeletePassword from './delete'
|
import DeletePassword from './delete'
|
||||||
import SettingsSegment from '../shared/settings-segment'
|
import FramedSegment from '../../framed-segment'
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
import {
|
import {
|
||||||
hasEncryptionObservable
|
hasEncryptionObservable
|
||||||
@@ -44,7 +44,7 @@ export default class PasswordSetting extends Component {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={title}>
|
<FramedSegment title={title}>
|
||||||
<AppText>
|
<AppText>
|
||||||
{ isPasswordSet ? explainerEnabled : explainerDisabled }
|
{ isPasswordSet ? explainerEnabled : explainerDisabled }
|
||||||
</AppText>
|
</AppText>
|
||||||
@@ -62,7 +62,7 @@ export default class PasswordSetting extends Component {
|
|||||||
onStartDeletingPassword = {this.onDeletingPassword}
|
onStartDeletingPassword = {this.onDeletingPassword}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React, { Component } from 'react'
|
|||||||
import {
|
import {
|
||||||
ScrollView,
|
ScrollView,
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import SettingsSegment from '../shared/settings-segment'
|
import FramedSegment from '../../framed-segment'
|
||||||
import TempReminderPicker from './temp-reminder-picker'
|
import TempReminderPicker from './temp-reminder-picker'
|
||||||
import PeriodReminderPicker from './period-reminder'
|
import PeriodReminderPicker from './period-reminder'
|
||||||
|
|
||||||
@@ -17,12 +17,12 @@ export default class Settings extends Component {
|
|||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<SettingsSegment title={labels.tempReminder.title}>
|
<FramedSegment title={labels.tempReminder.title}>
|
||||||
<TempReminderPicker/>
|
<TempReminderPicker/>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
<SettingsSegment title={labels.periodReminder.title}>
|
<FramedSegment title={labels.periodReminder.title}>
|
||||||
<PeriodReminderPicker/>
|
<PeriodReminderPicker/>
|
||||||
</SettingsSegment>
|
</FramedSegment>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export default function SettingsMenu(props) {
|
|||||||
function menuItem(item) {
|
function menuItem(item) {
|
||||||
return (
|
return (
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
style={styles.settingsSegment}
|
style={styles.framedSegment}
|
||||||
key={item.title}
|
key={item.title}
|
||||||
onPress={() => props.navigate(item.component)}
|
onPress={() => props.navigate(item.component)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
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 }) => {
|
|
||||||
const style = [styles.settingsSegment, props.style]
|
|
||||||
if (props.last) style.push(styles.settingsSegmentLast)
|
|
||||||
return (
|
|
||||||
<View style={[styles.settingsSegment, props.style]}>
|
|
||||||
{
|
|
||||||
props.title
|
|
||||||
&& <AppText style={styles.settingsSegmentTitle}>{props.title}</AppText>
|
|
||||||
}
|
|
||||||
{children}
|
|
||||||
</View>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsSegment.propTypes = {
|
|
||||||
title: PropTypes.string
|
|
||||||
}
|
|
||||||
|
|
||||||
export default SettingsSegment
|
|
||||||
+3
-3
@@ -268,7 +268,7 @@ export default StyleSheet.create({
|
|||||||
symptomEditButton: {
|
symptomEditButton: {
|
||||||
width: 130
|
width: 130
|
||||||
},
|
},
|
||||||
settingsSegment: {
|
framedSegment: {
|
||||||
borderColor: secondaryColor,
|
borderColor: secondaryColor,
|
||||||
borderStyle: 'solid',
|
borderStyle: 'solid',
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
@@ -278,10 +278,10 @@ export default StyleSheet.create({
|
|||||||
padding: 7,
|
padding: 7,
|
||||||
fontFamily: textFont
|
fontFamily: textFont
|
||||||
},
|
},
|
||||||
settingsSegmentLast: {
|
framedSegmentLast: {
|
||||||
marginBottom: defaultTopMargin,
|
marginBottom: defaultTopMargin,
|
||||||
},
|
},
|
||||||
settingsSegmentTitle: {
|
framedSegmentTitle: {
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
fontFamily: textFontBold
|
fontFamily: textFontBold
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user