@plusscommunities/pluss-webview-app 3.0.0 → 4.0.0

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.
@@ -1,24 +1,80 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import React, { Component } from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
+ import { View, Text, StyleSheet } from 'react-native';
5
6
  import { WebView } from 'react-native-webview';
6
-
7
+ import { connect } from 'react-redux';
8
+ import _ from 'lodash';
9
+ import { Colours, Components } from '../core.config';
10
+ import { Services } from '../feature.config';
7
11
  class WidgetLarge extends Component {
8
12
  constructor(props) {
9
13
  super(props);
10
-
11
14
  _defineProperty(this, "onLoadStart", () => {});
12
-
13
15
  _defineProperty(this, "onLoadEnd", () => {});
14
-
16
+ _defineProperty(this, "onGoToFullpage", () => {
17
+ const {
18
+ options
19
+ } = this.props;
20
+ Services.navigation.navigate('webViewPage', {
21
+ url: options['webUrl'],
22
+ headerTitle: this.getTitle()
23
+ });
24
+ });
25
+ _defineProperty(this, "getTitle", () => {
26
+ const {
27
+ options
28
+ } = this.props;
29
+ if (options && !_.isEmpty(options.Title)) return options.Title;
30
+ return 'Web View';
31
+ });
15
32
  this.state = {};
16
33
  }
17
-
18
34
  render() {
19
35
  const {
20
- options
36
+ options,
37
+ colourBrandingMain
21
38
  } = this.props;
39
+ if (options.isWebViewSeparatePage) {
40
+ return /*#__PURE__*/React.createElement(View, {
41
+ style: [styles.buttonContainer, {
42
+ backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2)
43
+ }]
44
+ }, /*#__PURE__*/React.createElement(View, {
45
+ style: styles.upperContainer
46
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
47
+ style: [styles.title, {
48
+ color: colourBrandingMain
49
+ }]
50
+ }, this.getTitle()))), /*#__PURE__*/React.createElement(Components.InlineButton, {
51
+ onPress: this.onGoToFullpage,
52
+ color: colourBrandingMain,
53
+ style: styles.button,
54
+ large: true
55
+ }, options.buttonText));
56
+ // return (
57
+ // <View style={styles.sectionContainer}>
58
+ // <View style={styles.sectionPadding}>
59
+ // <View style={styles.sectionHeading}>
60
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
61
+ // </View>
62
+ // </View>
63
+ // <View style={styles.buttonContainer}>
64
+ // <Components.InlineButton
65
+ // onPress={this.onGoToFullpage}
66
+ // color={colourBrandingMain}
67
+ // touchableStyle={{ paddingTop: 6 }}
68
+ // textStyle={{ color: '#fff' }}
69
+ // large
70
+ // >
71
+ // {options.buttonText}
72
+ // </Components.InlineButton>
73
+ // </View>
74
+ // </View>
75
+ // );
76
+ }
77
+
22
78
  return /*#__PURE__*/React.createElement(View, {
23
79
  style: styles.container
24
80
  }, this.props.ListHeaderComponent, /*#__PURE__*/React.createElement(WebView, {
@@ -30,9 +86,7 @@ class WidgetLarge extends Component {
30
86
  onLoadEnd: this.onLoadEnd
31
87
  }));
32
88
  }
33
-
34
89
  }
