Merge branch '345-move-info-button-out-of-header-to-body' into marie-move-info-button-out-of-header-to-body
This commit is contained in:
@@ -149,14 +149,14 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':nodejs-mobile-react-native')
|
implementation project(':realm')
|
||||||
compile project(':react-native-restart')
|
implementation project(':react-native-vector-icons')
|
||||||
compile project(':react-native-push-notification')
|
implementation project(':react-native-share')
|
||||||
compile project(':react-native-vector-icons')
|
implementation project(':react-native-restart')
|
||||||
compile project(':react-native-fs')
|
implementation project(':react-native-push-notification')
|
||||||
compile project(':react-native-document-picker')
|
implementation project(':react-native-fs')
|
||||||
compile project(':react-native-share')
|
implementation project(':react-native-document-picker')
|
||||||
compile project(':realm')
|
implementation project(':nodejs-mobile-react-native')
|
||||||
compile fileTree(dir: "libs", include: ["*.jar"])
|
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||||
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||||
compile "com.facebook.react:react-native:+" // From node_modules
|
compile "com.facebook.react:react-native:+" // From node_modules
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,67 +0,0 @@
|
|||||||
import React, { Component } from 'react'
|
|
||||||
import {
|
|
||||||
View, TouchableOpacity, Text, Alert} from 'react-native'
|
|
||||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons'
|
|
||||||
import { saveSymptom } from '../../../db'
|
|
||||||
import styles, {iconStyles} from '../../../styles'
|
|
||||||
import {sharedDialogs as labels} from '../../../i18n/en/cycle-day'
|
|
||||||
|
|
||||||
|
|
||||||
export default class ActionButtonFooter extends Component {
|
|
||||||
render() {
|
|
||||||
const {
|
|
||||||
symptom,
|
|
||||||
currentSymptomValue,
|
|
||||||
date,
|
|
||||||
navigate,
|
|
||||||
}
|
|
||||||
= this.props
|
|
||||||
const navigateToOverView = () => navigate('CycleDay', {date})
|
|
||||||
const buttons = [
|
|
||||||
{
|
|
||||||
title: labels.delete,
|
|
||||||
action: () => {
|
|
||||||
Alert.alert(
|
|
||||||
labels.areYouSureTitle,
|
|
||||||
labels.areYouSureToDelete,
|
|
||||||
[{
|
|
||||||
text: labels.cancel,
|
|
||||||
style: 'cancel'
|
|
||||||
}, {
|
|
||||||
text: labels.reallyDeleteData,
|
|
||||||
onPress: () => {
|
|
||||||
saveSymptom(symptom, date)
|
|
||||||
navigateToOverView()
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
)
|
|
||||||
},
|
|
||||||
disabledCondition: (!currentSymptomValue ||
|
|
||||||
(Object.keys(currentSymptomValue).length === 0 && currentSymptomValue.constructor === Object) ||
|
|
||||||
(Object.values(currentSymptomValue).every(x => !x) && currentSymptomValue.constructor === Object)
|
|
||||||
),
|
|
||||||
icon: 'delete-outline'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
return (
|
|
||||||
<View style={styles.menu}>
|
|
||||||
{buttons.map(({ title, action, icon }, i) => {
|
|
||||||
const textStyle = [styles.menuText]
|
|
||||||
return (
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={action}
|
|
||||||
style={styles.actionButtonItem}
|
|
||||||
key={i.toString()}
|
|
||||||
>
|
|
||||||
<Icon name={icon} {...iconStyles.menuIcon} />
|
|
||||||
<Text style={textStyle}>
|
|
||||||
{title.toLowerCase()}
|
|
||||||
</Text>
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</View>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,12 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
Switch,
|
Switch,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import { bleeding } from '../../../i18n/en/cycle-day'
|
import { bleeding } from '../../../i18n/en/cycle-day'
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
import styles from '../../../styles'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
|
||||||
|
|
||||||
import SelectTabGroup from '../select-tab-group'
|
import SelectTabGroup from '../select-tab-group'
|
||||||
|
|
||||||
@@ -30,14 +26,6 @@ export default class Bleeding extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'bleeding'
|
symptomName = 'bleeding'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'bleeding'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
if (typeof this.state.currentValue != 'number') {
|
if (typeof this.state.currentValue != 'number') {
|
||||||
this.deleteSymptomEntry()
|
this.deleteSymptomEntry()
|
||||||
@@ -70,15 +58,6 @@ export default class Bleeding extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
<View style={{ flex: 1 }}></View>
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
</View>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={bleeding.exclude.header}
|
header={bleeding.exclude.header}
|
||||||
|
|||||||
@@ -1,16 +1,10 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
Switch,
|
Switch,
|
||||||
ScrollView,
|
ScrollView} from 'react-native'
|
||||||
TouchableOpacity,
|
|
||||||
View
|
|
||||||
} from 'react-native'
|
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import { cervix as labels } from '../../../i18n/en/cycle-day'
|
import { cervix as labels } from '../../../i18n/en/cycle-day'
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
import styles from '../../../styles'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
|
||||||
|
|
||||||
import SelectTabGroup from '../select-tab-group'
|
import SelectTabGroup from '../select-tab-group'
|
||||||
|
|
||||||
@@ -27,14 +21,6 @@ export default class Cervix extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'cervix'
|
symptomName = 'cervix'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'cervix'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = ['opening', 'firmness', 'position'].every(val => typeof this.state[val] != 'number')
|
const nothingEntered = ['opening', 'firmness', 'position'].every(val => typeof this.state[val] != 'number')
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -69,7 +55,6 @@ export default class Cervix extends SymptomView {
|
|||||||
// const mandatoryNotCompleted = typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'
|
// const mandatoryNotCompleted = typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'
|
||||||
return (
|
return (
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<View style={{ flexDirection: 'row' }}>
|
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header="Opening"
|
header="Opening"
|
||||||
explainer={labels.opening.explainer}
|
explainer={labels.opening.explainer}
|
||||||
@@ -80,17 +65,6 @@ export default class Cervix extends SymptomView {
|
|||||||
onSelect={val => this.setState({ opening: val })}
|
onSelect={val => this.setState({ opening: val })}
|
||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header="Firmness"
|
header="Firmness"
|
||||||
explainer={labels.firmness.explainer}
|
explainer={labels.firmness.explainer}
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { intensity, desire } from '../../../i18n/en/cycle-day'
|
import { intensity, desire } from '../../../i18n/en/cycle-day'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
|
|
||||||
import SelectTabGroup from '../select-tab-group'
|
import SelectTabGroup from '../select-tab-group'
|
||||||
|
|
||||||
@@ -27,14 +23,6 @@ export default class Desire extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'desire'
|
symptomName = 'desire'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'desire'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
if (typeof this.state.currentValue != 'number') {
|
if (typeof this.state.currentValue != 'number') {
|
||||||
this.deleteSymptomEntry()
|
this.deleteSymptomEntry()
|
||||||
@@ -62,16 +50,6 @@ export default class Desire extends SymptomView {
|
|||||||
onSelect={val => this.setState({ currentValue: val })}
|
onSelect={val => this.setState({ currentValue: val })}
|
||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { mood as labels } from '../../../i18n/en/cycle-day'
|
import { mood as labels } from '../../../i18n/en/cycle-day'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
|
|
||||||
import SelectBoxGroup from '../select-box-group'
|
import SelectBoxGroup from '../select-box-group'
|
||||||
|
|
||||||
@@ -33,14 +29,6 @@ export default class Mood extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'mood'
|
symptomName = 'mood'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'mood'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = Object.values(this.state).every(val => !val)
|
const nothingEntered = Object.values(this.state).every(val => !val)
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -69,15 +57,6 @@ export default class Mood extends SymptomView {
|
|||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
>
|
>
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
<SelectBoxGroup
|
<SelectBoxGroup
|
||||||
labels={labels.categories}
|
labels={labels.categories}
|
||||||
onSelect={this.toggleState}
|
onSelect={this.toggleState}
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
Switch,
|
Switch,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { mucus as labels } from '../../../i18n/en/cycle-day'
|
import { mucus as labels } from '../../../i18n/en/cycle-day'
|
||||||
import computeNfpValue from '../../../lib/nfp-mucus'
|
import computeNfpValue from '../../../lib/nfp-mucus'
|
||||||
|
|
||||||
@@ -28,14 +24,6 @@ export default class Mucus extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'mucus'
|
symptomName = 'mucus'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'mucus'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = ['feeling', 'texture'].every(val => typeof this.state[val] != 'number')
|
const nothingEntered = ['feeling', 'texture'].every(val => typeof this.state[val] != 'number')
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -80,16 +68,6 @@ export default class Mucus extends SymptomView {
|
|||||||
active={this.state.feeling}
|
active={this.state.feeling}
|
||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { noteExplainer } from '../../../i18n/en/cycle-day'
|
import { noteExplainer } from '../../../i18n/en/cycle-day'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
|
|
||||||
import SymptomSection from './symptom-section'
|
import SymptomSection from './symptom-section'
|
||||||
import SymptomView from './symptom-view'
|
import SymptomView from './symptom-view'
|
||||||
@@ -29,14 +25,6 @@ export default class Note extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'note'
|
symptomName = 'note'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'note'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
if (!this.state.currentValue) {
|
if (!this.state.currentValue) {
|
||||||
this.deleteSymptomEntry()
|
this.deleteSymptomEntry()
|
||||||
@@ -64,16 +52,6 @@ export default class Note extends SymptomView {
|
|||||||
value={this.state.currentValue}
|
value={this.state.currentValue}
|
||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { pain as labels } from '../../../i18n/en/cycle-day'
|
import { pain as labels } from '../../../i18n/en/cycle-day'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
|
|
||||||
import SelectBoxGroup from '../select-box-group'
|
import SelectBoxGroup from '../select-box-group'
|
||||||
|
|
||||||
@@ -34,14 +30,6 @@ export default class Pain extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'pain'
|
symptomName = 'pain'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'pain'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = Object.values(this.state).every(val => !val)
|
const nothingEntered = Object.values(this.state).every(val => !val)
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -71,15 +59,6 @@ export default class Pain extends SymptomView {
|
|||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
>
|
>
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
<SelectBoxGroup
|
<SelectBoxGroup
|
||||||
labels={labels.categories}
|
labels={labels.categories}
|
||||||
onSelect={this.toggleState}
|
onSelect={this.toggleState}
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Alert,
|
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
|
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { sex as sexLabels, contraceptives as contraceptivesLabels } from '../../../i18n/en/cycle-day'
|
import { sex as sexLabels, contraceptives as contraceptivesLabels } from '../../../i18n/en/cycle-day'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
|
|
||||||
import SelectBoxGroup from '../select-box-group'
|
import SelectBoxGroup from '../select-box-group'
|
||||||
|
|
||||||
@@ -34,14 +30,6 @@ export default class Sex extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'sex'
|
symptomName = 'sex'
|
||||||
|
|
||||||
showInfoBox(){
|
|
||||||
const symptomName = 'sex'
|
|
||||||
Alert.alert(
|
|
||||||
infoLabels[symptomName].title,
|
|
||||||
infoLabels[symptomName].text
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = Object.values(this.state).every(val => !val)
|
const nothingEntered = Object.values(this.state).every(val => !val)
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -79,15 +67,6 @@ export default class Sex extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
<View style={{ flex: 1 }}></View>
|
<View style={{ flex: 1 }}></View>
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
</View>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={contraceptivesLabels.header}
|
header={contraceptivesLabels.header}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
import { View } from 'react-native'
|
import { View } from 'react-native'
|
||||||
import AppText, { SymptomSectionHeader } from '../../app-text'
|
import AppText, { SymptomSectionHeader } from '../../app-text'
|
||||||
|
import styles from '../../../styles'
|
||||||
|
|
||||||
export default class SymptomSection extends Component {
|
export default class SymptomSection extends Component {
|
||||||
render() {
|
render() {
|
||||||
@@ -13,8 +14,10 @@ export default class SymptomSection extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<View style={placeHeadingInline}>
|
<View style={[placeHeadingInline, styles.symptomSection]}>
|
||||||
|
{ p.header &&
|
||||||
<SymptomSectionHeader flex={1}>{p.header}</SymptomSectionHeader>
|
<SymptomSectionHeader flex={1}>{p.header}</SymptomSectionHeader>
|
||||||
|
}
|
||||||
<View
|
<View
|
||||||
flexDirection={p.inline ? 'row' : null}
|
flexDirection={p.inline ? 'row' : null}
|
||||||
flex={1}
|
flex={1}
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
import { BackHandler, View } from 'react-native'
|
import {
|
||||||
|
BackHandler, View, Alert, TouchableOpacity
|
||||||
|
} from 'react-native'
|
||||||
import { saveSymptom } from '../../../db'
|
import { saveSymptom } from '../../../db'
|
||||||
import Header from '../../header/symptom-view'
|
import Header from '../../header/symptom-view'
|
||||||
import { headerTitles } from '../../../i18n/en/labels'
|
import { headerTitles } from '../../../i18n/en/labels'
|
||||||
|
import { sharedDialogs } from '../../../i18n/en/cycle-day'
|
||||||
|
import FeatherIcon from 'react-native-vector-icons/Feather'
|
||||||
|
import styles, { iconStyles } from '../../../styles'
|
||||||
|
import infoLabels from '../../../i18n/en/symptom-info'
|
||||||
|
|
||||||
export default class SymptomView extends Component {
|
export default class SymptomView extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -33,6 +39,20 @@ export default class SymptomView extends Component {
|
|||||||
this.backHandler.remove()
|
this.backHandler.remove()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isDeleteIconActive() {
|
||||||
|
return Object.values(this.state).some(value => {
|
||||||
|
// is there any meaningful value in the current state?
|
||||||
|
return value || value === 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
showInfoBox(){
|
||||||
|
Alert.alert(
|
||||||
|
infoLabels[this.symptomName].title,
|
||||||
|
infoLabels[this.symptomName].text
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<View style={{flex: 1}}>
|
<View style={{flex: 1}}>
|
||||||
@@ -40,13 +60,38 @@ export default class SymptomView extends Component {
|
|||||||
title={headerTitles[this.symptomName].toLowerCase()}
|
title={headerTitles[this.symptomName].toLowerCase()}
|
||||||
date={this.date}
|
date={this.date}
|
||||||
goBack={this.handleBackButtonPressOnSymptomView.bind(this)}
|
goBack={this.handleBackButtonPressOnSymptomView.bind(this)}
|
||||||
|
deleteIconActive={this.isDeleteIconActive()}
|
||||||
deleteEntry={() => {
|
deleteEntry={() => {
|
||||||
|
Alert.alert(
|
||||||
|
sharedDialogs.areYouSureTitle,
|
||||||
|
sharedDialogs.areYouSureToDelete,
|
||||||
|
[{
|
||||||
|
text: sharedDialogs.cancel,
|
||||||
|
style: 'cancel'
|
||||||
|
}, {
|
||||||
|
text: sharedDialogs.reallyDeleteData,
|
||||||
|
onPress: () => {
|
||||||
this.deleteSymptomEntry()
|
this.deleteSymptomEntry()
|
||||||
this.globalBackhandler()
|
this.globalBackhandler()
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
<View>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={this.showInfoBox.bind(this)}
|
||||||
|
style={styles.infoButtonSymptomView}
|
||||||
|
>
|
||||||
|
<FeatherIcon
|
||||||
|
name="info"
|
||||||
|
{...iconStyles.infoInSymptomView}
|
||||||
|
style={iconStyles.symptomInfo}
|
||||||
|
/>
|
||||||
|
</TouchableOpacity>
|
||||||
{this.renderContent()}
|
{this.renderContent()}
|
||||||
</View>
|
</View>
|
||||||
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,19 +4,16 @@ import {
|
|||||||
Keyboard,
|
Keyboard,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
Switch,
|
Switch,
|
||||||
TouchableOpacity,
|
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import DateTimePicker from 'react-native-modal-datetime-picker-nevo'
|
import DateTimePicker from 'react-native-modal-datetime-picker-nevo'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
|
||||||
import { LocalTime, ChronoUnit } from 'js-joda'
|
import { LocalTime, ChronoUnit } from 'js-joda'
|
||||||
|
|
||||||
import config from '../../../config'
|
import config from '../../../config'
|
||||||
import { getPreviousTemperature } from '../../../db'
|
import { getPreviousTemperature } from '../../../db'
|
||||||
import infoLabels from '../../../i18n/en/symptom-info'
|
|
||||||
import { scaleObservable } from '../../../local-storage'
|
import { scaleObservable } from '../../../local-storage'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
import styles, { iconStyles } from '../../../styles'
|
import styles from '../../../styles'
|
||||||
import { temperature as labels } from '../../../i18n/en/cycle-day'
|
import { temperature as labels } from '../../../i18n/en/cycle-day'
|
||||||
|
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
@@ -52,7 +49,7 @@ export default class Temp extends SymptomView {
|
|||||||
} else {
|
} else {
|
||||||
const prevTemp = getPreviousTemperature(props.date)
|
const prevTemp = getPreviousTemperature(props.date)
|
||||||
if (prevTemp) {
|
if (prevTemp) {
|
||||||
this.state.temperature = prevTemp.toString()
|
this.state.suggestedTemperature = prevTemp.toString()
|
||||||
this.state.isSuggestion = true
|
this.state.isSuggestion = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,12 +57,12 @@ export default class Temp extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'temperature'
|
symptomName = 'temperature'
|
||||||
|
|
||||||
showInfoBox(){
|
isDeleteIconActive() {
|
||||||
const symptomName = 'temperature'
|
return ['temperature', 'note', 'exclude'].some(key => {
|
||||||
Alert.alert(
|
// the time is always and the suggested temp sometimes prefilled, so they're not relevant for setting
|
||||||
infoLabels[symptomName].title,
|
// the delete button active.
|
||||||
infoLabels[symptomName].text
|
return this.state[key] || this.state[key] === 0
|
||||||
)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async onBackButtonPress() {
|
async onBackButtonPress() {
|
||||||
@@ -152,16 +149,6 @@ export default class Temp extends SymptomView {
|
|||||||
header={labels.temperature.header}
|
header={labels.temperature.header}
|
||||||
explainer={labels.temperature.explainer}
|
explainer={labels.temperature.explainer}
|
||||||
>
|
>
|
||||||
<View style={{ flex: 1 }}></View>
|
|
||||||
<TouchableOpacity
|
|
||||||
onPress={this.showInfoBox}
|
|
||||||
style={styles.infoButton}
|
|
||||||
>
|
|
||||||
<FeatherIcon
|
|
||||||
name="info"
|
|
||||||
style={iconStyles.symptomInfo}
|
|
||||||
/>
|
|
||||||
</TouchableOpacity>
|
|
||||||
<View style={styles.framedSegmentInlineChildren}>
|
<View style={styles.framedSegmentInlineChildren}>
|
||||||
<AppTextInput
|
<AppTextInput
|
||||||
style={[inputStyle]}
|
style={[inputStyle]}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
TouchableOpacity,
|
TouchableOpacity,
|
||||||
View
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import styles, { iconStyles } from '../../styles'
|
import styles from '../../styles'
|
||||||
import NavigationArrow from './navigation-arrow'
|
import NavigationArrow from './navigation-arrow'
|
||||||
import Icon from 'react-native-vector-icons/Entypo'
|
import Icon from 'react-native-vector-icons/Entypo'
|
||||||
|
|
||||||
@@ -21,10 +21,9 @@ export default function BackButtonHeader(props) {
|
|||||||
{props.title}
|
{props.title}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<TouchableOpacity style={styles.hiddenIcon}>
|
<TouchableOpacity>
|
||||||
<Icon
|
<Icon
|
||||||
name={'chevron-thin-right'}
|
name={'chevron-thin-right'}
|
||||||
{...iconStyles.hiddenIcon}
|
|
||||||
/>
|
/>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
Dimensions
|
Dimensions
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import styles, { iconStyles } from '../../styles'
|
import styles, { iconStyles } from '../../styles'
|
||||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons'
|
import Icon from 'react-native-vector-icons/AntDesign'
|
||||||
import NavigationArrow from './navigation-arrow'
|
import NavigationArrow from './navigation-arrow'
|
||||||
import formatDate from '../helpers/format-date'
|
import formatDate from '../helpers/format-date'
|
||||||
|
|
||||||
@@ -32,11 +32,14 @@ export default function SymptomViewHeader(props) {
|
|||||||
</View >
|
</View >
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
onPress={props.deleteEntry}
|
onPress={props.deleteEntry}
|
||||||
style={styles.infoButton}
|
style={[
|
||||||
|
styles.headerDeleteButton,
|
||||||
|
{opacity: props.deleteIconActive ? 1 : 0}
|
||||||
|
]}
|
||||||
|
disabled={!props.deleteIconActive}
|
||||||
>
|
>
|
||||||
<Icon
|
<Icon
|
||||||
name="delete-outline"
|
name="delete"
|
||||||
style={styles.symptomInfoIcon}
|
|
||||||
{...iconStyles.symptomHeaderIcons}
|
{...iconStyles.symptomHeaderIcons}
|
||||||
/>
|
/>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
};
|
};
|
||||||
objectVersion = 46;
|
objectVersion = 46;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
|
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
|
||||||
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
|
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
|
||||||
@@ -72,6 +71,7 @@
|
|||||||
E09F3B05A4F84E9883101CC7 /* libRNNodeJsMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F992F2D99E614DD79FAD6565 /* libRNNodeJsMobile.a */; };
|
E09F3B05A4F84E9883101CC7 /* libRNNodeJsMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F992F2D99E614DD79FAD6565 /* libRNNodeJsMobile.a */; };
|
||||||
E43EF009AC8C4698AB322190 /* NodeMobile.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C225FC4966694B9FBD32E946 /* NodeMobile.framework */; };
|
E43EF009AC8C4698AB322190 /* NodeMobile.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C225FC4966694B9FBD32E946 /* NodeMobile.framework */; };
|
||||||
E4584E55EEC24302A3E84A23 /* nodejs-project in Resources */ = {isa = PBXBuildFile; fileRef = 6466AE2461BE4FA88B8372F0 /* nodejs-project */; };
|
E4584E55EEC24302A3E84A23 /* nodejs-project in Resources */ = {isa = PBXBuildFile; fileRef = 6466AE2461BE4FA88B8372F0 /* nodejs-project */; };
|
||||||
|
77500FAD5ADD402AAD2D9972 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3102FB76D69C42938E0E126D /* AntDesign.ttf */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@@ -515,6 +515,7 @@
|
|||||||
F5039D0A572B4BBCB7995891 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
|
F5039D0A572B4BBCB7995891 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
|
||||||
F59A471BDE4144A1A41D4B52 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
F59A471BDE4144A1A41D4B52 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
||||||
F992F2D99E614DD79FAD6565 /* libRNNodeJsMobile.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNNodeJsMobile.a; sourceTree = "<group>"; };
|
F992F2D99E614DD79FAD6565 /* libRNNodeJsMobile.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNNodeJsMobile.a; sourceTree = "<group>"; };
|
||||||
|
3102FB76D69C42938E0E126D /* AntDesign.ttf */ = {isa = PBXFileReference; name = "AntDesign.ttf"; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -606,6 +607,7 @@
|
|||||||
5E7B0A75F8004C6699B70F86 /* Prompt-ExtraLight.ttf */,
|
5E7B0A75F8004C6699B70F86 /* Prompt-ExtraLight.ttf */,
|
||||||
673C016DDDD74C2F89050279 /* OpenSans-Light.ttf */,
|
673C016DDDD74C2F89050279 /* OpenSans-Light.ttf */,
|
||||||
644690BCCEBF41789960B9A2 /* OpenSans-SemiBold.ttf */,
|
644690BCCEBF41789960B9A2 /* OpenSans-SemiBold.ttf */,
|
||||||
|
3102FB76D69C42938E0E126D /* AntDesign.ttf */,
|
||||||
);
|
);
|
||||||
name = Resources;
|
name = Resources;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -949,9 +951,9 @@
|
|||||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
||||||
2B572382D4504B8FB4B9D251 /* Embed Frameworks */,
|
2B572382D4504B8FB4B9D251 /* Embed Frameworks */,
|
||||||
FF1D4199225D4DA692E5AEB6 /* Build NodeJS Mobile Native Modules */,
|
6A61F9B7BEB149D1894D6AB5 /* Build NodeJS Mobile Native Modules */,
|
||||||
BF4F9DB28A984C43A497C8E6 /* Sign NodeJS Mobile Native Modules */,
|
53E84D10AC6B4045A1DBAB0C /* Sign NodeJS Mobile Native Modules */,
|
||||||
6292723A374D49FDB7CF4114 /* Remove NodeJS Mobile Framework Simulator Strips */,
|
F43CB3783FD9405C8198826C /* Remove NodeJS Mobile Framework Simulator Strips */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -1510,6 +1512,7 @@
|
|||||||
B9A5B9946C4C456C823B7641 /* Prompt-ExtraLight.ttf in Resources */,
|
B9A5B9946C4C456C823B7641 /* Prompt-ExtraLight.ttf in Resources */,
|
||||||
5D921C348AC14944835A4D82 /* OpenSans-Light.ttf in Resources */,
|
5D921C348AC14944835A4D82 /* OpenSans-Light.ttf in Resources */,
|
||||||
71D0BCE4666A4AB8A0874B5A /* OpenSans-SemiBold.ttf in Resources */,
|
71D0BCE4666A4AB8A0874B5A /* OpenSans-SemiBold.ttf in Resources */,
|
||||||
|
77500FAD5ADD402AAD2D9972 /* AntDesign.ttf in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -1559,47 +1562,159 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
|
||||||
};
|
};
|
||||||
6292723A374D49FDB7CF4114 /* Remove NodeJS Mobile Framework Simulator Strips */ = {
|
6A61F9B7BEB149D1894D6AB5 /* Build NodeJS Mobile Native Modules */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Remove NodeJS Mobile Framework Simulator Strips";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\nset -e\nFRAMEWORK_BINARY_PATH=\"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/NodeMobile.framework/NodeMobile\"\nFRAMEWORK_STRIPPED_PATH=\"$FRAMEWORK_BINARY_PATH-strip\"\nif [ \"$PLATFORM_NAME\" != \"iphonesimulator\" ]; then\n if $(lipo \"$FRAMEWORK_BINARY_PATH\" -verify_arch \"x86_64\") ; then\n lipo -output \"$FRAMEWORK_STRIPPED_PATH\" -remove \"x86_64\" \"$FRAMEWORK_BINARY_PATH\"\n rm \"$FRAMEWORK_BINARY_PATH\"\n mv \"$FRAMEWORK_STRIPPED_PATH\" \"$FRAMEWORK_BINARY_PATH\"\n echo \"Removed simulator strip from NodeMobile.framework\"\n fi\nfi\n";
|
|
||||||
};
|
|
||||||
BF4F9DB28A984C43A497C8E6 /* Sign NodeJS Mobile Native Modules */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Sign NodeJS Mobile Native Modules";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\nset -e\nif [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then\n# If build native modules preference is not set, look for it in the project's\n#nodejs-assets/BUILD_NATIVE_MODULES.txt file.\nNODEJS_ASSETS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../nodejs-assets/ && pwd )\"\nPREFERENCE_FILE_PATH=\"$NODEJS_ASSETS_DIR/BUILD_NATIVE_MODULES.txt\"\n if [ -f \"$PREFERENCE_FILE_PATH\" ]; then\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=\"$(cat $PREFERENCE_FILE_PATH | xargs)\"\n fi\nfi\nif [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then\n# If build native modules preference is not set, try to find .gyp files\n#to turn it on.\n gypfiles=($(find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -type f -name \"*.gyp\"))\n if [ ${#gypfiles[@]} -gt 0 ]; then\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=1\n else\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=0\n fi\nfi\nif [ \"1\" != \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then exit 0; fi\n# Delete object files\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.o\" -type f -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.a\" -type f -delete\n# Create Info.plist for each framework built and loader override.\nPATCH_SCRIPT_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/scripts/ && pwd )\"\nNODEJS_PROJECT_DIR=\"$( cd \"$CODESIGNING_FOLDER_PATH\" && cd nodejs-project/ && pwd )\"\nnode \"$PATCH_SCRIPT_DIR\"/ios-create-plists-and-dlopen-override.js $NODEJS_PROJECT_DIR\n# Embed every resulting .framework in the application and delete them afterwards.\nembed_framework()\n{\n FRAMEWORK_NAME=\"$(basename \"$1\")\"\n cp -r \"$1\" \"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/\"\n \n /usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY --preserve-metadata=identifier,entitlements,flags --timestamp=none \"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/$FRAMEWORK_NAME\"\n}\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d | while read frmwrk_path; do embed_framework \"$frmwrk_path\"; done\n\n#Delete gyp temporary .deps dependency folders from the project structure.\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/.deps/*\" -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \".deps\" -type d -delete\n\n#Delete frameworks from their build paths\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.framework/*\" -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d -delete\n";
|
|
||||||
};
|
|
||||||
FF1D4199225D4DA692E5AEB6 /* Build NodeJS Mobile Native Modules */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Build NodeJS Mobile Native Modules";
|
name = "Build NodeJS Mobile Native Modules";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\nset -e\nif [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then\n# If build native modules preference is not set, look for it in the project's\n#nodejs-assets/BUILD_NATIVE_MODULES.txt file.\nNODEJS_ASSETS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../nodejs-assets/ && pwd )\"\nPREFERENCE_FILE_PATH=\"$NODEJS_ASSETS_DIR/BUILD_NATIVE_MODULES.txt\"\n if [ -f \"$PREFERENCE_FILE_PATH\" ]; then\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=\"$(cat $PREFERENCE_FILE_PATH | xargs)\"\n fi\nfi\nif [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then\n# If build native modules preference is not set, try to find .gyp files\n#to turn it on.\n gypfiles=($(find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -type f -name \"*.gyp\"))\n if [ ${#gypfiles[@]} -gt 0 ]; then\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=1\n else\n NODEJS_MOBILE_BUILD_NATIVE_MODULES=0\n fi\nfi\nif [ \"1\" != \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then exit 0; fi\n# Delete object files that may already come from within the npm package.\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.o\" -type f -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.a\" -type f -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.node\" -type f -delete\n# Delete bundle contents that may be there from previous builds.\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.node/*\" -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.node\" -type d -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.framework/*\" -delete\nfind \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d -delete\n# Apply patches to the modules package.json\nif [ -d \"$CODESIGNING_FOLDER_PATH\"/nodejs-project/node_modules/ ]; then\n PATCH_SCRIPT_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/scripts/ && pwd )\"\n NODEJS_PROJECT_MODULES_DIR=\"$( cd \"$CODESIGNING_FOLDER_PATH\" && cd nodejs-project/node_modules/ && pwd )\"\n node \"$PATCH_SCRIPT_DIR\"/patch-package.js $NODEJS_PROJECT_MODULES_DIR\nfi\n# Get the nodejs-mobile-gyp location\nif [ -d \"$PROJECT_DIR/../node_modules/nodejs-mobile-gyp/\" ]; then\n NODEJS_MOBILE_GYP_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-gyp/ && pwd )\"\nelse\n NODEJS_MOBILE_GYP_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/node_modules/nodejs-mobile-gyp/ && pwd )\"\nfi\nNODEJS_MOBILE_GYP_BIN_FILE=\"$NODEJS_MOBILE_GYP_DIR\"/bin/node-gyp.js\n# Rebuild modules with right environment\nNODEJS_HEADERS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/ios/libnode/ && pwd )\"\npushd $CODESIGNING_FOLDER_PATH/nodejs-project/\nif [ \"$PLATFORM_NAME\" == \"iphoneos\" ]\nthen\n GYP_DEFINES=\"OS=ios\" npm_config_nodedir=\"$NODEJS_HEADERS_DIR\" npm_config_node_gyp=\"$NODEJS_MOBILE_GYP_BIN_FILE\" npm_config_platform=\"ios\" npm_config_format=\"make-ios\" npm_config_node_engine=\"chakracore\" npm_config_arch=\"arm64\" npm --verbose rebuild --build-from-source\nelse\n GYP_DEFINES=\"OS=ios\" npm_config_nodedir=\"$NODEJS_HEADERS_DIR\" npm_config_node_gyp=\"$NODEJS_MOBILE_GYP_BIN_FILE\" npm_config_platform=\"ios\" npm_config_format=\"make-ios\" npm_config_node_engine=\"chakracore\" npm_config_arch=\"x64\" npm --verbose rebuild --build-from-source\nfi\npopd\n";
|
shellScript = "
|
||||||
|
set -e
|
||||||
|
if [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then
|
||||||
|
# If build native modules preference is not set, look for it in the project's
|
||||||
|
#nodejs-assets/BUILD_NATIVE_MODULES.txt file.
|
||||||
|
NODEJS_ASSETS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../nodejs-assets/ && pwd )\"
|
||||||
|
PREFERENCE_FILE_PATH=\"$NODEJS_ASSETS_DIR/BUILD_NATIVE_MODULES.txt\"
|
||||||
|
if [ -f \"$PREFERENCE_FILE_PATH\" ]; then
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=\"$(cat $PREFERENCE_FILE_PATH | xargs)\"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then
|
||||||
|
# If build native modules preference is not set, try to find .gyp files
|
||||||
|
#to turn it on.
|
||||||
|
gypfiles=($(find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -type f -name \"*.gyp\"))
|
||||||
|
if [ ${#gypfiles[@]} -gt 0 ]; then
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=1
|
||||||
|
else
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ \"1\" != \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then exit 0; fi
|
||||||
|
# Delete object files that may already come from within the npm package.
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.o\" -type f -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.a\" -type f -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.node\" -type f -delete
|
||||||
|
# Delete bundle contents that may be there from previous builds.
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.node/*\" -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.node\" -type d -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.framework/*\" -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d -delete
|
||||||
|
# Apply patches to the modules package.json
|
||||||
|
if [ -d \"$CODESIGNING_FOLDER_PATH\"/nodejs-project/node_modules/ ]; then
|
||||||
|
PATCH_SCRIPT_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/scripts/ && pwd )\"
|
||||||
|
NODEJS_PROJECT_MODULES_DIR=\"$( cd \"$CODESIGNING_FOLDER_PATH\" && cd nodejs-project/node_modules/ && pwd )\"
|
||||||
|
node \"$PATCH_SCRIPT_DIR\"/patch-package.js $NODEJS_PROJECT_MODULES_DIR
|
||||||
|
fi
|
||||||
|
# Get the nodejs-mobile-gyp location
|
||||||
|
if [ -d \"$PROJECT_DIR/../node_modules/nodejs-mobile-gyp/\" ]; then
|
||||||
|
NODEJS_MOBILE_GYP_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-gyp/ && pwd )\"
|
||||||
|
else
|
||||||
|
NODEJS_MOBILE_GYP_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/node_modules/nodejs-mobile-gyp/ && pwd )\"
|
||||||
|
fi
|
||||||
|
NODEJS_MOBILE_GYP_BIN_FILE=\"$NODEJS_MOBILE_GYP_DIR\"/bin/node-gyp.js
|
||||||
|
# Rebuild modules with right environment
|
||||||
|
NODEJS_HEADERS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/ios/libnode/ && pwd )\"
|
||||||
|
pushd $CODESIGNING_FOLDER_PATH/nodejs-project/
|
||||||
|
if [ \"$PLATFORM_NAME\" == \"iphoneos\" ]
|
||||||
|
then
|
||||||
|
GYP_DEFINES=\"OS=ios\" npm_config_nodedir=\"$NODEJS_HEADERS_DIR\" npm_config_node_gyp=\"$NODEJS_MOBILE_GYP_BIN_FILE\" npm_config_platform=\"ios\" npm_config_format=\"make-ios\" npm_config_node_engine=\"chakracore\" npm_config_arch=\"arm64\" npm --verbose rebuild --build-from-source
|
||||||
|
else
|
||||||
|
GYP_DEFINES=\"OS=ios\" npm_config_nodedir=\"$NODEJS_HEADERS_DIR\" npm_config_node_gyp=\"$NODEJS_MOBILE_GYP_BIN_FILE\" npm_config_platform=\"ios\" npm_config_format=\"make-ios\" npm_config_node_engine=\"chakracore\" npm_config_arch=\"x64\" npm --verbose rebuild --build-from-source
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
";
|
||||||
|
};
|
||||||
|
53E84D10AC6B4045A1DBAB0C /* Sign NodeJS Mobile Native Modules */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Sign NodeJS Mobile Native Modules";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
set -e
|
||||||
|
if [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then
|
||||||
|
# If build native modules preference is not set, look for it in the project's
|
||||||
|
#nodejs-assets/BUILD_NATIVE_MODULES.txt file.
|
||||||
|
NODEJS_ASSETS_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../nodejs-assets/ && pwd )\"
|
||||||
|
PREFERENCE_FILE_PATH=\"$NODEJS_ASSETS_DIR/BUILD_NATIVE_MODULES.txt\"
|
||||||
|
if [ -f \"$PREFERENCE_FILE_PATH\" ]; then
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=\"$(cat $PREFERENCE_FILE_PATH | xargs)\"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then
|
||||||
|
# If build native modules preference is not set, try to find .gyp files
|
||||||
|
#to turn it on.
|
||||||
|
gypfiles=($(find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -type f -name \"*.gyp\"))
|
||||||
|
if [ ${#gypfiles[@]} -gt 0 ]; then
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=1
|
||||||
|
else
|
||||||
|
NODEJS_MOBILE_BUILD_NATIVE_MODULES=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ \"1\" != \"$NODEJS_MOBILE_BUILD_NATIVE_MODULES\" ]; then exit 0; fi
|
||||||
|
# Delete object files
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.o\" -type f -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.a\" -type f -delete
|
||||||
|
# Create Info.plist for each framework built and loader override.
|
||||||
|
PATCH_SCRIPT_DIR=\"$( cd \"$PROJECT_DIR\" && cd ../node_modules/nodejs-mobile-react-native/scripts/ && pwd )\"
|
||||||
|
NODEJS_PROJECT_DIR=\"$( cd \"$CODESIGNING_FOLDER_PATH\" && cd nodejs-project/ && pwd )\"
|
||||||
|
node \"$PATCH_SCRIPT_DIR\"/ios-create-plists-and-dlopen-override.js $NODEJS_PROJECT_DIR
|
||||||
|
# Embed every resulting .framework in the application and delete them afterwards.
|
||||||
|
embed_framework()
|
||||||
|
{
|
||||||
|
FRAMEWORK_NAME=\"$(basename \"$1\")\"
|
||||||
|
cp -r \"$1\" \"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/\"
|
||||||
|
|
||||||
|
/usr/bin/codesign --force --sign $EXPANDED_CODE_SIGN_IDENTITY --preserve-metadata=identifier,entitlements,flags --timestamp=none \"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/$FRAMEWORK_NAME\"
|
||||||
|
}
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d | while read frmwrk_path; do embed_framework \"$frmwrk_path\"; done
|
||||||
|
|
||||||
|
#Delete gyp temporary .deps dependency folders from the project structure.
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/.deps/*\" -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \".deps\" -type d -delete
|
||||||
|
|
||||||
|
#Delete frameworks from their build paths
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -path \"*/*.framework/*\" -delete
|
||||||
|
find \"$CODESIGNING_FOLDER_PATH/nodejs-project/\" -name \"*.framework\" -type d -delete
|
||||||
|
";
|
||||||
|
};
|
||||||
|
F43CB3783FD9405C8198826C /* Remove NodeJS Mobile Framework Simulator Strips */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Remove NodeJS Mobile Framework Simulator Strips";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
set -e
|
||||||
|
FRAMEWORK_BINARY_PATH=\"$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH/NodeMobile.framework/NodeMobile\"
|
||||||
|
FRAMEWORK_STRIPPED_PATH=\"$FRAMEWORK_BINARY_PATH-strip\"
|
||||||
|
if [ \"$PLATFORM_NAME\" != \"iphonesimulator\" ]; then
|
||||||
|
if $(lipo \"$FRAMEWORK_BINARY_PATH\" -verify_arch \"x86_64\") ; then
|
||||||
|
lipo -output \"$FRAMEWORK_STRIPPED_PATH\" -remove \"x86_64\" \"$FRAMEWORK_BINARY_PATH\"
|
||||||
|
rm \"$FRAMEWORK_BINARY_PATH\"
|
||||||
|
mv \"$FRAMEWORK_STRIPPED_PATH\" \"$FRAMEWORK_BINARY_PATH\"
|
||||||
|
echo \"Removed simulator strip from NodeMobile.framework\"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
";
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,7 @@
|
|||||||
<string>OpenSans-Light.ttf</string>
|
<string>OpenSans-Light.ttf</string>
|
||||||
<string>OpenSans-Regular.ttf</string>
|
<string>OpenSans-Regular.ttf</string>
|
||||||
<string>OpenSans-SemiBold.ttf</string>
|
<string>OpenSans-SemiBold.ttf</string>
|
||||||
|
<string>AntDesign.ttf</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
Generated
+211
-43
@@ -2392,8 +2392,7 @@
|
|||||||
"emoji-regex": {
|
"emoji-regex": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"encodeurl": {
|
"encodeurl": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@@ -3229,7 +3228,8 @@
|
|||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"aproba": {
|
"aproba": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@@ -3247,11 +3247,13 @@
|
|||||||
},
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@@ -3264,15 +3266,18 @@
|
|||||||
},
|
},
|
||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@@ -3375,7 +3380,8 @@
|
|||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
@@ -3385,6 +3391,7 @@
|
|||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
@@ -3397,17 +3404,20 @@
|
|||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.3.5",
|
"version": "2.3.5",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"yallist": "^3.0.0"
|
"yallist": "^3.0.0"
|
||||||
@@ -3424,6 +3434,7 @@
|
|||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "0.0.8"
|
||||||
}
|
}
|
||||||
@@ -3496,7 +3507,8 @@
|
|||||||
},
|
},
|
||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
@@ -3506,6 +3518,7 @@
|
|||||||
"once": {
|
"once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@@ -3581,7 +3594,8 @@
|
|||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"safer-buffer": {
|
"safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
@@ -3611,6 +3625,7 @@
|
|||||||
"string-width": {
|
"string-width": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "^1.0.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
@@ -3628,6 +3643,7 @@
|
|||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^2.0.0"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
@@ -3666,11 +3682,13 @@
|
|||||||
},
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -4869,6 +4887,14 @@
|
|||||||
"tmpl": "1.0.x"
|
"tmpl": "1.0.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"map-age-cleaner": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
|
||||||
|
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||||
|
"requires": {
|
||||||
|
"p-defer": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"map-cache": {
|
"map-cache": {
|
||||||
"version": "0.2.2",
|
"version": "0.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
||||||
@@ -5948,11 +5974,21 @@
|
|||||||
"os-tmpdir": "^1.0.0"
|
"os-tmpdir": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"p-defer": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
|
||||||
|
},
|
||||||
"p-finally": {
|
"p-finally": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
|
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
|
||||||
},
|
},
|
||||||
|
"p-is-promise": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
|
||||||
|
},
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||||
@@ -6691,60 +6727,192 @@
|
|||||||
"integrity": "sha512-vKAJqgkEt7HjsF0HUwgom+E0FbmFNVZNncHwby1+O8/mXlKugh+Ym6rvv+A2ASHmD5TXKohJMYT2+jYofzPORA=="
|
"integrity": "sha512-vKAJqgkEt7HjsF0HUwgom+E0FbmFNVZNncHwby1+O8/mXlKugh+Ym6rvv+A2ASHmD5TXKohJMYT2+jYofzPORA=="
|
||||||
},
|
},
|
||||||
"react-native-vector-icons": {
|
"react-native-vector-icons": {
|
||||||
"version": "5.0.0",
|
"version": "6.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.4.2.tgz",
|
||||||
"integrity": "sha512-3ZmLGhQFk5QeHuttx0tOpghXhpVMGwXzb3pVaW/M8Qj0qkcg7koVyZmoR9vABQuxFC6KbM3l6/WLYZPh2aGfuQ==",
|
"integrity": "sha512-G7Y5HksOQkCanFWKJ+fjwP38XL8tQREOSnw7jrbq28AFrrv41YtafOF4uDSDS7HxMRXs17HeEzn24OzJb63iuA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash": "^4.0.0",
|
"lodash": "^4.0.0",
|
||||||
"prop-types": "^15.5.10",
|
"prop-types": "^15.6.2",
|
||||||
"yargs": "^8.0.2"
|
"yargs": "^13.2.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"camelcase": {
|
||||||
|
"version": "5.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||||
|
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
|
||||||
|
},
|
||||||
|
"cliui": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^3.1.0",
|
||||||
|
"strip-ansi": "^5.2.0",
|
||||||
|
"wrap-ansi": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"find-up": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"get-caller-file": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
||||||
|
},
|
||||||
|
"invert-kv": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
},
|
},
|
||||||
"string-width": {
|
"lcid": {
|
||||||
"version": "2.1.1",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"invert-kv": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"locate-path": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "^3.0.0",
|
||||||
|
"path-exists": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mem": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
|
||||||
|
"requires": {
|
||||||
|
"map-age-cleaner": "^0.1.1",
|
||||||
|
"mimic-fn": "^2.0.0",
|
||||||
|
"p-is-promise": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mimic-fn": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
|
||||||
|
},
|
||||||
|
"os-locale": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
|
||||||
|
"requires": {
|
||||||
|
"execa": "^1.0.0",
|
||||||
|
"lcid": "^2.0.0",
|
||||||
|
"mem": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
|
||||||
|
"requires": {
|
||||||
|
"p-try": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-try": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
|
||||||
|
},
|
||||||
|
"require-main-filename": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
|
"requires": {
|
||||||
|
"emoji-regex": "^7.0.1",
|
||||||
"is-fullwidth-code-point": "^2.0.0",
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
"strip-ansi": "^4.0.0"
|
"strip-ansi": "^5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
"version": "4.0.0",
|
"version": "5.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^3.0.0"
|
"ansi-regex": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yargs": {
|
"wrap-ansi": {
|
||||||
"version": "8.0.2",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||||
"integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
|
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^4.1.0",
|
"ansi-styles": "^3.2.0",
|
||||||
"cliui": "^3.2.0",
|
"string-width": "^3.0.0",
|
||||||
"decamelize": "^1.1.1",
|
"strip-ansi": "^5.0.0"
|
||||||
"get-caller-file": "^1.0.1",
|
}
|
||||||
"os-locale": "^2.0.0",
|
},
|
||||||
"read-pkg-up": "^2.0.0",
|
"y18n": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "13.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
|
||||||
|
"integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^5.0.0",
|
||||||
|
"find-up": "^3.0.0",
|
||||||
|
"get-caller-file": "^2.0.1",
|
||||||
|
"os-locale": "^3.1.0",
|
||||||
"require-directory": "^2.1.1",
|
"require-directory": "^2.1.1",
|
||||||
"require-main-filename": "^1.0.1",
|
"require-main-filename": "^2.0.0",
|
||||||
"set-blocking": "^2.0.0",
|
"set-blocking": "^2.0.0",
|
||||||
"string-width": "^2.0.0",
|
"string-width": "^3.0.0",
|
||||||
"which-module": "^2.0.0",
|
"which-module": "^2.0.0",
|
||||||
"y18n": "^3.2.1",
|
"y18n": "^4.0.0",
|
||||||
"yargs-parser": "^7.0.0"
|
"yargs-parser": "^13.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-parser": {
|
||||||
|
"version": "13.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz",
|
||||||
|
"integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==",
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^5.0.0",
|
||||||
|
"decamelize": "^1.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -44,7 +44,7 @@
|
|||||||
"react-native-push-notification": "github:jfr3000/react-native-push-notification",
|
"react-native-push-notification": "github:jfr3000/react-native-push-notification",
|
||||||
"react-native-restart": "0.0.7",
|
"react-native-restart": "0.0.7",
|
||||||
"react-native-share": "^1.1.3",
|
"react-native-share": "^1.1.3",
|
||||||
"react-native-vector-icons": "^5.0.0",
|
"react-native-vector-icons": "^6.4.2",
|
||||||
"realm": "^2.22.0",
|
"realm": "^2.22.0",
|
||||||
"sympto": "^1.0.4"
|
"sympto": "^1.0.4"
|
||||||
},
|
},
|
||||||
|
|||||||
+19
-13
@@ -173,12 +173,10 @@ export default StyleSheet.create({
|
|||||||
},
|
},
|
||||||
symptomViewHeading: {
|
symptomViewHeading: {
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
fontFamily: textFontBold,
|
fontFamily: textFontBold
|
||||||
marginTop: 10
|
|
||||||
},
|
},
|
||||||
symptomInfoIcon: {
|
symptomSection: {
|
||||||
marginRight: 20,
|
marginBottom: 10
|
||||||
marginLeft: 20
|
|
||||||
},
|
},
|
||||||
symptomBoxImage: {
|
symptomBoxImage: {
|
||||||
width: 50,
|
width: 50,
|
||||||
@@ -243,9 +241,6 @@ export default StyleSheet.create({
|
|||||||
navigationArrow: {
|
navigationArrow: {
|
||||||
padding: 20
|
padding: 20
|
||||||
},
|
},
|
||||||
hiddenIcon: {
|
|
||||||
padding: 20
|
|
||||||
},
|
|
||||||
menu: {
|
menu: {
|
||||||
backgroundColor: primaryColor,
|
backgroundColor: primaryColor,
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
@@ -389,7 +384,8 @@ export default StyleSheet.create({
|
|||||||
borderLeftWidth: null
|
borderLeftWidth: null
|
||||||
},
|
},
|
||||||
page: {
|
page: {
|
||||||
marginHorizontal: 10
|
marginHorizontal: 10,
|
||||||
|
marginTop: 20
|
||||||
},
|
},
|
||||||
calendarToday: {
|
calendarToday: {
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
@@ -441,8 +437,16 @@ export default StyleSheet.create({
|
|||||||
marginTop: 20,
|
marginTop: 20,
|
||||||
color: 'grey'
|
color: 'grey'
|
||||||
},
|
},
|
||||||
infoButton: {
|
headerDeleteButton: {
|
||||||
paddingVertical: 20
|
paddingHorizontal: 20,
|
||||||
|
paddingVertical: 20,
|
||||||
|
alignItems: 'flex-end'
|
||||||
|
},
|
||||||
|
infoButtonSymptomView: {
|
||||||
|
position: 'absolute',
|
||||||
|
paddingVertical: 10,
|
||||||
|
paddingHorizontal: 10,
|
||||||
|
right: -10
|
||||||
},
|
},
|
||||||
licensePage: {
|
licensePage: {
|
||||||
paddingVertical: 20,
|
paddingVertical: 20,
|
||||||
@@ -487,8 +491,10 @@ export const iconStyles = {
|
|||||||
color: colorInActive,
|
color: colorInActive,
|
||||||
},
|
},
|
||||||
infoInHeading: {
|
infoInHeading: {
|
||||||
marginRight: 5,
|
marginRight: 5
|
||||||
color: 'black'
|
},
|
||||||
|
infoInSymptomView: {
|
||||||
|
size: 20
|
||||||
},
|
},
|
||||||
hiddenIcon: {
|
hiddenIcon: {
|
||||||
size: 20,
|
size: 20,
|
||||||
|
|||||||
Reference in New Issue
Block a user