@plusscommunities/pluss-core-app 6.0.6-beta.0 → 6.0.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/components/GenericInputSection.js +15 -1
- package/dist/module/components/GenericInputSection.js.map +1 -1
- package/dist/module/components/PlussChatMessage.js +8 -8
- package/dist/module/components/PlussChatMessage.js.map +1 -1
- package/dist/module/helper.js +26 -2
- package/dist/module/helper.js.map +1 -1
- package/package.json +1 -1
- package/src/components/GenericInputSection.js +14 -0
- package/src/components/PlussChatMessage.js +8 -6
- package/src/helper.js +30 -1
|
@@ -78,10 +78,18 @@ class GenericInputSection extends PureComponent {
|
|
|
78
78
|
containerStyle: [styles.input, this.props.containerStyle]
|
|
79
79
|
}));
|
|
80
80
|
}
|
|
81
|
+
renderError() {
|
|
82
|
+
if (this.props.showError === true && !this.props.isValid()) {
|
|
83
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
84
|
+
style: styles.errorText
|
|
85
|
+
}, this.props.errorText || 'Required');
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
81
89
|
render() {
|
|
82
90
|
return /*#__PURE__*/React.createElement(View, {
|
|
83
91
|
style: [styles.container, this.props.sectionStyle]
|
|
84
|
-
}, this.renderLabel(), this.renderInput());
|
|
92
|
+
}, this.renderLabel(), this.renderInput(), this.renderError());
|
|
85
93
|
}
|
|
86
94
|
}
|
|
87
95
|
const styles = {
|
|
@@ -146,6 +154,12 @@ const styles = {
|
|
|
146
154
|
color: TEXT_DARKEST,
|
|
147
155
|
fontFamily: 'sf-regular',
|
|
148
156
|
fontSize: 16
|
|
157
|
+
},
|
|
158
|
+
errorText: {
|
|
159
|
+
paddingTop: 4,
|
|
160
|
+
fontSize: 13,
|
|
161
|
+
fontFamily: 'sf-regular',
|
|
162
|
+
color: COLOUR_GRAPEFRUIT
|
|
149
163
|
}
|
|
150
164
|
};
|
|
151
165
|
const mapStateToProps = state => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","View","Text","TouchableOpacity","Icon","connect","GenericInput","TEXT_DARKEST","COLOUR_GREEN","COLOUR_GRAPEFRUIT","getMainBrandingColourFromState","RadioButton","GenericInputSection","renderValidationDot","props","required","createElement","style","styles","validatorDot","isValid","validatorTrue","validatorFalse","renderLabel","label","labelContainer","labelText","labelStyle","renderRadioOption","value","isActive","onChange","onPress","key","radioOption","hitSlop","top","left","bottom","right","iconSize","radioOptionButton","radioOptionText","renderInput","children","inputType","radioOptionsContainer","options","map","o","Label","Value","radioOptionVertical","optionSelector","optionSelectorText","name","type","iconStyle","optionSelectorIcon","color","colourBrandingMain","_extends","containerStyle","input","render","container","sectionStyle","flexDirection","alignItems","fontFamily","fontSize","marginTop","height","width","borderRadius","marginLeft","backgroundColor","marginRight","flex","justifyContent","paddingHorizontal","mapStateToProps","state","genericInputSection"],"sources":["GenericInputSection.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { View, Text, TouchableOpacity } from 'react-native';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { GenericInput } from './GenericInput';\nimport { TEXT_DARKEST, COLOUR_GREEN, COLOUR_GRAPEFRUIT, getMainBrandingColourFromState } from '../colours';\nimport { RadioButton } from './RadioButton';\n\nclass GenericInputSection extends PureComponent {\n renderValidationDot() {\n if (!this.props.required) {\n return null;\n }\n return <View style={[styles.validatorDot, this.props.isValid() ? styles.validatorTrue : styles.validatorFalse]} />;\n }\n\n renderLabel() {\n if (!this.props.label) {\n return null;\n }\n return (\n <View style={styles.labelContainer}>\n <Text style={[styles.labelText, this.props.labelStyle]}>{this.props.label}</Text>\n {this.renderValidationDot()}\n </View>\n );\n }\n\n renderRadioOption(label, value, isActive, onChange, style) {\n return (\n <TouchableOpacity\n onPress={() => onChange(value)}\n key={label}\n style={[styles.radioOption, style]}\n hitSlop={{ top: 8, left: 8, bottom: 8, right: 8 }}\n >\n <RadioButton onPress={() => onChange(value)} isActive={isActive} iconSize={22} style={styles.radioOptionButton} />\n <Text style={styles.radioOptionText}>{label}</Text>\n </TouchableOpacity>\n );\n }\n\n renderInput() {\n if (this.props.children) {\n return this.props.children;\n }\n if (this.props.inputType === 'toggle') {\n return (\n <View style={styles.radioOptionsContainer}>\n {this.renderRadioOption('Yes', true, this.props.value === true, this.props.onChange)}\n {this.renderRadioOption('No', false, this.props.value === false, this.props.onChange)}\n </View>\n );\n }\n if (this.props.inputType === 'radio') {\n return (\n <View>\n {this.props.options.map(o => {\n return this.renderRadioOption(o.Label, o.Value, this.props.value === o.Value, this.props.onChange, styles.radioOptionVertical);\n })}\n </View>\n );\n }\n if (this.props.inputType === 'optionSelector') {\n return (\n <TouchableOpacity onPress={this.props.onPress}>\n <View style={styles.optionSelector}>\n <Text style={styles.optionSelectorText}>{this.props.value}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.optionSelectorIcon, { color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n );\n }\n return <GenericInput {...this.props} containerStyle={[styles.input, this.props.containerStyle]} />;\n }\n\n render() {\n return (\n <View style={[styles.container, this.props.sectionStyle]}>\n {this.renderLabel()}\n {this.renderInput()}\n </View>\n );\n }\n}\n\nconst styles = {\n container: {},\n labelContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n labelText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: TEXT_DARKEST,\n },\n input: {\n marginTop: 8,\n },\n validatorDot: {\n height: 6,\n width: 6,\n borderRadius: 3,\n marginLeft: 8,\n },\n validatorTrue: {\n backgroundColor: COLOUR_GREEN,\n },\n validatorFalse: {\n backgroundColor: COLOUR_GRAPEFRUIT,\n },\n radioOptionsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 8,\n },\n radioOptionVertical: {\n marginTop: 16,\n },\n radioOption: {\n flexDirection: 'row',\n alignItems: 'center',\n marginRight: 24,\n },\n radioOptionButton: {\n marginRight: 8,\n },\n radioOptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n },\n optionSelector: {\n marginTop: 8,\n flex: 1,\n height: 36,\n backgroundColor: '#ebeff2',\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n borderRadius: 5,\n paddingHorizontal: 8,\n },\n optionSelectorText: {\n color: TEXT_DARKEST,\n fontFamily: 'sf-regular',\n fontSize: 16,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nconst genericInputSection = connect(mapStateToProps, {})(GenericInputSection);\nexport { genericInputSection as GenericInputSection };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","PureComponent","View","Text","TouchableOpacity","Icon","connect","GenericInput","TEXT_DARKEST","COLOUR_GREEN","COLOUR_GRAPEFRUIT","getMainBrandingColourFromState","RadioButton","GenericInputSection","renderValidationDot","props","required","createElement","style","styles","validatorDot","isValid","validatorTrue","validatorFalse","renderLabel","label","labelContainer","labelText","labelStyle","renderRadioOption","value","isActive","onChange","onPress","key","radioOption","hitSlop","top","left","bottom","right","iconSize","radioOptionButton","radioOptionText","renderInput","children","inputType","radioOptionsContainer","options","map","o","Label","Value","radioOptionVertical","optionSelector","optionSelectorText","name","type","iconStyle","optionSelectorIcon","color","colourBrandingMain","_extends","containerStyle","input","renderError","showError","errorText","render","container","sectionStyle","flexDirection","alignItems","fontFamily","fontSize","marginTop","height","width","borderRadius","marginLeft","backgroundColor","marginRight","flex","justifyContent","paddingHorizontal","paddingTop","mapStateToProps","state","genericInputSection"],"sources":["GenericInputSection.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { View, Text, TouchableOpacity } from 'react-native';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { GenericInput } from './GenericInput';\nimport { TEXT_DARKEST, COLOUR_GREEN, COLOUR_GRAPEFRUIT, getMainBrandingColourFromState } from '../colours';\nimport { RadioButton } from './RadioButton';\n\nclass GenericInputSection extends PureComponent {\n renderValidationDot() {\n if (!this.props.required) {\n return null;\n }\n return <View style={[styles.validatorDot, this.props.isValid() ? styles.validatorTrue : styles.validatorFalse]} />;\n }\n\n renderLabel() {\n if (!this.props.label) {\n return null;\n }\n return (\n <View style={styles.labelContainer}>\n <Text style={[styles.labelText, this.props.labelStyle]}>{this.props.label}</Text>\n {this.renderValidationDot()}\n </View>\n );\n }\n\n renderRadioOption(label, value, isActive, onChange, style) {\n return (\n <TouchableOpacity\n onPress={() => onChange(value)}\n key={label}\n style={[styles.radioOption, style]}\n hitSlop={{ top: 8, left: 8, bottom: 8, right: 8 }}\n >\n <RadioButton onPress={() => onChange(value)} isActive={isActive} iconSize={22} style={styles.radioOptionButton} />\n <Text style={styles.radioOptionText}>{label}</Text>\n </TouchableOpacity>\n );\n }\n\n renderInput() {\n if (this.props.children) {\n return this.props.children;\n }\n if (this.props.inputType === 'toggle') {\n return (\n <View style={styles.radioOptionsContainer}>\n {this.renderRadioOption('Yes', true, this.props.value === true, this.props.onChange)}\n {this.renderRadioOption('No', false, this.props.value === false, this.props.onChange)}\n </View>\n );\n }\n if (this.props.inputType === 'radio') {\n return (\n <View>\n {this.props.options.map(o => {\n return this.renderRadioOption(o.Label, o.Value, this.props.value === o.Value, this.props.onChange, styles.radioOptionVertical);\n })}\n </View>\n );\n }\n if (this.props.inputType === 'optionSelector') {\n return (\n <TouchableOpacity onPress={this.props.onPress}>\n <View style={styles.optionSelector}>\n <Text style={styles.optionSelectorText}>{this.props.value}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.optionSelectorIcon, { color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n );\n }\n return <GenericInput {...this.props} containerStyle={[styles.input, this.props.containerStyle]} />;\n }\n\n renderError() {\n if (this.props.showError === true && !this.props.isValid()) {\n return <Text style={styles.errorText}>{this.props.errorText || 'Required'}</Text>;\n }\n return null;\n }\n\n render() {\n return (\n <View style={[styles.container, this.props.sectionStyle]}>\n {this.renderLabel()}\n {this.renderInput()}\n {this.renderError()}\n </View>\n );\n }\n}\n\nconst styles = {\n container: {},\n labelContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n labelText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n color: TEXT_DARKEST,\n },\n input: {\n marginTop: 8,\n },\n validatorDot: {\n height: 6,\n width: 6,\n borderRadius: 3,\n marginLeft: 8,\n },\n validatorTrue: {\n backgroundColor: COLOUR_GREEN,\n },\n validatorFalse: {\n backgroundColor: COLOUR_GRAPEFRUIT,\n },\n radioOptionsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 8,\n },\n radioOptionVertical: {\n marginTop: 16,\n },\n radioOption: {\n flexDirection: 'row',\n alignItems: 'center',\n marginRight: 24,\n },\n radioOptionButton: {\n marginRight: 8,\n },\n radioOptionText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n },\n optionSelector: {\n marginTop: 8,\n flex: 1,\n height: 36,\n backgroundColor: '#ebeff2',\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n borderRadius: 5,\n paddingHorizontal: 8,\n },\n optionSelectorText: {\n color: TEXT_DARKEST,\n fontFamily: 'sf-regular',\n fontSize: 16,\n },\n errorText: {\n paddingTop: 4,\n fontSize: 13,\n fontFamily: 'sf-regular',\n color: COLOUR_GRAPEFRUIT,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nconst genericInputSection = connect(mapStateToProps, {})(GenericInputSection);\nexport { genericInputSection as GenericInputSection };\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,SAASC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,QAAQ,cAAc;AAC3D,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,OAAO,QAAQ,aAAa;AACrC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,EAAEC,YAAY,EAAEC,iBAAiB,EAAEC,8BAA8B,QAAQ,YAAY;AAC1G,SAASC,WAAW,QAAQ,eAAe;AAE3C,MAAMC,mBAAmB,SAASZ,aAAa,CAAC;EAC9Ca,mBAAmBA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,QAAQ,EAAE;MACxB,OAAO,IAAI;IACb;IACA,oBAAOhB,KAAA,CAAAiB,aAAA,CAACf,IAAI;MAACgB,KAAK,EAAE,CAACC,MAAM,CAACC,YAAY,EAAE,IAAI,CAACL,KAAK,CAACM,OAAO,CAAC,CAAC,GAAGF,MAAM,CAACG,aAAa,GAAGH,MAAM,CAACI,cAAc;IAAE,CAAE,CAAC;EACpH;EAEAC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC,IAAI,CAACT,KAAK,CAACU,KAAK,EAAE;MACrB,OAAO,IAAI;IACb;IACA,oBACEzB,KAAA,CAAAiB,aAAA,CAACf,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACO;IAAe,gBACjC1B,KAAA,CAAAiB,aAAA,CAACd,IAAI;MAACe,KAAK,EAAE,CAACC,MAAM,CAACQ,SAAS,EAAE,IAAI,CAACZ,KAAK,CAACa,UAAU;IAAE,GAAE,IAAI,CAACb,KAAK,CAACU,KAAY,CAAC,EAChF,IAAI,CAACX,mBAAmB,CAAC,CACtB,CAAC;EAEX;EAEAe,iBAAiBA,CAACJ,KAAK,EAAEK,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAEd,KAAK,EAAE;IACzD,oBACElB,KAAA,CAAAiB,aAAA,CAACb,gBAAgB;MACf6B,OAAO,EAAEA,CAAA,KAAMD,QAAQ,CAACF,KAAK,CAAE;MAC/BI,GAAG,EAAET,KAAM;MACXP,KAAK,EAAE,CAACC,MAAM,CAACgB,WAAW,EAAEjB,KAAK,CAAE;MACnCkB,OAAO,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,IAAI,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE;IAAE,gBAElDxC,KAAA,CAAAiB,aAAA,CAACL,WAAW;MAACqB,OAAO,EAAEA,CAAA,KAAMD,QAAQ,CAACF,KAAK,CAAE;MAACC,QAAQ,EAAEA,QAAS;MAACU,QAAQ,EAAE,EAAG;MAACvB,KAAK,EAAEC,MAAM,CAACuB;IAAkB,CAAE,CAAC,eAClH1C,KAAA,CAAAiB,aAAA,CAACd,IAAI;MAACe,KAAK,EAAEC,MAAM,CAACwB;IAAgB,GAAElB,KAAY,CAClC,CAAC;EAEvB;EAEAmB,WAAWA,CAAA,EAAG;IACZ,IAAI,IAAI,CAAC7B,KAAK,CAAC8B,QAAQ,EAAE;MACvB,OAAO,IAAI,CAAC9B,KAAK,CAAC8B,QAAQ;IAC5B;IACA,IAAI,IAAI,CAAC9B,KAAK,CAAC+B,SAAS,KAAK,QAAQ,EAAE;MACrC,oBACE9C,KAAA,CAAAiB,aAAA,CAACf,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAAC4B;MAAsB,GACvC,IAAI,CAAClB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAACd,KAAK,CAACe,KAAK,KAAK,IAAI,EAAE,IAAI,CAACf,KAAK,CAACiB,QAAQ,CAAC,EACnF,IAAI,CAACH,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAACd,KAAK,CAACe,KAAK,KAAK,KAAK,EAAE,IAAI,CAACf,KAAK,CAACiB,QAAQ,CAChF,CAAC;IAEX;IACA,IAAI,IAAI,CAACjB,KAAK,CAAC+B,SAAS,KAAK,OAAO,EAAE;MACpC,oBACE9C,KAAA,CAAAiB,aAAA,CAACf,IAAI,QACF,IAAI,CAACa,KAAK,CAACiC,OAAO,CAACC,GAAG,CAACC,CAAC,IAAI;QAC3B,OAAO,IAAI,CAACrB,iBAAiB,CAACqB,CAAC,CAACC,KAAK,EAAED,CAAC,CAACE,KAAK,EAAE,IAAI,CAACrC,KAAK,CAACe,KAAK,KAAKoB,CAAC,CAACE,KAAK,EAAE,IAAI,CAACrC,KAAK,CAACiB,QAAQ,EAAEb,MAAM,CAACkC,mBAAmB,CAAC;MAChI,CAAC,CACG,CAAC;IAEX;IACA,IAAI,IAAI,CAACtC,KAAK,CAAC+B,SAAS,KAAK,gBAAgB,EAAE;MAC7C,oBACE9C,KAAA,CAAAiB,aAAA,CAACb,gBAAgB;QAAC6B,OAAO,EAAE,IAAI,CAAClB,KAAK,CAACkB;MAAQ,gBAC5CjC,KAAA,CAAAiB,aAAA,CAACf,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAACmC;MAAe,gBACjCtD,KAAA,CAAAiB,aAAA,CAACd,IAAI;QAACe,KAAK,EAAEC,MAAM,CAACoC;MAAmB,GAAE,IAAI,CAACxC,KAAK,CAACe,KAAY,CAAC,eACjE9B,KAAA,CAAAiB,aAAA,CAACZ,IAAI;QACHmD,IAAI,EAAC,aAAa;QAClBC,IAAI,EAAC,cAAc;QACnBC,SAAS,EAAE,CAACvC,MAAM,CAACwC,kBAAkB,EAAE;UAAEC,KAAK,EAAE,IAAI,CAAC7C,KAAK,CAAC8C;QAAmB,CAAC;MAAE,CAClF,CACG,CACU,CAAC;IAEvB;IACA,oBAAO7D,KAAA,CAAAiB,aAAA,CAACV,YAAY,EAAAuD,QAAA,KAAK,IAAI,CAAC/C,KAAK;MAAEgD,cAAc,EAAE,CAAC5C,MAAM,CAAC6C,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACgD,cAAc;IAAE,EAAE,CAAC;EACpG;EAEAE,WAAWA,CAAA,EAAG;IACZ,IAAI,IAAI,CAAClD,KAAK,CAACmD,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAACnD,KAAK,CAACM,OAAO,CAAC,CAAC,EAAE;MAC1D,oBAAOrB,KAAA,CAAAiB,aAAA,CAACd,IAAI;QAACe,KAAK,EAAEC,MAAM,CAACgD;MAAU,GAAE,IAAI,CAACpD,KAAK,CAACoD,SAAS,IAAI,UAAiB,CAAC;IACnF;IACA,OAAO,IAAI;EACb;EAEAC,MAAMA,CAAA,EAAG;IACP,oBACEpE,KAAA,CAAAiB,aAAA,CAACf,IAAI;MAACgB,KAAK,EAAE,CAACC,MAAM,CAACkD,SAAS,EAAE,IAAI,CAACtD,KAAK,CAACuD,YAAY;IAAE,GACtD,IAAI,CAAC9C,WAAW,CAAC,CAAC,EAClB,IAAI,CAACoB,WAAW,CAAC,CAAC,EAClB,IAAI,CAACqB,WAAW,CAAC,CACd,CAAC;EAEX;AACF;AAEA,MAAM9C,MAAM,GAAG;EACbkD,SAAS,EAAE,CAAC,CAAC;EACb3C,cAAc,EAAE;IACd6C,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACD7C,SAAS,EAAE;IACT8C,UAAU,EAAE,aAAa;IACzBC,QAAQ,EAAE,EAAE;IACZd,KAAK,EAAEpD;EACT,CAAC;EACDwD,KAAK,EAAE;IACLW,SAAS,EAAE;EACb,CAAC;EACDvD,YAAY,EAAE;IACZwD,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE,CAAC;IACRC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE;EACd,CAAC;EACDzD,aAAa,EAAE;IACb0D,eAAe,EAAEvE;EACnB,CAAC;EACDc,cAAc,EAAE;IACdyD,eAAe,EAAEtE;EACnB,CAAC;EACDqC,qBAAqB,EAAE;IACrBwB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBG,SAAS,EAAE;EACb,CAAC;EACDtB,mBAAmB,EAAE;IACnBsB,SAAS,EAAE;EACb,CAAC;EACDxC,WAAW,EAAE;IACXoC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBS,WAAW,EAAE;EACf,CAAC;EACDvC,iBAAiB,EAAE;IACjBuC,WAAW,EAAE;EACf,CAAC;EACDtC,eAAe,EAAE;IACf8B,UAAU,EAAE,WAAW;IACvBC,QAAQ,EAAE,EAAE;IACZd,KAAK,EAAEpD;EACT,CAAC;EACD8C,cAAc,EAAE;IACdqB,SAAS,EAAE,CAAC;IACZO,IAAI,EAAE,CAAC;IACPN,MAAM,EAAE,EAAE;IACVI,eAAe,EAAE,SAAS;IAC1BR,UAAU,EAAE,QAAQ;IACpBD,aAAa,EAAE,KAAK;IACpBY,cAAc,EAAE,eAAe;IAC/BL,YAAY,EAAE,CAAC;IACfM,iBAAiB,EAAE;EACrB,CAAC;EACD7B,kBAAkB,EAAE;IAClBK,KAAK,EAAEpD,YAAY;IACnBiE,UAAU,EAAE,YAAY;IACxBC,QAAQ,EAAE;EACZ,CAAC;EACDP,SAAS,EAAE;IACTkB,UAAU,EAAE,CAAC;IACbX,QAAQ,EAAE,EAAE;IACZD,UAAU,EAAE,YAAY;IACxBb,KAAK,EAAElD;EACT;AACF,CAAC;AAED,MAAM4E,eAAe,GAAGC,KAAK,IAAI;EAC/B,OAAO;IACL1B,kBAAkB,EAAElD,8BAA8B,CAAC4E,KAAK;EAC1D,CAAC;AACH,CAAC;AAED,MAAMC,mBAAmB,GAAGlF,OAAO,CAACgF,eAAe,EAAE,CAAC,CAAC,CAAC,CAACzE,mBAAmB,CAAC;AAC7E,SAAS2E,mBAAmB,IAAI3E,mBAAmB"}
|
|
@@ -13,7 +13,7 @@ import { View, StyleSheet, Text, TouchableOpacity } from 'react-native';
|
|
|
13
13
|
import { ViewPropTypes } from 'deprecated-react-native-prop-types';
|
|
14
14
|
import _ from 'lodash';
|
|
15
15
|
import { Avatar, Bubble, SystemMessage, Day, utils } from 'react-native-gifted-chat';
|
|
16
|
-
import { TEXT_MID, TEXT_LIGHT } from '../colours';
|
|
16
|
+
import { TEXT_MID, TEXT_LIGHT, TEXT_DARK, TEXT_SUPER_LIGHT } from '../colours';
|
|
17
17
|
import { getFirstName } from '../helper';
|
|
18
18
|
import { TextStyle } from './TextStyle';
|
|
19
19
|
const isSameUser = utils.isSameUser;
|
|
@@ -117,9 +117,7 @@ export default class PlussChatMessage extends React.Component {
|
|
|
117
117
|
return /*#__PURE__*/React.createElement(View, {
|
|
118
118
|
style: styles[this.props.position].replyBubble
|
|
119
119
|
}, /*#__PURE__*/React.createElement(View, {
|
|
120
|
-
style:
|
|
121
|
-
backgroundColor: this.props.colourBrandingMain
|
|
122
|
-
}]
|
|
120
|
+
style: styles[this.props.position].replyBubbleInner
|
|
123
121
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
124
122
|
style: styles[this.props.position].replyBubbleText
|
|
125
123
|
}, (this.props.currentMessage.replyingTo.text || '').substr(0, 100))));
|
|
@@ -175,11 +173,12 @@ const styles = {
|
|
|
175
173
|
paddingBottom: 16,
|
|
176
174
|
marginBottom: -12,
|
|
177
175
|
borderRadius: 4,
|
|
178
|
-
opacity: 0.
|
|
176
|
+
opacity: 0.7,
|
|
177
|
+
backgroundColor: TEXT_SUPER_LIGHT
|
|
179
178
|
},
|
|
180
179
|
replyBubbleText: {
|
|
181
180
|
fontFamily: 'sf-regular',
|
|
182
|
-
color:
|
|
181
|
+
color: TEXT_DARK,
|
|
183
182
|
fontSize: 13,
|
|
184
183
|
textAlign: 'left'
|
|
185
184
|
},
|
|
@@ -214,11 +213,12 @@ const styles = {
|
|
|
214
213
|
paddingBottom: 16,
|
|
215
214
|
marginBottom: -12,
|
|
216
215
|
borderRadius: 4,
|
|
217
|
-
opacity: 0.
|
|
216
|
+
opacity: 0.7,
|
|
217
|
+
backgroundColor: TEXT_SUPER_LIGHT
|
|
218
218
|
},
|
|
219
219
|
replyBubbleText: {
|
|
220
220
|
fontFamily: 'sf-regular',
|
|
221
|
-
color:
|
|
221
|
+
color: TEXT_DARK,
|
|
222
222
|
fontSize: 13,
|
|
223
223
|
textAlign: 'right'
|
|
224
224
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PropTypes","React","View","StyleSheet","Text","TouchableOpacity","ViewPropTypes","_","Avatar","Bubble","SystemMessage","Day","utils","TEXT_MID","TEXT_LIGHT","getFirstName","TextStyle","isSameUser","isSameDay","PlussChatMessage","Component","getInnerComponentProps","containerStyle","props","isCurrentUser","user","_id","currentMessage","renderDay","createdAt","dayProps","createElement","renderBubble","bubbleProps","renderSystemMessage","systemMessageProps","renderAvatar","showUserAvatar","avatarProps","avatar","isEmpty","_extends","imageStyle","left","width","height","borderRadius","right","marginRight","marginLeft","renderName","nameProps","name","nameText","replyingTo","style","styles","position","renderReply","replyBubble","replyBubbleInner","backgroundColor","colourBrandingMain","replyBubbleText","text","substr","renderReplyButton","replyContainer","onPress","onPressReply","type","color","render","sameUserAsLast","previousMessage","sameUser","nextMessage","system","container","marginBottom","inverted","create","flexDirection","alignItems","justifyContent","fontFamily","fontSize","textAlign","paddingLeft","padding","paddingBottom","opacity","paddingRight","alignSelf","defaultProps","undefined","propTypes","func","bool","oneOf","object","shape"],"sources":["PlussChatMessage.js"],"sourcesContent":["/* eslint no-use-before-define: [\"error\", { \"variables\": false }], react-native/no-inline-styles: 0 */\n\n// NOTE:\n// This is a modified version of react-native-gifted-chat Message component\n\n// Original source:\n// https://github.com/FaridSafi/react-native-gifted-chat/blob/master/src/Message.js\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, StyleSheet, Text, TouchableOpacity } from 'react-native';\nimport { ViewPropTypes } from 'deprecated-react-native-prop-types';\nimport _ from 'lodash';\n\nimport { Avatar, Bubble, SystemMessage, Day, utils } from 'react-native-gifted-chat';\nimport { TEXT_MID, TEXT_LIGHT } from '../colours';\nimport { getFirstName } from '../helper';\nimport { TextStyle } from './TextStyle';\n\nconst isSameUser = utils.isSameUser;\nconst isSameDay = utils.isSameDay;\n\nexport default class PlussChatMessage extends React.Component {\n getInnerComponentProps() {\n const { containerStyle, ...props } = this.props;\n return {\n ...props,\n isSameUser,\n isSameDay,\n };\n }\n\n isCurrentUser() {\n if (this.props.user._id === this.props.currentMessage.user._id) {\n return true;\n }\n return false;\n }\n\n renderDay() {\n if (this.props.currentMessage.createdAt) {\n const dayProps = this.getInnerComponentProps();\n if (this.props.renderDay) {\n return this.props.renderDay(dayProps);\n }\n return <Day {...dayProps} />;\n }\n return null;\n }\n\n renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} />;\n }\n\n renderSystemMessage() {\n const systemMessageProps = this.getInnerComponentProps();\n if (this.props.renderSystemMessage) {\n return this.props.renderSystemMessage(systemMessageProps);\n }\n return <SystemMessage {...systemMessageProps} />;\n }\n\n renderAvatar() {\n if (this.isCurrentUser() && !this.props.showUserAvatar) {\n return null;\n }\n const avatarProps = this.getInnerComponentProps();\n const { currentMessage } = avatarProps;\n if (currentMessage.user.avatar === null || _.isEmpty(currentMessage.user.avatar)) {\n return null;\n }\n return (\n <Avatar\n {...avatarProps}\n imageStyle={{\n left: {\n width: 30,\n height: 30,\n borderRadius: 15,\n },\n right: {\n width: 30,\n height: 30,\n borderRadius: 15,\n },\n }}\n containerStyle={{\n left: {\n marginRight: 10,\n },\n right: {\n marginLeft: 10,\n },\n }}\n />\n );\n }\n\n renderName() {\n const nameProps = this.getInnerComponentProps();\n const { currentMessage } = nameProps;\n if (currentMessage.user.name === null) {\n return null;\n }\n let nameText = this.isCurrentUser() ? 'Me' : getFirstName(currentMessage.user.name);\n if (\n this.props.currentMessage &&\n this.props.currentMessage.replyingTo &&\n this.props.currentMessage.replyingTo.user &&\n !_.isEmpty(this.props.currentMessage.replyingTo.user.name)\n ) {\n nameText = `${nameText} replying to ${this.props.currentMessage.replyingTo.user.name}`;\n }\n return <Text style={[styles[this.props.position].name]}>{nameText}</Text>;\n }\n\n renderReply() {\n if (!this.props.currentMessage || !this.props.currentMessage.replyingTo) {\n return null;\n }\n return (\n <View style={styles[this.props.position].replyBubble}>\n <View style={[styles[this.props.position].replyBubbleInner, { backgroundColor: this.props.colourBrandingMain }]}>\n <Text style={styles[this.props.position].replyBubbleText}>\n {(this.props.currentMessage.replyingTo.text || '').substr(0, 100)}\n </Text>\n </View>\n </View>\n );\n }\n\n renderReplyButton() {\n return (\n <TouchableOpacity style={styles[this.props.position].replyContainer} onPress={this.props.onPressReply}>\n <TextStyle type=\"button\" style={{ color: this.props.colourBrandingMain }}>\n Reply\n </TextStyle>\n </TouchableOpacity>\n );\n }\n\n render() {\n const sameUserAsLast = isSameUser(this.props.currentMessage, this.props.previousMessage);\n const sameUser = isSameUser(this.props.currentMessage, this.props.nextMessage);\n return (\n <View>\n {this.renderDay()}\n {this.props.currentMessage.system ? (\n this.renderSystemMessage()\n ) : (\n <View>\n {sameUserAsLast ? null : this.renderName()}\n <View\n style={[\n styles[this.props.position].container,\n { marginBottom: sameUser ? 2 : 10 },\n !this.props.inverted && { marginBottom: 2 },\n this.props.containerStyle[this.props.position],\n ]}\n >\n {this.props.position === 'left' ? this.renderAvatar() : null}\n <View>\n {this.renderReply()}\n {this.renderBubble()}\n {this.renderReplyButton()}\n </View>\n {this.props.position === 'right' ? this.renderAvatar() : null}\n </View>\n </View>\n )}\n </View>\n );\n }\n}\n\nconst styles = {\n left: StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-start',\n marginLeft: 10,\n marginRight: 0,\n },\n name: {\n fontFamily: 'sf-regular',\n color: TEXT_LIGHT,\n fontSize: 14,\n textAlign: 'left',\n marginLeft: 50,\n marginBottom: 5,\n },\n replyBubble: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-start',\n paddingLeft: 20,\n },\n replyBubbleInner: {\n padding: 4,\n paddingBottom: 16,\n marginBottom: -12,\n borderRadius: 4,\n opacity: 0.5,\n },\n replyBubbleText: {\n fontFamily: 'sf-regular',\n color: TEXT_MID,\n fontSize: 13,\n textAlign: 'left',\n },\n replyContainer: {\n paddingLeft: 20,\n },\n }),\n right: StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n marginLeft: 0,\n marginRight: 10,\n },\n name: {\n fontFamily: 'sf-regular',\n color: TEXT_LIGHT,\n fontSize: 14,\n textAlign: 'right',\n marginRight: 10,\n marginBottom: 5,\n },\n replyBubble: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n paddingRight: 10,\n },\n replyBubbleInner: {\n padding: 4,\n paddingBottom: 16,\n marginBottom: -12,\n borderRadius: 4,\n opacity: 0.5,\n },\n replyBubbleText: {\n fontFamily: 'sf-regular',\n color: TEXT_MID,\n fontSize: 13,\n textAlign: 'right',\n },\n replyContainer: {\n alignSelf: 'flex-end',\n paddingRight: 10,\n },\n }),\n};\n\nPlussChatMessage.defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n renderSystemMessage: null,\n position: 'left',\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n showUserAvatar: true,\n inverted: true,\n};\n\nPlussChatMessage.propTypes = {\n renderAvatar: PropTypes.func,\n showUserAvatar: PropTypes.bool,\n renderBubble: PropTypes.func,\n renderDay: PropTypes.func,\n renderSystemMessage: PropTypes.func,\n position: PropTypes.oneOf(['left', 'right']),\n currentMessage: PropTypes.object,\n nextMessage: PropTypes.object,\n previousMessage: PropTypes.object,\n user: PropTypes.object,\n inverted: PropTypes.bool,\n containerStyle: PropTypes.shape({\n left: ViewPropTypes.style,\n right: ViewPropTypes.style,\n }),\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["PropTypes","React","View","StyleSheet","Text","TouchableOpacity","ViewPropTypes","_","Avatar","Bubble","SystemMessage","Day","utils","TEXT_MID","TEXT_LIGHT","TEXT_DARK","TEXT_SUPER_LIGHT","getFirstName","TextStyle","isSameUser","isSameDay","PlussChatMessage","Component","getInnerComponentProps","containerStyle","props","isCurrentUser","user","_id","currentMessage","renderDay","createdAt","dayProps","createElement","renderBubble","bubbleProps","renderSystemMessage","systemMessageProps","renderAvatar","showUserAvatar","avatarProps","avatar","isEmpty","_extends","imageStyle","left","width","height","borderRadius","right","marginRight","marginLeft","renderName","nameProps","name","nameText","replyingTo","style","styles","position","renderReply","replyBubble","replyBubbleInner","replyBubbleText","text","substr","renderReplyButton","replyContainer","onPress","onPressReply","type","color","colourBrandingMain","render","sameUserAsLast","previousMessage","sameUser","nextMessage","system","container","marginBottom","inverted","create","flexDirection","alignItems","justifyContent","fontFamily","fontSize","textAlign","paddingLeft","padding","paddingBottom","opacity","backgroundColor","paddingRight","alignSelf","defaultProps","undefined","propTypes","func","bool","oneOf","object","shape"],"sources":["PlussChatMessage.js"],"sourcesContent":["/* eslint no-use-before-define: [\"error\", { \"variables\": false }], react-native/no-inline-styles: 0 */\n\n// NOTE:\n// This is a modified version of react-native-gifted-chat Message component\n\n// Original source:\n// https://github.com/FaridSafi/react-native-gifted-chat/blob/master/src/Message.js\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { View, StyleSheet, Text, TouchableOpacity } from 'react-native';\nimport { ViewPropTypes } from 'deprecated-react-native-prop-types';\nimport _ from 'lodash';\n\nimport { Avatar, Bubble, SystemMessage, Day, utils } from 'react-native-gifted-chat';\nimport { TEXT_MID, TEXT_LIGHT, TEXT_DARK, TEXT_SUPER_LIGHT } from '../colours';\nimport { getFirstName } from '../helper';\nimport { TextStyle } from './TextStyle';\n\nconst isSameUser = utils.isSameUser;\nconst isSameDay = utils.isSameDay;\n\nexport default class PlussChatMessage extends React.Component {\n getInnerComponentProps() {\n const { containerStyle, ...props } = this.props;\n return {\n ...props,\n isSameUser,\n isSameDay,\n };\n }\n\n isCurrentUser() {\n if (this.props.user._id === this.props.currentMessage.user._id) {\n return true;\n }\n return false;\n }\n\n renderDay() {\n if (this.props.currentMessage.createdAt) {\n const dayProps = this.getInnerComponentProps();\n if (this.props.renderDay) {\n return this.props.renderDay(dayProps);\n }\n return <Day {...dayProps} />;\n }\n return null;\n }\n\n renderBubble() {\n const bubbleProps = this.getInnerComponentProps();\n if (this.props.renderBubble) {\n return this.props.renderBubble(bubbleProps);\n }\n return <Bubble {...bubbleProps} />;\n }\n\n renderSystemMessage() {\n const systemMessageProps = this.getInnerComponentProps();\n if (this.props.renderSystemMessage) {\n return this.props.renderSystemMessage(systemMessageProps);\n }\n return <SystemMessage {...systemMessageProps} />;\n }\n\n renderAvatar() {\n if (this.isCurrentUser() && !this.props.showUserAvatar) {\n return null;\n }\n const avatarProps = this.getInnerComponentProps();\n const { currentMessage } = avatarProps;\n if (currentMessage.user.avatar === null || _.isEmpty(currentMessage.user.avatar)) {\n return null;\n }\n return (\n <Avatar\n {...avatarProps}\n imageStyle={{\n left: {\n width: 30,\n height: 30,\n borderRadius: 15,\n },\n right: {\n width: 30,\n height: 30,\n borderRadius: 15,\n },\n }}\n containerStyle={{\n left: {\n marginRight: 10,\n },\n right: {\n marginLeft: 10,\n },\n }}\n />\n );\n }\n\n renderName() {\n const nameProps = this.getInnerComponentProps();\n const { currentMessage } = nameProps;\n if (currentMessage.user.name === null) {\n return null;\n }\n let nameText = this.isCurrentUser() ? 'Me' : getFirstName(currentMessage.user.name);\n if (\n this.props.currentMessage &&\n this.props.currentMessage.replyingTo &&\n this.props.currentMessage.replyingTo.user &&\n !_.isEmpty(this.props.currentMessage.replyingTo.user.name)\n ) {\n nameText = `${nameText} replying to ${this.props.currentMessage.replyingTo.user.name}`;\n }\n return <Text style={[styles[this.props.position].name]}>{nameText}</Text>;\n }\n\n renderReply() {\n if (!this.props.currentMessage || !this.props.currentMessage.replyingTo) {\n return null;\n }\n return (\n <View style={styles[this.props.position].replyBubble}>\n <View style={styles[this.props.position].replyBubbleInner}>\n <Text style={styles[this.props.position].replyBubbleText}>\n {(this.props.currentMessage.replyingTo.text || '').substr(0, 100)}\n </Text>\n </View>\n </View>\n );\n }\n\n renderReplyButton() {\n return (\n <TouchableOpacity style={styles[this.props.position].replyContainer} onPress={this.props.onPressReply}>\n <TextStyle type=\"button\" style={{ color: this.props.colourBrandingMain }}>\n Reply\n </TextStyle>\n </TouchableOpacity>\n );\n }\n\n render() {\n const sameUserAsLast = isSameUser(this.props.currentMessage, this.props.previousMessage);\n const sameUser = isSameUser(this.props.currentMessage, this.props.nextMessage);\n return (\n <View>\n {this.renderDay()}\n {this.props.currentMessage.system ? (\n this.renderSystemMessage()\n ) : (\n <View>\n {sameUserAsLast ? null : this.renderName()}\n <View\n style={[\n styles[this.props.position].container,\n { marginBottom: sameUser ? 2 : 10 },\n !this.props.inverted && { marginBottom: 2 },\n this.props.containerStyle[this.props.position],\n ]}\n >\n {this.props.position === 'left' ? this.renderAvatar() : null}\n <View>\n {this.renderReply()}\n {this.renderBubble()}\n {this.renderReplyButton()}\n </View>\n {this.props.position === 'right' ? this.renderAvatar() : null}\n </View>\n </View>\n )}\n </View>\n );\n }\n}\n\nconst styles = {\n left: StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-start',\n marginLeft: 10,\n marginRight: 0,\n },\n name: {\n fontFamily: 'sf-regular',\n color: TEXT_LIGHT,\n fontSize: 14,\n textAlign: 'left',\n marginLeft: 50,\n marginBottom: 5,\n },\n replyBubble: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-start',\n paddingLeft: 20,\n },\n replyBubbleInner: {\n padding: 4,\n paddingBottom: 16,\n marginBottom: -12,\n borderRadius: 4,\n opacity: 0.7,\n backgroundColor: TEXT_SUPER_LIGHT,\n },\n replyBubbleText: {\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n fontSize: 13,\n textAlign: 'left',\n },\n replyContainer: {\n paddingLeft: 20,\n },\n }),\n right: StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n marginLeft: 0,\n marginRight: 10,\n },\n name: {\n fontFamily: 'sf-regular',\n color: TEXT_LIGHT,\n fontSize: 14,\n textAlign: 'right',\n marginRight: 10,\n marginBottom: 5,\n },\n replyBubble: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n paddingRight: 10,\n },\n replyBubbleInner: {\n padding: 4,\n paddingBottom: 16,\n marginBottom: -12,\n borderRadius: 4,\n opacity: 0.7,\n backgroundColor: TEXT_SUPER_LIGHT,\n },\n replyBubbleText: {\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n fontSize: 13,\n textAlign: 'right',\n },\n replyContainer: {\n alignSelf: 'flex-end',\n paddingRight: 10,\n },\n }),\n};\n\nPlussChatMessage.defaultProps = {\n renderAvatar: undefined,\n renderBubble: null,\n renderDay: null,\n renderSystemMessage: null,\n position: 'left',\n currentMessage: {},\n nextMessage: {},\n previousMessage: {},\n user: {},\n containerStyle: {},\n showUserAvatar: true,\n inverted: true,\n};\n\nPlussChatMessage.propTypes = {\n renderAvatar: PropTypes.func,\n showUserAvatar: PropTypes.bool,\n renderBubble: PropTypes.func,\n renderDay: PropTypes.func,\n renderSystemMessage: PropTypes.func,\n position: PropTypes.oneOf(['left', 'right']),\n currentMessage: PropTypes.object,\n nextMessage: PropTypes.object,\n previousMessage: PropTypes.object,\n user: PropTypes.object,\n inverted: PropTypes.bool,\n containerStyle: PropTypes.shape({\n left: ViewPropTypes.style,\n right: ViewPropTypes.style,\n }),\n};\n"],"mappings":"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"}
|
package/dist/module/helper.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Platform, StatusBar, Dimensions, Text } from 'react-native';
|
|
3
4
|
import Constants from 'expo-constants';
|
|
4
5
|
import Config from './config';
|
|
5
6
|
import { LINEGREY } from './colours';
|
|
@@ -227,6 +228,17 @@ const getPluralOptions = (count, singular, plural) => {
|
|
|
227
228
|
}
|
|
228
229
|
return plural;
|
|
229
230
|
};
|
|
231
|
+
const isEmail = email => {
|
|
232
|
+
if (_.isEmpty(email)) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
const atpos = email.indexOf('@');
|
|
236
|
+
const dotpos = email.lastIndexOf('.');
|
|
237
|
+
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
return true;
|
|
241
|
+
};
|
|
230
242
|
const randomString = (name = '') => {
|
|
231
243
|
return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {
|
|
232
244
|
// eslint-disable-next-line
|
|
@@ -396,5 +408,17 @@ const allowComments = canComment => {
|
|
|
396
408
|
}
|
|
397
409
|
return Config.env.defaultAllowComments;
|
|
398
410
|
};
|
|
399
|
-
|
|
411
|
+
const toParagraphed = (text, style) => {
|
|
412
|
+
if (!text) {
|
|
413
|
+
return text;
|
|
414
|
+
}
|
|
415
|
+
const textSplit = text.split('\n');
|
|
416
|
+
return _.map(textSplit, (t, i) => {
|
|
417
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
418
|
+
key: `paragraph_${i}`,
|
|
419
|
+
style: style
|
|
420
|
+
}, t);
|
|
421
|
+
});
|
|
422
|
+
};
|
|
423
|
+
export { TIMESTAMP_FORMAT, DATE_FORMAT, getUrl, getAuthTokenHeader, getShadowStyle, StatusBarHeight, getStatusBarHeight, getSiteSettingFromState, getValueOrDefault, getExtension, getFileName, isVideo, get300, getThumb300, get1400, getMimeType, getCompressed, imageExists, getPluralS, getPluralOptions, isEmail, formatTime, minutesToString, randomString, generateImageName, getSite, getImageSource, getFirstName, usersToSearchResult, searchUsers, getEnabledTabsFromState, getReactions, hasReacted, isTablet, isYoutube, getYoutubeEmbed, getValidUrl, getUserPreview, allowComments, toParagraphed, isVideoUrl, detectFaces, findLandmarkRange, getScaledOffset, getSiteLevelFromState, isTVEnabled };
|
|
400
424
|
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","Platform","StatusBar","Dimensions","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","isEmpty","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments"],"sources":["helper.js"],"sourcesContent":["import _ from 'lodash';\nimport { Platform, StatusBar, Dimensions } from 'react-native';\nimport Constants from 'expo-constants';\nimport Config from './config';\nimport { LINEGREY } from './colours';\nimport { getSessionTokenAWS } from './session';\n\n// seperated files to export\nimport detectFaces from './js/images/detectFaces';\nimport findLandmarkRange from './js/images/findLandmarkRange';\nimport getScaledOffset from './js/images/getScaledOffset';\n\nimport getSiteLevelFromState from './js/site/getSiteLevelFromState';\nimport isTVEnabled from './js/site/isTVEnabled';\n\nconst TIMESTAMP_FORMAT = 'D MMM • h:mma';\nconst DATE_FORMAT = 'D MMM YYYY';\n\nconst getUrl = (baseAction, action, query) => {\n const { baseAPIUrl, baseStage } = Config.env;\n let queryPart = '';\n if (query) {\n _.keys(query).forEach((key, index) => {\n queryPart += `${index === 0 ? '?' : '&'}${key}=${encodeURIComponent(query[key])}`;\n });\n }\n return `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n return new Promise((resolve, reject) => {\n getSessionTokenAWS().then(idToken => {\n resolve(`Bearer ${idToken}`);\n });\n });\n};\n\nconst getShadowStyle = () => {\n if (Platform.OS === 'ios') {\n return {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.1,\n shadowRadius: 3,\n backgroundColor: '#fff',\n };\n }\n return {\n borderColor: LINEGREY,\n backgroundColor: '#fff',\n elevation: 8,\n };\n};\n\nconst StatusBarHeight = size => {\n return getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n return Platform.OS === 'ios' ? Constants.statusBarHeight : StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n if (state && state.user && state.user.siteSettings && !_.isUndefined(state.user.siteSettings[key])) {\n return state.user.siteSettings[key];\n }\n return defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n return !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = url => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('.');\n return fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('/');\n const name = fileSplit[fileSplit.length - 1].toLowerCase();\n if (!noExtension) {\n return name;\n }\n return name.split('.')[0];\n};\n\nconst isVideo = url => {\n const extension = getExtension(url);\n return ['mov', 'mp4'].includes(extension);\n};\n\nconst isVideoUrl = url => {\n const urlToCheck = getValidUrl(url);\n if (isVideo(urlToCheck)) {\n return true;\n }\n if (isYoutube(urlToCheck)) {\n return true;\n }\n if (isVimeo(urlToCheck)) {\n return true;\n }\n return false;\n};\n\nconst isStockImage = url => {\n return url.indexOf('https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library') !== -1;\n};\n\nconst getThumb300 = url => {\n if (!url) {\n return url;\n }\n if (isVideo(url)) {\n return 'https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg';\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url\n .replace('/uploads/', '/uploads-thumb/')\n .replace('/general/', '/general300/')\n .replace('/uploads1400/', '/uploads-thumb/')\n .replace('/general1400/', '/general300/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/1400/', '/thumb300/').replace('/uploads/', '/thumb300/');\n }\n return url;\n};\n\nconst get1400 = url => {\n if (!url) {\n return url;\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url.replace('/uploads/', '/uploads1400/').replace('/general/', '/general1400/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/1400/');\n }\n return url;\n};\n\nconst get300 = url => {\n if (!url) {\n return url;\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/300/').replace('/1400/', '/300/');\n }\n return url;\n};\n\nconst getMimeType = url => {\n const extension = getExtension(url);\n switch (extension) {\n case 'mov':\n return 'video/quicktime';\n case 'mp4':\n return 'video/mp4';\n default:\n return 'image/jpeg';\n }\n};\n\nconst getCompressed = url => {\n if (!url || typeof url !== 'string') return '';\n return url.replace('/uploads/', '/compressed/');\n};\n\nconst imageExists = url => {\n return new Promise(resolve => {\n fetch(url, { method: 'HEAD', cache: 'no-cache' })\n .then(response => {\n resolve(response.status === 200);\n })\n .catch(() => {\n resolve(false);\n });\n });\n};\n\nconst formatTime = (hours, minutes) => {\n const period = hours >= 12 ? 'pm' : 'am';\n\n // Convert 24-hour format to 12-hour format\n const adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n // Ensure minutes are two digits\n const adjustedMinutes = String(minutes).padStart(2, '0');\n\n return `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n\n if (isTimeOfDay) {\n return formatTime(hours, remainingMinutes);\n }\n\n const hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n const minutesString = remainingMinutes > 1 ? `${remainingMinutes} minutes` : `${remainingMinutes} minute`;\n\n if (hours && remainingMinutes) {\n return `${hoursString} ${minutesString}`;\n }\n if (hours) {\n return hoursString;\n }\n if (remainingMinutes) {\n return minutesString;\n }\n return '0 minutes';\n};\n\nconst getPluralS = count => {\n return count === 1 ? '' : 's';\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n if (count === 1) {\n return singular;\n }\n return plural;\n};\n\nconst randomString = (name = '') => {\n return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {\n // eslint-disable-next-line\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n\nconst generateImageName = (name, source) => {\n let result = randomString(name);\n if (source) {\n result += `.${_.last(source.split('.'))}`;\n }\n return result;\n};\n\nconst getSite = site => {\n return site === 'plussSpace' || site === 'hq' ? Config.env.preferredSite : site;\n};\n\nconst getTakeoverThumb = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getTakeoverImage = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getImageSource = (uri, isThumb) => {\n if (uri == null) return null;\n if (isThumb) return getTakeoverThumb(uri);\n return getTakeoverImage(uri);\n};\n\nconst getFirstName = name => {\n if (_.isEmpty(name)) {\n return name;\n }\n return name.split(' ')[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n let result = [];\n contacts.forEach(user => {\n result.push({\n displayName: user.displayName,\n id: user.objectID || user.id || user.ID || user.userId || user.Id,\n profilePic: user.profilePic || user.photoURL || null,\n unit: user.unit,\n });\n });\n result = _.reject(result, contact => {\n return _.includes(excludedUserIds, contact.id);\n });\n return result;\n};\n\nconst searchUsers = (source, term) => {\n if (_.isEmpty(term)) {\n return source;\n }\n return _.filter(source, user => {\n const split = user.displayName.split(' ');\n return _.some(split, part => {\n return part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n });\n });\n};\n\nconst getTabSettingsFromState = state => {\n const tabSettings = (state.user && state.user.interface) || getSiteSettingFromState(state, 'TabSettings', null);\n return tabSettings;\n};\n\nconst getEnabledTabsFromState = state => {\n const tabSettings = getTabSettingsFromState(state);\n return tabSettings ? tabSettings.filter(tab => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n return [\n {\n key: 'heart',\n icon: require('./assets/icons/reactions/heart.png'),\n },\n {\n key: 'smile',\n icon: require('./assets/icons/reactions/smile.png'),\n },\n {\n key: 'sad',\n icon: require('./assets/icons/reactions/sad.png'),\n },\n {\n key: 'party',\n icon: require('./assets/icons/reactions/party.png'),\n },\n ];\n};\n\nconst hasReacted = (reactions, userId) => {\n return _.some(reactions, r => {\n return !!r[userId];\n });\n};\n\nconst isTablet = () => {\n return Dimensions.get('screen').width > 600;\n};\n\nconst isVimeo = url => {\n if (_.isEmpty(url)) {\n return false;\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n return true;\n }\n if (url.indexOf('https://player.vimeo.com/video/') === 0) {\n return true;\n }\n};\n\nconst getVimeoEmbed = url => {\n if (_.isEmpty(url)) {\n return '';\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n const vimeoId = 'lol'; //TODO\n return `https://player.vimeo.com/video/${vimeoId}`;\n }\n return url; //TODO\n};\n\nconst isYoutube = url => {\n if (_.isUndefined(url) || _.isEmpty(url)) {\n return false;\n }\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n if (match && match[2].length === 11) {\n return true;\n }\n return false;\n};\n\nconst getYoutubeEmbed = url => {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = '') => {\n let newUrl = decodeURIComponent(url);\n newUrl = newUrl.trim().replace(/\\s/g, '');\n\n if (/^(:\\/\\/)/.test(newUrl)) {\n return `https${newUrl}`;\n }\n if (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n return `https://${newUrl}`;\n }\n\n return newUrl;\n};\n\nconst getUserPreview = user => {\n return {\n id: user.uid,\n displayName: user.displayName,\n profilePic: user.profilePic || null,\n };\n};\n\nconst allowComments = canComment => {\n if (canComment === false) {\n return false;\n }\n if (canComment === true) {\n return true;\n }\n return Config.env.defaultAllowComments;\n};\n\nexport {\n TIMESTAMP_FORMAT,\n DATE_FORMAT,\n getUrl,\n getAuthTokenHeader,\n getShadowStyle,\n StatusBarHeight,\n getStatusBarHeight,\n getSiteSettingFromState,\n getValueOrDefault,\n getExtension,\n getFileName,\n isVideo,\n get300,\n getThumb300,\n get1400,\n getMimeType,\n getCompressed,\n imageExists,\n getPluralS,\n getPluralOptions,\n formatTime,\n minutesToString,\n randomString,\n generateImageName,\n getSite,\n getImageSource,\n getFirstName,\n usersToSearchResult,\n searchUsers,\n getEnabledTabsFromState,\n getReactions,\n hasReacted,\n isTablet,\n isYoutube,\n getYoutubeEmbed,\n getValidUrl,\n getUserPreview,\n allowComments,\n isVideoUrl,\n detectFaces,\n findLandmarkRange,\n getScaledOffset,\n getSiteLevelFromState,\n isTVEnabled,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_","React","Platform","StatusBar","Dimensions","Text","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","isEmail","email","isEmpty","atpos","dotpos","lastIndexOf","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments","toParagraphed","text","style","textSplit","map","t","i","createElement"],"sources":["helper.js"],"sourcesContent":["import _ from 'lodash';\nimport React from 'react';\nimport { Platform, StatusBar, Dimensions, Text } from 'react-native';\nimport Constants from 'expo-constants';\nimport Config from './config';\nimport { LINEGREY } from './colours';\nimport { getSessionTokenAWS } from './session';\n\n// seperated files to export\nimport detectFaces from './js/images/detectFaces';\nimport findLandmarkRange from './js/images/findLandmarkRange';\nimport getScaledOffset from './js/images/getScaledOffset';\n\nimport getSiteLevelFromState from './js/site/getSiteLevelFromState';\nimport isTVEnabled from './js/site/isTVEnabled';\n\nconst TIMESTAMP_FORMAT = 'D MMM • h:mma';\nconst DATE_FORMAT = 'D MMM YYYY';\n\nconst getUrl = (baseAction, action, query) => {\n const { baseAPIUrl, baseStage } = Config.env;\n let queryPart = '';\n if (query) {\n _.keys(query).forEach((key, index) => {\n queryPart += `${index === 0 ? '?' : '&'}${key}=${encodeURIComponent(query[key])}`;\n });\n }\n return `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n return new Promise((resolve, reject) => {\n getSessionTokenAWS().then(idToken => {\n resolve(`Bearer ${idToken}`);\n });\n });\n};\n\nconst getShadowStyle = () => {\n if (Platform.OS === 'ios') {\n return {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.1,\n shadowRadius: 3,\n backgroundColor: '#fff',\n };\n }\n return {\n borderColor: LINEGREY,\n backgroundColor: '#fff',\n elevation: 8,\n };\n};\n\nconst StatusBarHeight = size => {\n return getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n return Platform.OS === 'ios' ? Constants.statusBarHeight : StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n if (state && state.user && state.user.siteSettings && !_.isUndefined(state.user.siteSettings[key])) {\n return state.user.siteSettings[key];\n }\n return defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n return !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = url => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('.');\n return fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('/');\n const name = fileSplit[fileSplit.length - 1].toLowerCase();\n if (!noExtension) {\n return name;\n }\n return name.split('.')[0];\n};\n\nconst isVideo = url => {\n const extension = getExtension(url);\n return ['mov', 'mp4'].includes(extension);\n};\n\nconst isVideoUrl = url => {\n const urlToCheck = getValidUrl(url);\n if (isVideo(urlToCheck)) {\n return true;\n }\n if (isYoutube(urlToCheck)) {\n return true;\n }\n if (isVimeo(urlToCheck)) {\n return true;\n }\n return false;\n};\n\nconst isStockImage = url => {\n return url.indexOf('https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library') !== -1;\n};\n\nconst getThumb300 = url => {\n if (!url) {\n return url;\n }\n if (isVideo(url)) {\n return 'https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg';\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url\n .replace('/uploads/', '/uploads-thumb/')\n .replace('/general/', '/general300/')\n .replace('/uploads1400/', '/uploads-thumb/')\n .replace('/general1400/', '/general300/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/1400/', '/thumb300/').replace('/uploads/', '/thumb300/');\n }\n return url;\n};\n\nconst get1400 = url => {\n if (!url) {\n return url;\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url.replace('/uploads/', '/uploads1400/').replace('/general/', '/general1400/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/1400/');\n }\n return url;\n};\n\nconst get300 = url => {\n if (!url) {\n return url;\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/300/').replace('/1400/', '/300/');\n }\n return url;\n};\n\nconst getMimeType = url => {\n const extension = getExtension(url);\n switch (extension) {\n case 'mov':\n return 'video/quicktime';\n case 'mp4':\n return 'video/mp4';\n default:\n return 'image/jpeg';\n }\n};\n\nconst getCompressed = url => {\n if (!url || typeof url !== 'string') return '';\n return url.replace('/uploads/', '/compressed/');\n};\n\nconst imageExists = url => {\n return new Promise(resolve => {\n fetch(url, { method: 'HEAD', cache: 'no-cache' })\n .then(response => {\n resolve(response.status === 200);\n })\n .catch(() => {\n resolve(false);\n });\n });\n};\n\nconst formatTime = (hours, minutes) => {\n const period = hours >= 12 ? 'pm' : 'am';\n\n // Convert 24-hour format to 12-hour format\n const adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n // Ensure minutes are two digits\n const adjustedMinutes = String(minutes).padStart(2, '0');\n\n return `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n\n if (isTimeOfDay) {\n return formatTime(hours, remainingMinutes);\n }\n\n const hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n const minutesString = remainingMinutes > 1 ? `${remainingMinutes} minutes` : `${remainingMinutes} minute`;\n\n if (hours && remainingMinutes) {\n return `${hoursString} ${minutesString}`;\n }\n if (hours) {\n return hoursString;\n }\n if (remainingMinutes) {\n return minutesString;\n }\n return '0 minutes';\n};\n\nconst getPluralS = count => {\n return count === 1 ? '' : 's';\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n if (count === 1) {\n return singular;\n }\n return plural;\n};\n\nconst isEmail = email => {\n if (_.isEmpty(email)) {\n return false;\n }\n const atpos = email.indexOf('@');\n const dotpos = email.lastIndexOf('.');\n if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {\n return false;\n }\n return true;\n};\n\nconst randomString = (name = '') => {\n return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {\n // eslint-disable-next-line\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n\nconst generateImageName = (name, source) => {\n let result = randomString(name);\n if (source) {\n result += `.${_.last(source.split('.'))}`;\n }\n return result;\n};\n\nconst getSite = site => {\n return site === 'plussSpace' || site === 'hq' ? Config.env.preferredSite : site;\n};\n\nconst getTakeoverThumb = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getTakeoverImage = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getImageSource = (uri, isThumb) => {\n if (uri == null) return null;\n if (isThumb) return getTakeoverThumb(uri);\n return getTakeoverImage(uri);\n};\n\nconst getFirstName = name => {\n if (_.isEmpty(name)) {\n return name;\n }\n return name.split(' ')[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n let result = [];\n contacts.forEach(user => {\n result.push({\n displayName: user.displayName,\n id: user.objectID || user.id || user.ID || user.userId || user.Id,\n profilePic: user.profilePic || user.photoURL || null,\n unit: user.unit,\n });\n });\n result = _.reject(result, contact => {\n return _.includes(excludedUserIds, contact.id);\n });\n return result;\n};\n\nconst searchUsers = (source, term) => {\n if (_.isEmpty(term)) {\n return source;\n }\n return _.filter(source, user => {\n const split = user.displayName.split(' ');\n return _.some(split, part => {\n return part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n });\n });\n};\n\nconst getTabSettingsFromState = state => {\n const tabSettings = (state.user && state.user.interface) || getSiteSettingFromState(state, 'TabSettings', null);\n return tabSettings;\n};\n\nconst getEnabledTabsFromState = state => {\n const tabSettings = getTabSettingsFromState(state);\n return tabSettings ? tabSettings.filter(tab => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n return [\n {\n key: 'heart',\n icon: require('./assets/icons/reactions/heart.png'),\n },\n {\n key: 'smile',\n icon: require('./assets/icons/reactions/smile.png'),\n },\n {\n key: 'sad',\n icon: require('./assets/icons/reactions/sad.png'),\n },\n {\n key: 'party',\n icon: require('./assets/icons/reactions/party.png'),\n },\n ];\n};\n\nconst hasReacted = (reactions, userId) => {\n return _.some(reactions, r => {\n return !!r[userId];\n });\n};\n\nconst isTablet = () => {\n return Dimensions.get('screen').width > 600;\n};\n\nconst isVimeo = url => {\n if (_.isEmpty(url)) {\n return false;\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n return true;\n }\n if (url.indexOf('https://player.vimeo.com/video/') === 0) {\n return true;\n }\n};\n\nconst getVimeoEmbed = url => {\n if (_.isEmpty(url)) {\n return '';\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n const vimeoId = 'lol'; //TODO\n return `https://player.vimeo.com/video/${vimeoId}`;\n }\n return url; //TODO\n};\n\nconst isYoutube = url => {\n if (_.isUndefined(url) || _.isEmpty(url)) {\n return false;\n }\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n if (match && match[2].length === 11) {\n return true;\n }\n return false;\n};\n\nconst getYoutubeEmbed = url => {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = '') => {\n let newUrl = decodeURIComponent(url);\n newUrl = newUrl.trim().replace(/\\s/g, '');\n\n if (/^(:\\/\\/)/.test(newUrl)) {\n return `https${newUrl}`;\n }\n if (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n return `https://${newUrl}`;\n }\n\n return newUrl;\n};\n\nconst getUserPreview = user => {\n return {\n id: user.uid,\n displayName: user.displayName,\n profilePic: user.profilePic || null,\n };\n};\n\nconst allowComments = canComment => {\n if (canComment === false) {\n return false;\n }\n if (canComment === true) {\n return true;\n }\n return Config.env.defaultAllowComments;\n};\n\nconst toParagraphed = (text, style) => {\n if (!text) {\n return text;\n }\n const textSplit = text.split('\\n');\n return _.map(textSplit, (t, i) => {\n return (\n <Text key={`paragraph_${i}`} style={style}>\n {t}\n </Text>\n );\n });\n};\n\nexport {\n TIMESTAMP_FORMAT,\n DATE_FORMAT,\n getUrl,\n getAuthTokenHeader,\n getShadowStyle,\n StatusBarHeight,\n getStatusBarHeight,\n getSiteSettingFromState,\n getValueOrDefault,\n getExtension,\n getFileName,\n isVideo,\n get300,\n getThumb300,\n get1400,\n getMimeType,\n getCompressed,\n imageExists,\n getPluralS,\n getPluralOptions,\n isEmail,\n formatTime,\n minutesToString,\n randomString,\n generateImageName,\n getSite,\n getImageSource,\n getFirstName,\n usersToSearchResult,\n searchUsers,\n getEnabledTabsFromState,\n getReactions,\n hasReacted,\n isTablet,\n isYoutube,\n getYoutubeEmbed,\n getValidUrl,\n getUserPreview,\n allowComments,\n toParagraphed,\n isVideoUrl,\n detectFaces,\n findLandmarkRange,\n getScaledOffset,\n getSiteLevelFromState,\n isTVEnabled,\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -78,11 +78,19 @@ class GenericInputSection extends PureComponent {
|
|
|
78
78
|
return <GenericInput {...this.props} containerStyle={[styles.input, this.props.containerStyle]} />;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
renderError() {
|
|
82
|
+
if (this.props.showError === true && !this.props.isValid()) {
|
|
83
|
+
return <Text style={styles.errorText}>{this.props.errorText || 'Required'}</Text>;
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
|
|
81
88
|
render() {
|
|
82
89
|
return (
|
|
83
90
|
<View style={[styles.container, this.props.sectionStyle]}>
|
|
84
91
|
{this.renderLabel()}
|
|
85
92
|
{this.renderInput()}
|
|
93
|
+
{this.renderError()}
|
|
86
94
|
</View>
|
|
87
95
|
);
|
|
88
96
|
}
|
|
@@ -151,6 +159,12 @@ const styles = {
|
|
|
151
159
|
fontFamily: 'sf-regular',
|
|
152
160
|
fontSize: 16,
|
|
153
161
|
},
|
|
162
|
+
errorText: {
|
|
163
|
+
paddingTop: 4,
|
|
164
|
+
fontSize: 13,
|
|
165
|
+
fontFamily: 'sf-regular',
|
|
166
|
+
color: COLOUR_GRAPEFRUIT,
|
|
167
|
+
},
|
|
154
168
|
};
|
|
155
169
|
|
|
156
170
|
const mapStateToProps = state => {
|
|
@@ -13,7 +13,7 @@ import { ViewPropTypes } from 'deprecated-react-native-prop-types';
|
|
|
13
13
|
import _ from 'lodash';
|
|
14
14
|
|
|
15
15
|
import { Avatar, Bubble, SystemMessage, Day, utils } from 'react-native-gifted-chat';
|
|
16
|
-
import { TEXT_MID, TEXT_LIGHT } from '../colours';
|
|
16
|
+
import { TEXT_MID, TEXT_LIGHT, TEXT_DARK, TEXT_SUPER_LIGHT } from '../colours';
|
|
17
17
|
import { getFirstName } from '../helper';
|
|
18
18
|
import { TextStyle } from './TextStyle';
|
|
19
19
|
|
|
@@ -124,7 +124,7 @@ export default class PlussChatMessage extends React.Component {
|
|
|
124
124
|
}
|
|
125
125
|
return (
|
|
126
126
|
<View style={styles[this.props.position].replyBubble}>
|
|
127
|
-
<View style={
|
|
127
|
+
<View style={styles[this.props.position].replyBubbleInner}>
|
|
128
128
|
<Text style={styles[this.props.position].replyBubbleText}>
|
|
129
129
|
{(this.props.currentMessage.replyingTo.text || '').substr(0, 100)}
|
|
130
130
|
</Text>
|
|
@@ -205,11 +205,12 @@ const styles = {
|
|
|
205
205
|
paddingBottom: 16,
|
|
206
206
|
marginBottom: -12,
|
|
207
207
|
borderRadius: 4,
|
|
208
|
-
opacity: 0.
|
|
208
|
+
opacity: 0.7,
|
|
209
|
+
backgroundColor: TEXT_SUPER_LIGHT,
|
|
209
210
|
},
|
|
210
211
|
replyBubbleText: {
|
|
211
212
|
fontFamily: 'sf-regular',
|
|
212
|
-
color:
|
|
213
|
+
color: TEXT_DARK,
|
|
213
214
|
fontSize: 13,
|
|
214
215
|
textAlign: 'left',
|
|
215
216
|
},
|
|
@@ -244,11 +245,12 @@ const styles = {
|
|
|
244
245
|
paddingBottom: 16,
|
|
245
246
|
marginBottom: -12,
|
|
246
247
|
borderRadius: 4,
|
|
247
|
-
opacity: 0.
|
|
248
|
+
opacity: 0.7,
|
|
249
|
+
backgroundColor: TEXT_SUPER_LIGHT,
|
|
248
250
|
},
|
|
249
251
|
replyBubbleText: {
|
|
250
252
|
fontFamily: 'sf-regular',
|
|
251
|
-
color:
|
|
253
|
+
color: TEXT_DARK,
|
|
252
254
|
fontSize: 13,
|
|
253
255
|
textAlign: 'right',
|
|
254
256
|
},
|
package/src/helper.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Platform, StatusBar, Dimensions, Text } from 'react-native';
|
|
3
4
|
import Constants from 'expo-constants';
|
|
4
5
|
import Config from './config';
|
|
5
6
|
import { LINEGREY } from './colours';
|
|
@@ -256,6 +257,18 @@ const getPluralOptions = (count, singular, plural) => {
|
|
|
256
257
|
return plural;
|
|
257
258
|
};
|
|
258
259
|
|
|
260
|
+
const isEmail = email => {
|
|
261
|
+
if (_.isEmpty(email)) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
const atpos = email.indexOf('@');
|
|
265
|
+
const dotpos = email.lastIndexOf('.');
|
|
266
|
+
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
return true;
|
|
270
|
+
};
|
|
271
|
+
|
|
259
272
|
const randomString = (name = '') => {
|
|
260
273
|
return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {
|
|
261
274
|
// eslint-disable-next-line
|
|
@@ -448,6 +461,20 @@ const allowComments = canComment => {
|
|
|
448
461
|
return Config.env.defaultAllowComments;
|
|
449
462
|
};
|
|
450
463
|
|
|
464
|
+
const toParagraphed = (text, style) => {
|
|
465
|
+
if (!text) {
|
|
466
|
+
return text;
|
|
467
|
+
}
|
|
468
|
+
const textSplit = text.split('\n');
|
|
469
|
+
return _.map(textSplit, (t, i) => {
|
|
470
|
+
return (
|
|
471
|
+
<Text key={`paragraph_${i}`} style={style}>
|
|
472
|
+
{t}
|
|
473
|
+
</Text>
|
|
474
|
+
);
|
|
475
|
+
});
|
|
476
|
+
};
|
|
477
|
+
|
|
451
478
|
export {
|
|
452
479
|
TIMESTAMP_FORMAT,
|
|
453
480
|
DATE_FORMAT,
|
|
@@ -469,6 +496,7 @@ export {
|
|
|
469
496
|
imageExists,
|
|
470
497
|
getPluralS,
|
|
471
498
|
getPluralOptions,
|
|
499
|
+
isEmail,
|
|
472
500
|
formatTime,
|
|
473
501
|
minutesToString,
|
|
474
502
|
randomString,
|
|
@@ -487,6 +515,7 @@ export {
|
|
|
487
515
|
getValidUrl,
|
|
488
516
|
getUserPreview,
|
|
489
517
|
allowComments,
|
|
518
|
+
toParagraphed,
|
|
490
519
|
isVideoUrl,
|
|
491
520
|
detectFaces,
|
|
492
521
|
findLandmarkRange,
|