35
-
36
90
  const styles = StyleSheet.create({
37
91
  container: {
38
92
  flex: 1
@@ -41,7 +95,33 @@ const styles = StyleSheet.create({
41
95
  flex: 1,
42
96
  alignItems: 'center',
43
97
  justifyContent: 'center'
98
+ },
99
+ buttonContainer: {
100
+ width: '100%',
101
+ alignItems: 'center',
102
+ justifyContent: 'center',
103
+ padding: 16
104
+ },
105
+ upperContainer: {
106
+ flexDirection: 'row',
107
+ alignItems: 'center',
108
+ justifyContent: 'space-between'
109
+ },
110
+ title: {
111
+ fontFamily: 'sf-semibold',
112
+ fontSize: 16
113
+ },
114
+ button: {
115
+ paddingHorizontal: 40,
116
+ marginTop: 16
44
117
  }
45
118
  });
46
- export default WidgetLarge;
119
+ const mapStateToProps = state => {
120
+ return {
121
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state)
122
+ };
123
+ };
124
+ export default connect(mapStateToProps, {}, null, {
125
+ forwardRef: true
126
+ })(WidgetLarge);
47
127
  //# sourceMappingURL=WidgetLarge.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","StyleSheet","WebView","WidgetLarge","constructor","props","state","render","options","styles","container","ListHeaderComponent","uri","webContainer","onLoadStart","onLoadEnd","create","flex","alignItems","justifyContent"],"sources":["WidgetLarge.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\n\nclass WidgetLarge extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onLoadStart = () => {};\n onLoadEnd = () => {};\n\n render() {\n const { options } = this.props;\n return (\n <View style={styles.container}>\n {this.props.ListHeaderComponent}\n <WebView\n source={{ uri: options['webUrl'] }}\n style={styles.webContainer}\n onLoadStart={this.onLoadStart}\n onLoadEnd={this.onLoadEnd}\n />\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n webContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default WidgetLarge;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,IAAT,EAAeC,UAAf,QAAiC,cAAjC;AACA,SAASC,OAAT,QAAwB,sBAAxB;;AAEA,MAAMC,WAAN,SAA0BJ,SAA1B,CAAoC;EAClCK,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;;IADiB,qCAKL,MAAM,CAAE,CALH;;IAAA,mCAMP,MAAM,CAAE,CAND;;IAEjB,KAAKC,KAAL,GAAa,EAAb;EACD;;EAKDC,MAAM,GAAG;IACP,MAAM;MAAEC;IAAF,IAAc,KAAKH,KAAzB;IACA,oBACE,oBAAC,IAAD;MAAM,KAAK,EAAEI,MAAM,CAACC;IAApB,GACG,KAAKL,KAAL,CAAWM,mBADd,eAEE,oBAAC,OAAD;MACE,MAAM,EAAE;QAAEC,GAAG,EAAEJ,OAAO,CAAC,QAAD;MAAd,CADV;MAEE,KAAK,EAAEC,MAAM,CAACI,YAFhB;MAGE,WAAW,EAAE,KAAKC,WAHpB;MAIE,SAAS,EAAE,KAAKC;IAJlB,EAFF,CADF;EAWD;;AAtBiC;;AAyBpC,MAAMN,MAAM,GAAGR,UAAU,CAACe,MAAX,CAAkB;EAC/BN,SAAS,EAAE;IACTO,IAAI,EAAE;EADG,CADoB;EAI/BJ,YAAY,EAAE;IACZI,IAAI,EAAE,CADM;IAEZC,UAAU,EAAE,QAFA;IAGZC,cAAc,EAAE;EAHJ;AAJiB,CAAlB,CAAf;AAWA,eAAehB,WAAf"}
1
+ {"version":3,"names":["React","Component","View","Text","StyleSheet","WebView","connect","_","Colours","Components","Services","WidgetLarge","constructor","props","_defineProperty","options","navigation","navigate","url","headerTitle","getTitle","isEmpty","Title","state","render","colourBrandingMain","isWebViewSeparatePage","createElement","style","styles","buttonContainer","backgroundColor","hexToRGBAstring","upperContainer","title","color","InlineButton","onPress","onGoToFullpage","button","large","buttonText","container","ListHeaderComponent","source","uri","webContainer","onLoadStart","onLoadEnd","create","flex","alignItems","justifyContent","width","padding","flexDirection","fontFamily","fontSize","paddingHorizontal","marginTop","mapStateToProps","getMainBrandingColourFromState","forwardRef"],"sources":["WidgetLarge.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { Colours, Components } from '../core.config';\nimport { Services } from '../feature.config';\n\nclass WidgetLarge extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onLoadStart = () => {};\n onLoadEnd = () => {};\n\n onGoToFullpage = () => {\n const { options } = this.props;\n Services.navigation.navigate('webViewPage', { url: options['webUrl'], headerTitle: this.getTitle() });\n };\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return 'Web View';\n };\n\n render() {\n const { options, colourBrandingMain } = this.props;\n if (options.isWebViewSeparatePage) {\n return (\n <View style={[styles.buttonContainer, { backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2) }]}>\n <View style={styles.upperContainer}>\n <View>\n <Text style={[styles.title, { color: colourBrandingMain }]}>{this.getTitle()}</Text>\n </View>\n </View>\n <Components.InlineButton onPress={this.onGoToFullpage} color={colourBrandingMain} style={styles.button} large>\n {options.buttonText}\n </Components.InlineButton>\n </View>\n );\n // return (\n // <View style={styles.sectionContainer}>\n // <View style={styles.sectionPadding}>\n // <View style={styles.sectionHeading}>\n // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n // </View>\n // </View>\n // <View style={styles.buttonContainer}>\n // <Components.InlineButton\n // onPress={this.onGoToFullpage}\n // color={colourBrandingMain}\n // touchableStyle={{ paddingTop: 6 }}\n // textStyle={{ color: '#fff' }}\n // large\n // >\n // {options.buttonText}\n // </Components.InlineButton>\n // </View>\n // </View>\n // );\n }\n return (\n <View style={styles.container}>\n {this.props.ListHeaderComponent}\n <WebView\n source={{ uri: options['webUrl'] }}\n style={styles.webContainer}\n onLoadStart={this.onLoadStart}\n onLoadEnd={this.onLoadEnd}\n />\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n webContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonContainer: {\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n },\n upperContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n title: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n },\n button: {\n paddingHorizontal: 40,\n marginTop: 16,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {}, null, { forwardRef: true })(WidgetLarge);\n"],"mappings":"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"}
@@ -1,24 +1,80 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import React, { Component } from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
+ import { View, Text, StyleSheet } from 'react-native';
5
6
  import { WebView } from 'react-native-webview';
6
-
7
+ import { connect } from 'react-redux';
8
+ import _ from 'lodash';
9
+ import { Colours, Components } from '../core.config';
10
+ import { Services } from '../feature.config';
7
11
  class WidgetSmall extends Component {
8
12
  constructor(props) {
9
13
  super(props);
10
-
11
14
  _defineProperty(this, "onLoadStart", () => {});
12
-
13
15
  _defineProperty(this, "onLoadEnd", () => {});
14
-
16
+ _defineProperty(this, "onGoToFullpage", () => {
17
+ const {
18
+ options
19
+ } = this.props;
20
+ Services.navigation.navigate('webViewPage', {
21
+ url: options['webUrl'],
22
+ headerTitle: this.getTitle()
23
+ });
24
+ });
25
+ _defineProperty(this, "getTitle", () => {
26
+ const {
27
+ options
28
+ } = this.props;
29
+ if (options && !_.isEmpty(options.Title)) return options.Title;
30
+ return 'Web View';
31
+ });
15
32
  this.state = {};
16
33
  }
17
-
18
34
  render() {
19
35
  const {
20
- options
36
+ options,
37
+ colourBrandingMain
21
38
  } = this.props;
39
+ if (options.isWebViewSeparatePage) {
40
+ return /*#__PURE__*/React.createElement(View, {
41
+ style: [styles.buttonContainer, {
42
+ backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2)
43
+ }]
44
+ }, /*#__PURE__*/React.createElement(View, {
45
+ style: styles.upperContainer
46
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
47
+ style: [styles.title, {
48
+ color: colourBrandingMain
49
+ }]
50
+ }, this.getTitle()))), /*#__PURE__*/React.createElement(Components.InlineButton, {
51
+ onPress: this.onGoToFullpage,
52
+ color: colourBrandingMain,
53
+ style: styles.button,
54
+ large: true
55
+ }, options.buttonText));
56
+ // return (
57
+ // <View style={styles.sectionContainer}>
58
+ // <View style={styles.sectionPadding}>
59
+ // <View style={styles.sectionHeading}>
60
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
61
+ // </View>
62
+ // </View>
63
+ // <View style={styles.buttonContainer}>
64
+ // <Components.InlineButton
65
+ // onPress={this.onGoToFullpage}
66
+ // color={colourBrandingMain}
67
+ // touchableStyle={{ paddingTop: 6 }}
68
+ // textStyle={{ color: '#fff' }}
69
+ // large
70
+ // >
71
+ // {options.buttonText}
72
+ // </Components.InlineButton>
73
+ // </View>
74
+ // </View>
75
+ // );
76
+ }
77
+
22
78
  return /*#__PURE__*/React.createElement(View, {
23
79
  style: styles.container
24
80
  }, /*#__PURE__*/React.createElement(WebView, {
@@ -30,9 +86,7 @@ class WidgetSmall extends Component {
30
86
  onLoadEnd: this.onLoadEnd
31
87
  }));
32
88
  }
