Refactor npf settings component

This commit is contained in:
mashazyu
2019-01-07 19:13:39 +01:00
committed by Sofiya Tepikin
parent 7b87424aeb
commit 373dbea60c
3 changed files with 33 additions and 34 deletions
+9 -9
View File
@@ -6,6 +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 '../settings-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'
@@ -20,15 +21,14 @@ export default class Settings extends Component {
render() { render() {
return ( return (
<ScrollView> <ScrollView>
<UseCervixSetting/> <SettingsSegment title={labels.useCervix.title}>
<View style={styles.settingsSegment}> <UseCervixSetting/>
<AppText style={styles.settingsSegmentTitle}> </SettingsSegment>
{labels.tempScale.segmentTitle} <SettingsSegment title={labels.tempScale.segmentTitle}>
</AppText>
<AppText>{labels.tempScale.segmentExplainer}</AppText> <AppText>{labels.tempScale.segmentExplainer}</AppText>
<TempSlider/> <TempSlider/>
</View> </SettingsSegment>
<View style={[styles.settingsSegment, styles.settingsSegmentLast]}> <SettingsSegment style={styles.settingsSegmentLast} >
<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.settingsSegmentTitle}>{`${labels.preOvu.title} `}</AppText>
@@ -36,8 +36,8 @@ export default class Settings extends Component {
<Hyperlink linkStyle={styles.link} linkText={replaceUrlWithText}> <Hyperlink linkStyle={styles.link} linkText={replaceUrlWithText}>
<AppText>{labels.preOvu.note}</AppText> <AppText>{labels.preOvu.note}</AppText>
</Hyperlink> </Hyperlink>
</View> </SettingsSegment>
</ScrollView> </ScrollView>
) )
} }
} }
+15 -24
View File
@@ -1,7 +1,6 @@
import React, { Component } from 'react' import React, { Component } from 'react'
import { import {
View, View,
TouchableOpacity,
Switch Switch
} from 'react-native' } from 'react-native'
import AppText from '../../app-text' import AppText from '../../app-text'
@@ -9,7 +8,6 @@ import {
useCervixObservable, useCervixObservable,
saveUseCervix saveUseCervix
} from '../../../local-storage' } from '../../../local-storage'
import styles from '../../../styles/index'
import labels from '../../../i18n/en/settings' import labels from '../../../i18n/en/settings'
export default class UseCervixSetting extends Component { export default class UseCervixSetting extends Component {
@@ -20,29 +18,22 @@ export default class UseCervixSetting extends Component {
render() { render() {
return ( return (
<TouchableOpacity <View style={{ flexDirection: 'row', alignItems: 'center' }}>
style={styles.settingsSegment} <View style={{ flex: 1 }}>
> {this.state.useCervix ?
<AppText style={styles.settingsSegmentTitle}> <AppText>{labels.useCervix.cervixModeOn}</AppText>
{labels.useCervix.title} :
</AppText> <AppText>{labels.useCervix.cervixModeOff}</AppText>
<View style={{ flexDirection: 'row', alignItems: 'center' }}> }
<View style={{ flex: 1 }}>
{this.state.useCervix ?
<AppText>{labels.useCervix.cervixModeOn}</AppText>
:
<AppText>{labels.useCervix.cervixModeOff}</AppText>
}
</View>
<Switch
value={this.state.useCervix}
onValueChange={bool => {
this.setState({ useCervix: bool })
saveUseCervix(bool)
}}
/>
</View> </View>
</TouchableOpacity> <Switch
value={this.state.useCervix}
onValueChange={bool => {
this.setState({ useCervix: bool })
saveUseCervix(bool)
}}
/>
</View>
) )
} }
} }
+9 -1
View File
@@ -9,15 +9,23 @@ const SettingsSegment = ({ children, ...props }) => {
const style = [styles.settingsSegment, props.style] const style = [styles.settingsSegment, props.style]
if (props.last) style.push(styles.settingsSegmentLast) if (props.last) style.push(styles.settingsSegmentLast)
return ( return (
<<<<<<< HEAD
<View style={style}> <View style={style}>
<AppText style={styles.settingsSegmentTitle}>{props.title}</AppText> <AppText style={styles.settingsSegmentTitle}>{props.title}</AppText>
=======
<View style={[styles.settingsSegment, props.style]}>
{
props.title
&& <AppText style={styles.settingsSegmentTitle}>{props.title}</AppText>
}
>>>>>>> Refactor npf settings component
{children} {children}
</View> </View>
) )
} }
SettingsSegment.propTypes = { SettingsSegment.propTypes = {
title: PropTypes.string.isRequired title: PropTypes.string
} }
export default SettingsSegment export default SettingsSegment