33
-
34
89
  }
35
-
36
90
  const styles = StyleSheet.create({
37
91
  container: {
38
92
  height: 300,
@@ -43,7 +97,33 @@ const styles = StyleSheet.create({
43
97
  flex: 1,
44
98
  alignItems: 'center',
45
99
  justifyContent: 'center'
100
+ },
101
+ buttonContainer: {
102
+ width: '100%',
103
+ alignItems: 'center',
104
+ justifyContent: 'center',
105
+ padding: 16
106
+ },
107
+ upperContainer: {
108
+ flexDirection: 'row',
109
+ alignItems: 'center',
110
+ justifyContent: 'space-between'
111
+ },
112
+ title: {
113
+ fontFamily: 'sf-semibold',
114
+ fontSize: 16
115
+ },
116
+ button: {
117
+ paddingHorizontal: 40,
118
+ marginTop: 16
46
119
  }
47
120
  });
48
- export default WidgetSmall;
121
+ const mapStateToProps = state => {
122
+ return {
123
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state)
124
+ };
125
+ };
126
+ export default connect(mapStateToProps, {}, null, {
127
+ forwardRef: true
128
+ })(WidgetSmall);
49
129
  //# sourceMappingURL=WidgetSmall.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","StyleSheet","WebView","WidgetSmall","constructor","props","state","render","options","styles","container","uri","webContainer","onLoadStart","onLoadEnd","create","height","paddingTop","paddingBottom","flex","alignItems","justifyContent"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onLoadStart = () => {};\n onLoadEnd = () => {};\n\n render() {\n const { options } = this.props;\n return (\n <View style={styles.container}>\n <WebView\n source={{ uri: options['webUrl'] }}\n style={styles.webContainer}\n onLoadStart={this.onLoadStart}\n onLoadEnd={this.onLoadEnd}\n />\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 300,\n paddingTop: 8,\n paddingBottom: 8,\n },\n webContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default WidgetSmall;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,IAAT,EAAeC,UAAf,QAAiC,cAAjC;AACA,SAASC,OAAT,QAAwB,sBAAxB;;AAEA,MAAMC,WAAN,SAA0BJ,SAA1B,CAAoC;EAClCK,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;;IADiB,qCAKL,MAAM,CAAE,CALH;;IAAA,mCAMP,MAAM,CAAE,CAND;;IAEjB,KAAKC,KAAL,GAAa,EAAb;EACD;;EAKDC,MAAM,GAAG;IACP,MAAM;MAAEC;IAAF,IAAc,KAAKH,KAAzB;IACA,oBACE,oBAAC,IAAD;MAAM,KAAK,EAAEI,MAAM,CAACC;IAApB,gBACE,oBAAC,OAAD;MACE,MAAM,EAAE;QAAEC,GAAG,EAAEH,OAAO,CAAC,QAAD;MAAd,CADV;MAEE,KAAK,EAAEC,MAAM,CAACG,YAFhB;MAGE,WAAW,EAAE,KAAKC,WAHpB;MAIE,SAAS,EAAE,KAAKC;IAJlB,EADF,CADF;EAUD;;AArBiC;;AAwBpC,MAAML,MAAM,GAAGR,UAAU,CAACc,MAAX,CAAkB;EAC/BL,SAAS,EAAE;IACTM,MAAM,EAAE,GADC;IAETC,UAAU,EAAE,CAFH;IAGTC,aAAa,EAAE;EAHN,CADoB;EAM/BN,YAAY,EAAE;IACZO,IAAI,EAAE,CADM;IAEZC,UAAU,EAAE,QAFA;IAGZC,cAAc,EAAE;EAHJ;AANiB,CAAlB,CAAf;AAaA,eAAelB,WAAf"}
1
+ {"version":3,"names":["React","Component","View","Text","StyleSheet","WebView","connect","_","Colours","Components","Services","WidgetSmall","constructor","props","_defineProperty","options","navigation","navigate","url","headerTitle","getTitle","isEmpty","Title","state","render","colourBrandingMain","isWebViewSeparatePage","createElement","style","styles","buttonContainer","backgroundColor","hexToRGBAstring","upperContainer","title","color","InlineButton","onPress","onGoToFullpage","button","large","buttonText","container","source","uri","webContainer","onLoadStart","onLoadEnd","create","height","paddingTop","paddingBottom","flex","alignItems","justifyContent","width","padding","flexDirection","fontFamily","fontSize","paddingHorizontal","marginTop","mapStateToProps","getMainBrandingColourFromState","forwardRef"],"sources":["WidgetSmall.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { Colours, Components } from '../core.config';\nimport { Services } from '../feature.config';\n\nclass WidgetSmall extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onLoadStart = () => {};\n onLoadEnd = () => {};\n\n onGoToFullpage = () => {\n const { options } = this.props;\n Services.navigation.navigate('webViewPage', { url: options['webUrl'], headerTitle: this.getTitle() });\n };\n\n getTitle = () => {\n const { options } = this.props;\n if (options && !_.isEmpty(options.Title)) return options.Title;\n return 'Web View';\n };\n\n render() {\n const { options, colourBrandingMain } = this.props;\n if (options.isWebViewSeparatePage) {\n return (\n <View style={[styles.buttonContainer, { backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2) }]}>\n <View style={styles.upperContainer}>\n <View>\n <Text style={[styles.title, { color: colourBrandingMain }]}>{this.getTitle()}</Text>\n </View>\n </View>\n <Components.InlineButton onPress={this.onGoToFullpage} color={colourBrandingMain} style={styles.button} large>\n {options.buttonText}\n </Components.InlineButton>\n </View>\n );\n // return (\n // <View style={styles.sectionContainer}>\n // <View style={styles.sectionPadding}>\n // <View style={styles.sectionHeading}>\n // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>\n // </View>\n // </View>\n // <View style={styles.buttonContainer}>\n // <Components.InlineButton\n // onPress={this.onGoToFullpage}\n // color={colourBrandingMain}\n // touchableStyle={{ paddingTop: 6 }}\n // textStyle={{ color: '#fff' }}\n // large\n // >\n // {options.buttonText}\n // </Components.InlineButton>\n // </View>\n // </View>\n // );\n }\n return (\n <View style={styles.container}>\n <WebView\n source={{ uri: options['webUrl'] }}\n style={styles.webContainer}\n onLoadStart={this.onLoadStart}\n onLoadEnd={this.onLoadEnd}\n />\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 300,\n paddingTop: 8,\n paddingBottom: 8,\n },\n webContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonContainer: {\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n },\n upperContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n title: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n },\n button: {\n paddingHorizontal: 40,\n marginTop: 16,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {}, null, { forwardRef: true })(WidgetSmall);\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ // import * as PlussCore from '../../pluss-core/src';
2
+ import * as PlussCore from '@plusscommunities/pluss-core-app';
3
+ const {
4
+ Apis,
5
+ Fonts,
6
+ Actions,
7
+ ActionTypes,
8
+ Config,
9
+ Components,
10
+ Styles,
11
+ Session,
12
+ Helper,
13
+ Constants,
14
+ Colours
15
+ } = PlussCore;
16
+ export { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours };
17
+ //# sourceMappingURL=core.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PlussCore","Apis","Fonts","Actions","ActionTypes","Config","Components","Styles","Session","Helper","Constants","Colours"],"sources":["core.config.js"],"sourcesContent":["// import * as PlussCore from '../../pluss-core/src';\nimport * as PlussCore from '@plusscommunities/pluss-core-app';\n\nconst { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours } = PlussCore;\nexport { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours };\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,kCAAkC;AAE7D,MAAM;EAAEC,IAAI;EAAEC,KAAK;EAAEC,OAAO;EAAEC,WAAW;EAAEC,MAAM;EAAEC,UAAU;EAAEC,MAAM;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAQ,CAAC,GAAGX,SAAS;AACxH,SAASC,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAEC,WAAW,EAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO"}
@@ -1,6 +1,11 @@
1
+ // import * as PlussCore from '../../pluss-core/src';
2
+ import * as PlussCore from '@plusscommunities/pluss-core-app';
1
3
  export const Services = {
2
4
  navigation: null
3
5
  };
6
+ export const BaseComponents = {
7
+ NotificationBell: null
8
+ };
4
9
  const FeatureConfig = {
5
10
  key: 'web',
6
11
  title: 'Web',
@@ -9,6 +14,7 @@ const FeatureConfig = {
9
14
  viewBox: '0 0 24 24',
10
15
  navigate: 'web'
11
16
  },
17
+ hideTabBar: ['webViewPage'],
12
18
  env: {
13
19
  baseStage: '',
14
20
  baseAPIUrl: '',
@@ -25,7 +31,9 @@ const FeatureConfig = {
25
31
  newEventDefaults: '',
26
32
  defaultAllowComments: true
27
33
  },
28
- init: (environment, navigation) => {
34
+ init: (environment, navigation, notificationBell) => {
35
+ BaseComponents.NotificationBell = notificationBell;
36
+ PlussCore.Config.init(environment, navigation);
29
37
  FeatureConfig.env = environment;
30
38
  Services.navigation = navigation;
31
39
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Services","navigation","FeatureConfig","key","title","gridMenu","icon","viewBox","navigate","env","baseStage","baseAPIUrl","hasGradientHeader","defaultProfileImage","tinyChatDefault","baseUploadsUrl","allowMediaDownload","allowMediaSharing","awsUploadsBucket","awsStorageBucket","preferredSite","strings","newEventDefaults","defaultAllowComments","init","environment"],"sources":["feature.config.js"],"sourcesContent":["export const Services = {\n navigation: null,\n};\n\nconst FeatureConfig = {\n key: 'web',\n title: 'Web',\n gridMenu: {\n icon: 'tab_news2',\n viewBox: '0 0 24 24',\n navigate: 'web',\n },\n env: {\n baseStage: '',\n baseAPIUrl: '',\n hasGradientHeader: false,\n defaultProfileImage: '',\n tinyChatDefault: '',\n baseUploadsUrl: '',\n allowMediaDownload: false,\n allowMediaSharing: false,\n awsUploadsBucket: '',\n awsStorageBucket: '',\n preferredSite: '',\n strings: {},\n newEventDefaults: '',\n defaultAllowComments: true,\n },\n init: (environment, navigation) => {\n FeatureConfig.env = environment;\n Services.navigation = navigation;\n },\n};\nexport default FeatureConfig;\n"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,GAAG;EACtBC,UAAU,EAAE;AADU,CAAjB;AAIP,MAAMC,aAAa,GAAG;EACpBC,GAAG,EAAE,KADe;EAEpBC,KAAK,EAAE,KAFa;EAGpBC,QAAQ,EAAE;IACRC,IAAI,EAAE,WADE;IAERC,OAAO,EAAE,WAFD;IAGRC,QAAQ,EAAE;EAHF,CAHU;EAQpBC,GAAG,EAAE;IACHC,SAAS,EAAE,EADR;IAEHC,UAAU,EAAE,EAFT;IAGHC,iBAAiB,EAAE,KAHhB;IAIHC,mBAAmB,EAAE,EAJlB;IAKHC,eAAe,EAAE,EALd;IAMHC,cAAc,EAAE,EANb;IAOHC,kBAAkB,EAAE,KAPjB;IAQHC,iBAAiB,EAAE,KARhB;IASHC,gBAAgB,EAAE,EATf;IAUHC,gBAAgB,EAAE,EAVf;IAWHC,aAAa,EAAE,EAXZ;IAYHC,OAAO,EAAE,EAZN;IAaHC,gBAAgB,EAAE,EAbf;IAcHC,oBAAoB,EAAE;EAdnB,CARe;EAwBpBC,IAAI,EAAE,CAACC,WAAD,EAAcxB,UAAd,KAA6B;IACjCC,aAAa,CAACO,GAAd,GAAoBgB,WAApB;IACAzB,QAAQ,CAACC,UAAT,GAAsBA,UAAtB;EACD;AA3BmB,CAAtB;AA6BA,eAAeC,aAAf"}
1
+ {"version":3,"names":["PlussCore","Services","navigation","BaseComponents","NotificationBell","FeatureConfig","key","title","gridMenu","icon","viewBox","navigate","hideTabBar","env","baseStage","baseAPIUrl","hasGradientHeader","defaultProfileImage","tinyChatDefault","baseUploadsUrl","allowMediaDownload","allowMediaSharing","awsUploadsBucket","awsStorageBucket","preferredSite","strings","newEventDefaults","defaultAllowComments","init","environment","notificationBell","Config"],"sources":["feature.config.js"],"sourcesContent":["// import * as PlussCore from '../../pluss-core/src';\nimport * as PlussCore from '@plusscommunities/pluss-core-app';\n\nexport const Services = {\n navigation: null,\n};\n\nexport const BaseComponents = {\n NotificationBell: null,\n};\n\nconst FeatureConfig = {\n key: 'web',\n title: 'Web',\n gridMenu: {\n icon: 'tab_news2',\n viewBox: '0 0 24 24',\n navigate: 'web',\n },\n hideTabBar: ['webViewPage'],\n env: {\n baseStage: '',\n baseAPIUrl: '',\n hasGradientHeader: false,\n defaultProfileImage: '',\n tinyChatDefault: '',\n baseUploadsUrl: '',\n allowMediaDownload: false,\n allowMediaSharing: false,\n awsUploadsBucket: '',\n awsStorageBucket: '',\n preferredSite: '',\n strings: {},\n newEventDefaults: '',\n defaultAllowComments: true,\n },\n init: (environment, navigation, notificationBell) => {\n BaseComponents.NotificationBell = notificationBell;\n PlussCore.Config.init(environment, navigation);\n FeatureConfig.env = environment;\n Services.navigation = navigation;\n },\n};\nexport default FeatureConfig;\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,kCAAkC;AAE7D,OAAO,MAAMC,QAAQ,GAAG;EACtBC,UAAU,EAAE;AACd,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG;EAC5BC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,aAAa,GAAG;EACpBC,GAAG,EAAE,KAAK;EACVC,KAAK,EAAE,KAAK;EACZC,QAAQ,EAAE;IACRC,IAAI,EAAE,WAAW;IACjBC,OAAO,EAAE,WAAW;IACpBC,QAAQ,EAAE;EACZ,CAAC;EACDC,UAAU,EAAE,CAAC,aAAa,CAAC;EAC3BC,GAAG,EAAE;IACHC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,KAAK;IACxBC,mBAAmB,EAAE,EAAE;IACvBC,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE,EAAE;IAClBC,kBAAkB,EAAE,KAAK;IACzBC,iBAAiB,EAAE,KAAK;IACxBC,gBAAgB,EAAE,EAAE;IACpBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,OAAO,EAAE,CAAC,CAAC;IACXC,gBAAgB,EAAE,EAAE;IACpBC,oBAAoB,EAAE;EACxB,CAAC;EACDC,IAAI,EAAEA,CAACC,WAAW,EAAE3B,UAAU,EAAE4B,gBAAgB,KAAK;IACnD3B,cAAc,CAACC,gBAAgB,GAAG0B,gBAAgB;IAClD9B,SAAS,CAAC+B,MAAM,CAACH,IAAI,CAACC,WAAW,EAAE3B,UAAU,CAAC;IAC9CG,aAAa,CAACQ,GAAG,GAAGgB,WAAW;IAC/B5B,QAAQ,CAACC,UAAU,GAAGA,UAAU;EAClC;AACF,CAAC;AACD,eAAeG,aAAa"}
@@ -1,6 +1,8 @@
1
1
  import WebPage from './screens/WebPage';
2
+ import WebViewPage from './screens/WebViewPage';
2
3
  export const Screens = {
3
- web: WebPage
4
+ web: WebPage,
5
+ webViewPage: WebViewPage
4
6
  };
5
7
  export { default as Config } from './feature.config';
6
8
  export { default as WidgetSmall } from './components/WidgetSmall';
@@ -1 +1 @@
1
- {"version":3,"names":["WebPage","Screens","web","default","Config","WidgetSmall","WidgetLarge"],"sources":["index.js"],"sourcesContent":["import WebPage from './screens/WebPage';\n\nexport const Screens = { web: WebPage };\nexport { default as Config } from './feature.config';\nexport { default as WidgetSmall } from './components/WidgetSmall';\nexport { default as WidgetLarge } from './components/WidgetLarge';\n"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,mBAApB;AAEA,OAAO,MAAMC,OAAO,GAAG;EAAEC,GAAG,EAAEF;AAAP,CAAhB;AACP,SAASG,OAAO,IAAIC,MAApB,QAAkC,kBAAlC;AACA,SAASD,OAAO,IAAIE,WAApB,QAAuC,0BAAvC;AACA,SAASF,OAAO,IAAIG,WAApB,QAAuC,0BAAvC"}
1
+ {"version":3,"names":["WebPage","WebViewPage","Screens","web","webViewPage","default","Config","WidgetSmall","WidgetLarge"],"sources":["index.js"],"sourcesContent":["import WebPage from './screens/WebPage';\nimport WebViewPage from './screens/WebViewPage';\n\nexport const Screens = { web: WebPage, webViewPage: WebViewPage };\nexport { default as Config } from './feature.config';\nexport { default as WidgetSmall } from './components/WidgetSmall';\nexport { default as WidgetLarge } from './components/WidgetLarge';\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,mBAAmB;AACvC,OAAOC,WAAW,MAAM,uBAAuB;AAE/C,OAAO,MAAMC,OAAO,GAAG;EAAEC,GAAG,EAAEH,OAAO;EAAEI,WAAW,EAAEH;AAAY,CAAC;AACjE,SAASI,OAAO,IAAIC,MAAM,QAAQ,kBAAkB;AACpD,SAASD,OAAO,IAAIE,WAAW,QAAQ,0BAA0B;AACjE,SAASF,OAAO,IAAIG,WAAW,QAAQ,0BAA0B"}
@@ -1,12 +1,9 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import WidgetLarge from '../components/WidgetLarge';
3
-
4
3
  class WebPage extends PureComponent {
5
4
  render() {
6
5
  return /*#__PURE__*/React.createElement(WidgetLarge, this.props);
7
6
  }
8
-
9
7
  }
10
-
11
8
  export default WebPage;
12
9
  //# sourceMappingURL=WebPage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","WidgetLarge","WebPage","render","props"],"sources":["WebPage.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport WidgetLarge from '../components/WidgetLarge';\n\nclass WebPage extends PureComponent {\n render() {\n return <WidgetLarge {...this.props} />;\n }\n}\n\nexport default WebPage;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,WAAP,MAAwB,2BAAxB;;AAEA,MAAMC,OAAN,SAAsBF,aAAtB,CAAoC;EAClCG,MAAM,GAAG;IACP,oBAAO,oBAAC,WAAD,EAAiB,KAAKC,KAAtB,CAAP;EACD;;AAHiC;;AAMpC,eAAeF,OAAf"}
1
+ {"version":3,"names":["React","PureComponent","WidgetLarge","WebPage","render","createElement","props"],"sources":["WebPage.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport WidgetLarge from '../components/WidgetLarge';\n\nclass WebPage extends PureComponent {\n render() {\n return <WidgetLarge {...this.props} />;\n }\n}\n\nexport default WebPage;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,OAAOC,WAAW,MAAM,2BAA2B;AAEnD,MAAMC,OAAO,SAASF,aAAa,CAAC;EAClCG,MAAMA,CAAA,EAAG;IACP,oBAAOJ,KAAA,CAAAK,aAAA,CAACH,WAAW,EAAK,IAAI,CAACI,KAAQ,CAAC;EACxC;AACF;AAEA,eAAeH,OAAO"}
@@ -0,0 +1,51 @@
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
+ import React, { Component } from 'react';
5
+ import { View, StyleSheet } from 'react-native';
6
+ import { WebView } from 'react-native-webview';
7
+ import { Components } from '../core.config';
8
+ import { Services } from '../feature.config';
9
+ class WebViewPage extends Component {
10
+ constructor(props) {
11
+ super(props);
12
+ _defineProperty(this, "onLoadStart", () => {});
13
+ _defineProperty(this, "onLoadEnd", () => {});
14
+ _defineProperty(this, "onPressBack", () => {
15
+ Services.navigation.goBack();
16
+ });
17
+ this.state = {};
18
+ }
19
+ render() {
20
+ const {
21
+ url,
22
+ headerTitle
23
+ } = this.props;
24
+ return /*#__PURE__*/React.createElement(View, {
25
+ style: styles.container
26
+ }, /*#__PURE__*/React.createElement(Components.Header, {
27
+ leftIcon: "angle-left",
28
+ onPressLeft: this.onPressBack,
29
+ text: headerTitle
30
+ }), /*#__PURE__*/React.createElement(WebView, {
31
+ source: {
32
+ uri: url
33
+ },
34
+ style: styles.webContainer,
35
+ onLoadStart: this.onLoadStart,
36
+ onLoadEnd: this.onLoadEnd
37
+ }));
38
+ }
39
+ }
40
+ const styles = StyleSheet.create({
41
+ container: {
42
+ flex: 1
43
+ },
44
+ webContainer: {
45
+ flex: 1,
46
+ alignItems: 'center',
47
+ justifyContent: 'center'
48
+ }
49
+ });
50
+ export default WebViewPage;
51
+ //# sourceMappingURL=WebViewPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","StyleSheet","WebView","Components","Services","WebViewPage","constructor","props","_defineProperty","navigation","goBack","state","render","url","headerTitle","createElement","style","styles","container","Header","leftIcon","onPressLeft","onPressBack","text","source","uri","webContainer","onLoadStart","onLoadEnd","create","flex","alignItems","justifyContent"],"sources":["WebViewPage.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\nimport { Components } from '../core.config';\nimport { Services } from '../feature.config';\n\nclass WebViewPage extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onLoadStart = () => {};\n onLoadEnd = () => {};\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n render() {\n const { url, headerTitle } = this.props;\n return (\n <View style={styles.container}>\n <Components.Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={headerTitle} />\n <WebView source={{ uri: url }} style={styles.webContainer} onLoadStart={this.onLoadStart} onLoadEnd={this.onLoadEnd} />\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n webContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default WebViewPage;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,QAAQ,QAAQ,mBAAmB;AAE5C,MAAMC,WAAW,SAASN,SAAS,CAAC;EAClCO,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,sBAID,MAAM,CAAC,CAAC;IAAAA,eAAA,oBACV,MAAM,CAAC,CAAC;IAAAA,eAAA,sBAEN,MAAM;MAClBJ,QAAQ,CAACK,UAAU,CAACC,MAAM,CAAC,CAAC;IAC9B,CAAC;IARC,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;EACjB;EASAC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,GAAG;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACP,KAAK;IACvC,oBACET,KAAA,CAAAiB,aAAA,CAACf,IAAI;MAACgB,KAAK,EAAEC,MAAM,CAACC;IAAU,gBAC5BpB,KAAA,CAAAiB,aAAA,CAACZ,UAAU,CAACgB,MAAM;MAACC,QAAQ,EAAC,YAAY;MAACC,WAAW,EAAE,IAAI,CAACC,WAAY;MAACC,IAAI,EAAET;IAAY,CAAE,CAAC,eAC7FhB,KAAA,CAAAiB,aAAA,CAACb,OAAO;MAACsB,MAAM,EAAE;QAAEC,GAAG,EAAEZ;MAAI,CAAE;MAACG,KAAK,EAAEC,MAAM,CAACS,YAAa;MAACC,WAAW,EAAE,IAAI,CAACA,WAAY;MAACC,SAAS,EAAE,IAAI,CAACA;IAAU,CAAE,CAClH,CAAC;EAEX;AACF;AAEA,MAAMX,MAAM,GAAGhB,UAAU,CAAC4B,MAAM,CAAC;EAC/BX,SAAS,EAAE;IACTY,IAAI,EAAE;EACR,CAAC;EACDJ,YAAY,EAAE;IACZI,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;AAEF,eAAe3B,WAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-webview-app",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Extension package to enable webview on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -10,7 +10,7 @@
10
10
  "src/"
11
11
  ],
12
12
  "scripts": {
13
- "build": "npm i && bob build",
13
+ "build": "npm i --legacy-peer-deps && bob build",
14
14
  "betapatch": "npm version prepatch --preid=beta",
15
15
  "patch": "npm version patch",
16
16
  "betaupload": "npm run build && npm publish --access public --tag beta",
@@ -21,8 +21,10 @@
21
21
  "author": "Phillip Suh",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
+ "@plusscommunities/pluss-core-app": "4.0.0",
25
+ "lodash": "^4.17.4",
24
26
  "react": "18.2.0",
25
- "react-native": "0.71.6",
27
+ "react-native": "0.71.13",
26
28
  "react-native-webview": "11.26.0"
27
29
  },
28
30
  "devDependencies": {
@@ -1,6 +1,10 @@
1
1
  import React, { Component } from 'react';
2
- import { View, StyleSheet } from 'react-native';
2
+ import { View, Text, StyleSheet } from 'react-native';
3
3
  import { WebView } from 'react-native-webview';
4
+ import { connect } from 'react-redux';
5
+ import _ from 'lodash';
6
+ import { Colours, Components } from '../core.config';
7
+ import { Services } from '../feature.config';
4
8
 
5
9
  class WidgetLarge extends Component {
6
10
  constructor(props) {
@@ -11,8 +15,53 @@ class WidgetLarge extends Component {
11
15
  onLoadStart = () => {};
12
16
  onLoadEnd = () => {};
13
17
 
14
- render() {
18
+ onGoToFullpage = () => {
19
+ const { options } = this.props;
20
+ Services.navigation.navigate('webViewPage', { url: options['webUrl'], headerTitle: this.getTitle() });
21
+ };
22
+
23
+ getTitle = () => {
15
24
  const { options } = this.props;
25
+ if (options && !_.isEmpty(options.Title)) return options.Title;
26
+ return 'Web View';
27
+ };
28
+
29
+ render() {
30
+ const { options, colourBrandingMain } = this.props;
31
+ if (options.isWebViewSeparatePage) {
32
+ return (
33
+ <View style={[styles.buttonContainer, { backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2) }]}>
34
+ <View style={styles.upperContainer}>
35
+ <View>
36
+ <Text style={[styles.title, { color: colourBrandingMain }]}>{this.getTitle()}</Text>
37
+ </View>
38
+ </View>
39
+ <Components.InlineButton onPress={this.onGoToFullpage} color={colourBrandingMain} style={styles.button} large>
40
+ {options.buttonText}
41
+ </Components.InlineButton>
42
+ </View>
43
+ );
44
+ // return (
45
+ // <View style={styles.sectionContainer}>
46
+ // <View style={styles.sectionPadding}>
47
+ // <View style={styles.sectionHeading}>
48
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
49
+ // </View>
50
+ // </View>
51
+ // <View style={styles.buttonContainer}>
52
+ // <Components.InlineButton
53
+ // onPress={this.onGoToFullpage}
54
+ // color={colourBrandingMain}
55
+ // touchableStyle={{ paddingTop: 6 }}
56
+ // textStyle={{ color: '#fff' }}
57
+ // large
58
+ // >
59
+ // {options.buttonText}
60
+ // </Components.InlineButton>
61
+ // </View>
62
+ // </View>
63
+ // );
64
+ }
16
65
  return (
17
66
  <View style={styles.container}>
18
67
  {this.props.ListHeaderComponent}
@@ -36,6 +85,31 @@ const styles = StyleSheet.create({
36
85
  alignItems: 'center',
37
86
  justifyContent: 'center',
38
87
  },
88
+ buttonContainer: {
89
+ width: '100%',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ padding: 16,
93
+ },
94
+ upperContainer: {
95
+ flexDirection: 'row',
96
+ alignItems: 'center',
97
+ justifyContent: 'space-between',
98
+ },
99
+ title: {
100
+ fontFamily: 'sf-semibold',
101
+ fontSize: 16,
102
+ },
103
+ button: {
104
+ paddingHorizontal: 40,
105
+ marginTop: 16,
106
+ },
39
107
  });
40
108
 
41
- export default WidgetLarge;
109
+ const mapStateToProps = state => {
110
+ return {
111
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
112
+ };
113
+ };
114
+
115
+ export default connect(mapStateToProps, {}, null, { forwardRef: true })(WidgetLarge);
@@ -1,6 +1,10 @@
1
1
  import React, { Component } from 'react';
2
- import { View, StyleSheet } from 'react-native';
2
+ import { View, Text, StyleSheet } from 'react-native';
3
3
  import { WebView } from 'react-native-webview';
4
+ import { connect } from 'react-redux';
5
+ import _ from 'lodash';
6
+ import { Colours, Components } from '../core.config';
7
+ import { Services } from '../feature.config';
4
8
 
5
9
  class WidgetSmall extends Component {
6
10
  constructor(props) {
@@ -11,8 +15,53 @@ class WidgetSmall extends Component {
11
15
  onLoadStart = () => {};
12
16
  onLoadEnd = () => {};
13
17
 
14
- render() {
18
+ onGoToFullpage = () => {
19
+ const { options } = this.props;
20
+ Services.navigation.navigate('webViewPage', { url: options['webUrl'], headerTitle: this.getTitle() });
21
+ };
22
+
23
+ getTitle = () => {
15
24
  const { options } = this.props;
25
+ if (options && !_.isEmpty(options.Title)) return options.Title;
26
+ return 'Web View';
27
+ };
28
+
29
+ render() {
30
+ const { options, colourBrandingMain } = this.props;
31
+ if (options.isWebViewSeparatePage) {
32
+ return (
33
+ <View style={[styles.buttonContainer, { backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2) }]}>
34
+ <View style={styles.upperContainer}>
35
+ <View>
36
+ <Text style={[styles.title, { color: colourBrandingMain }]}>{this.getTitle()}</Text>
37
+ </View>
38
+ </View>
39
+ <Components.InlineButton onPress={this.onGoToFullpage} color={colourBrandingMain} style={styles.button} large>
40
+ {options.buttonText}
41
+ </Components.InlineButton>
42
+ </View>
43
+ );
44
+ // return (
45
+ // <View style={styles.sectionContainer}>
46
+ // <View style={styles.sectionPadding}>
47
+ // <View style={styles.sectionHeading}>
48
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
49
+ // </View>
50
+ // </View>
51
+ // <View style={styles.buttonContainer}>
52
+ // <Components.InlineButton
53
+ // onPress={this.onGoToFullpage}
54
+ // color={colourBrandingMain}
55
+ // touchableStyle={{ paddingTop: 6 }}
56
+ // textStyle={{ color: '#fff' }}
57
+ // large
58
+ // >
59
+ // {options.buttonText}
60
+ // </Components.InlineButton>
61
+ // </View>
62
+ // </View>
63
+ // );
64
+ }
16
65
  return (
17
66
  <View style={styles.container}>
18
67
  <WebView
@@ -37,6 +86,31 @@ const styles = StyleSheet.create({
37
86
  alignItems: 'center',
38
87
  justifyContent: 'center',
39
88
  },
89
+ buttonContainer: {
90
+ width: '100%',
91
+ alignItems: 'center',
92
+ justifyContent: 'center',
93
+ padding: 16,
94
+ },
95
+ upperContainer: {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ justifyContent: 'space-between',
99
+ },
100
+ title: {
101
+ fontFamily: 'sf-semibold',
102
+ fontSize: 16,
103
+ },
104
+ button: {
105
+ paddingHorizontal: 40,
106
+ marginTop: 16,
107
+ },
40
108
  });
41
109
 
42
- export default WidgetSmall;
110
+ const mapStateToProps = state => {
111
+ return {
112
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
113
+ };
114
+ };
115
+
116
+ export default connect(mapStateToProps, {}, null, { forwardRef: true })(WidgetSmall);
@@ -0,0 +1,5 @@
1
+ // import * as PlussCore from '../../pluss-core/src';
2
+ import * as PlussCore from '@plusscommunities/pluss-core-app';
3
+
4
+ const { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours } = PlussCore;
5
+ export { Apis, Fonts, Actions, ActionTypes, Config, Components, Styles, Session, Helper, Constants, Colours };
@@ -1,7 +1,14 @@
1
+ // import * as PlussCore from '../../pluss-core/src';
2
+ import * as PlussCore from '@plusscommunities/pluss-core-app';
3
+
1
4
  export const Services = {
2
5
  navigation: null,
3
6
  };
4
7
 
8
+ export const BaseComponents = {
9
+ NotificationBell: null,
10
+ };
11
+
5
12
  const FeatureConfig = {
6
13
  key: 'web',
7
14
  title: 'Web',
@@ -10,6 +17,7 @@ const FeatureConfig = {
10
17
  viewBox: '0 0 24 24',
11
18
  navigate: 'web',
12
19
  },
20
+ hideTabBar: ['webViewPage'],
13
21
  env: {
14
22
  baseStage: '',
15
23
  baseAPIUrl: '',
@@ -26,7 +34,9 @@ const FeatureConfig = {
26
34
  newEventDefaults: '',
27
35
  defaultAllowComments: true,
28
36
  },
29
- init: (environment, navigation) => {
37
+ init: (environment, navigation, notificationBell) => {
38
+ BaseComponents.NotificationBell = notificationBell;
39
+ PlussCore.Config.init(environment, navigation);
30
40
  FeatureConfig.env = environment;
31
41
  Services.navigation = navigation;
32
42
  },
package/src/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import WebPage from './screens/WebPage';
2
+ import WebViewPage from './screens/WebViewPage';
2
3
 
3
- export const Screens = { web: WebPage };
4
+ export const Screens = { web: WebPage, webViewPage: WebViewPage };
4
5
  export { default as Config } from './feature.config';
5
6
  export { default as WidgetSmall } from './components/WidgetSmall';
6
7
  export { default as WidgetLarge } from './components/WidgetLarge';
@@ -0,0 +1,42 @@
1
+ import React, { Component } from 'react';
2
+ import { View, StyleSheet } from 'react-native';
3
+ import { WebView } from 'react-native-webview';
4
+ import { Components } from '../core.config';
5
+ import { Services } from '../feature.config';
6
+
7
+ class WebViewPage extends Component {
8
+ constructor(props) {
9
+ super(props);
10
+ this.state = {};
11
+ }
12
+
13
+ onLoadStart = () => {};
14
+ onLoadEnd = () => {};
15
+
16
+ onPressBack = () => {
17
+ Services.navigation.goBack();
18
+ };
19
+
20
+ render() {
21
+ const { url, headerTitle } = this.props;
22
+ return (
23
+ <View style={styles.container}>
24
+ <Components.Header leftIcon="angle-left" onPressLeft={this.onPressBack} text={headerTitle} />
25
+ <WebView source={{ uri: url }} style={styles.webContainer} onLoadStart={this.onLoadStart} onLoadEnd={this.onLoadEnd} />
26
+ </View>
27
+ );
28
+ }
29
+ }
30
+
31
+ const styles = StyleSheet.create({
32
+ container: {
33
+ flex: 1,
34
+ },
35
+ webContainer: {
36
+ flex: 1,
37
+ alignItems: 'center',
38
+ justifyContent: 'center',
39
+ },
40
+ });
41
+
42
+ export default WebViewPage;