@plusscommunities/pluss-webview-app 3.0.0 → 3.0.1

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,8 +1,12 @@
1
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
2
 
3
3
  import React, { Component } from 'react';
4
- import { View, StyleSheet } from 'react-native';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
5
  import { WebView } from 'react-native-webview';
6
+ import { connect } from 'react-redux';
7
+ import _ from 'lodash';
8
+ import { Colours, Components } from '../core.config';
9
+ import { Services } from '../feature.config';
6
10
 
7
11
  class WidgetLarge extends Component {
8
12
  constructor(props) {
@@ -12,13 +16,71 @@ class WidgetLarge extends Component {
12
16
 
13
17
  _defineProperty(this, "onLoadEnd", () => {});
14
18
 
19
+ _defineProperty(this, "onGoToFullpage", () => {
20
+ const {
21
+ options
22
+ } = this.props;
23
+ Services.navigation.navigate('webViewPage', {
24
+ url: options['webUrl'],
25
+ headerTitle: this.getTitle()
26
+ });
27
+ });
28
+
29
+ _defineProperty(this, "getTitle", () => {
30
+ const {
31
+ options
32
+ } = this.props;
33
+ if (options && !_.isEmpty(options.Title)) return options.Title;
34
+ return 'Web View';
35
+ });
36
+
15
37
  this.state = {};
16
38
  }
17
39
 
18
40
  render() {
19
41
  const {
20
- options
42
+ options,
43
+ colourBrandingMain
21
44
  } = this.props;
45
+
46
+ if (options.isWebViewSeparatePage) {
47
+ return /*#__PURE__*/React.createElement(View, {
48
+ style: [styles.buttonContainer, {
49
+ backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2)
50
+ }]
51
+ }, /*#__PURE__*/React.createElement(View, {
52
+ style: styles.upperContainer
53
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
54
+ style: [styles.title, {
55
+ color: colourBrandingMain
56
+ }]
57
+ }, this.getTitle()))), /*#__PURE__*/React.createElement(Components.InlineButton, {
58
+ onPress: this.onGoToFullpage,
59
+ color: colourBrandingMain,
60
+ style: styles.button,
61
+ large: true
62
+ }, options.buttonText)); // return (
63
+ // <View style={styles.sectionContainer}>
64
+ // <View style={styles.sectionPadding}>
65
+ // <View style={styles.sectionHeading}>
66
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
67
+ // </View>
68
+ // </View>
69
+ // <View style={styles.buttonContainer}>
70
+ // <Components.InlineButton
71
+ // onPress={this.onGoToFullpage}
72
+ // color={colourBrandingMain}
73
+ // touchableStyle={{ paddingTop: 6 }}
74
+ // textStyle={{ color: '#fff' }}
75
+ // large
76
+ // >
77
+ // {options.buttonText}
78
+ // </Components.InlineButton>
79
+ // </View>
80
+ // </View>
81
+ // );
82
+ }
83
+
22
84
  return /*#__PURE__*/React.createElement(View, {
23
85
  style: styles.container
24
86
  }, this.props.ListHeaderComponent, /*#__PURE__*/React.createElement(WebView, {
@@ -41,7 +103,35 @@ const styles = StyleSheet.create({
41
103
  flex: 1,
42
104
  alignItems: 'center',
43
105
  justifyContent: 'center'
106
+ },
107
+ buttonContainer: {
108
+ width: '100%',
109
+ alignItems: 'center',
110
+ justifyContent: 'center',
111
+ padding: 16
112
+ },
113
+ upperContainer: {
114
+ flexDirection: 'row',
115
+ alignItems: 'center',
116
+ justifyContent: 'space-between'
117
+ },
118
+ title: {
119
+ fontFamily: 'sf-semibold',
120
+ fontSize: 16
121
+ },
122
+ button: {
123
+ paddingHorizontal: 40,
124
+ marginTop: 16
44
125
  }
45
126
  });
46
- export default WidgetLarge;
127
+
128
+ const mapStateToProps = state => {
129
+ return {
130
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state)
131
+ };
132
+ };
133
+
134
+ export default connect(mapStateToProps, {}, null, {
135
+ forwardRef: true
136
+ })(WidgetLarge);
47
137
  //# 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","options","navigation","navigate","url","headerTitle","getTitle","isEmpty","Title","state","render","colourBrandingMain","isWebViewSeparatePage","styles","buttonContainer","backgroundColor","hexToRGBAstring","upperContainer","title","color","onGoToFullpage","button","buttonText","container","ListHeaderComponent","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,8 +1,12 @@
1
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
2
 
3
3
  import React, { Component } from 'react';
4
- import { View, StyleSheet } from 'react-native';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
5
  import { WebView } from 'react-native-webview';
6
+ import { connect } from 'react-redux';
7
+ import _ from 'lodash';
8
+ import { Colours, Components } from '../core.config';
9
+ import { Services } from '../feature.config';
6
10
 
7
11
  class WidgetSmall extends Component {
8
12
  constructor(props) {
@@ -12,13 +16,71 @@ class WidgetSmall extends Component {
12
16
 
13
17
  _defineProperty(this, "onLoadEnd", () => {});
14
18
 
19
+ _defineProperty(this, "onGoToFullpage", () => {
20
+ const {
21
+ options
22
+ } = this.props;
23
+ Services.navigation.navigate('webViewPage', {
24
+ url: options['webUrl'],
25
+ headerTitle: this.getTitle()
26
+ });
27
+ });
28
+
29
+ _defineProperty(this, "getTitle", () => {
30
+ const {
31
+ options
32
+ } = this.props;
33
+ if (options && !_.isEmpty(options.Title)) return options.Title;
34
+ return 'Web View';
35
+ });
36
+
15
37
  this.state = {};
16
38
  }
17
39
 
18
40
  render() {
19
41
  const {
20
- options
42
+ options,
43
+ colourBrandingMain
21
44
  } = this.props;
45
+
46
+ if (options.isWebViewSeparatePage) {
47
+ return /*#__PURE__*/React.createElement(View, {
48
+ style: [styles.buttonContainer, {
49
+ backgroundColor: Colours.hexToRGBAstring(colourBrandingMain, 0.2)
50
+ }]
51
+ }, /*#__PURE__*/React.createElement(View, {
52
+ style: styles.upperContainer
53
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
54
+ style: [styles.title, {
55
+ color: colourBrandingMain
56
+ }]
57
+ }, this.getTitle()))), /*#__PURE__*/React.createElement(Components.InlineButton, {
58
+ onPress: this.onGoToFullpage,
59
+ color: colourBrandingMain,
60
+ style: styles.button,
61
+ large: true
62
+ }, options.buttonText)); // return (
63
+ // <View style={styles.sectionContainer}>
64
+ // <View style={styles.sectionPadding}>
65
+ // <View style={styles.sectionHeading}>
66
+ // <Text style={styles.sectionTitle}>{this.getTitle()}</Text>
67
+ // </View>
68
+ // </View>
69
+ // <View style={styles.buttonContainer}>
70
+ // <Components.InlineButton
71
+ // onPress={this.onGoToFullpage}
72
+ // color={colourBrandingMain}
73
+ // touchableStyle={{ paddingTop: 6 }}
74
+ // textStyle={{ color: '#fff' }}
75
+ // large
76
+ // >
77
+ // {options.buttonText}
78
+ // </Components.InlineButton>
79
+ // </View>
80
+ // </View>
81
+ // );
82
+ }
83
+
22
84
  return /*#__PURE__*/React.createElement(View, {
23
85
  style: styles.container
24
86
  }, /*#__PURE__*/React.createElement(WebView, {
@@ -43,7 +105,35 @@ const styles = StyleSheet.create({
43
105
  flex: 1,
44
106
  alignItems: 'center',
45
107
  justifyContent: 'center'
108
+ },
109
+ buttonContainer: {
110
+ width: '100%',
111
+ alignItems: 'center',
112
+ justifyContent: 'center',
113
+ padding: 16
114
+ },
115
+ upperContainer: {
116
+ flexDirection: 'row',
117
+ alignItems: 'center',
118
+ justifyContent: 'space-between'
119
+ },
120
+ title: {
121
+ fontFamily: 'sf-semibold',
122
+ fontSize: 16
123
+ },
124
+ button: {
125
+ paddingHorizontal: 40,
126
+ marginTop: 16
46
127
  }
47
128
  });
48
- export default WidgetSmall;
129
+
130
+ const mapStateToProps = state => {
131
+ return {
132
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state)
133
+ };
134
+ };
135
+
136
+ export default connect(mapStateToProps, {}, null, {
137
+ forwardRef: true
138
+ })(WidgetSmall);
49
139
  //# 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","options","navigation","navigate","url","headerTitle","getTitle","isEmpty","Title","state","render","colourBrandingMain","isWebViewSeparatePage","styles","buttonContainer","backgroundColor","hexToRGBAstring","upperContainer","title","color","onGoToFullpage","button","buttonText","container","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,SAAZ,MAA2B,kCAA3B;AAEA,MAAM;EAAEC,IAAF;EAAQC,KAAR;EAAeC,OAAf;EAAwBC,WAAxB;EAAqCC,MAArC;EAA6CC,UAA7C;EAAyDC,MAAzD;EAAiEC,OAAjE;EAA0EC,MAA1E;EAAkFC,SAAlF;EAA6FC;AAA7F,IAAyGX,SAA/G;AACA,SAASC,IAAT,EAAeC,KAAf,EAAsBC,OAAtB,EAA+BC,WAA/B,EAA4CC,MAA5C,EAAoDC,UAApD,EAAgEC,MAAhE,EAAwEC,OAAxE,EAAiFC,MAAjF,EAAyFC,SAAzF,EAAoGC,OAApG"}
@@ -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,SAAZ,MAA2B,kCAA3B;AAEA,OAAO,MAAMC,QAAQ,GAAG;EACtBC,UAAU,EAAE;AADU,CAAjB;AAIP,OAAO,MAAMC,cAAc,GAAG;EAC5BC,gBAAgB,EAAE;AADU,CAAvB;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,UAAU,EAAE,CAAC,aAAD,CARQ;EASpBC,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,CATe;EAyBpBC,IAAI,EAAE,CAACC,WAAD,EAAc3B,UAAd,EAA0B4B,gBAA1B,KAA+C;IACnD3B,cAAc,CAACC,gBAAf,GAAkC0B,gBAAlC;IACA9B,SAAS,CAAC+B,MAAV,CAAiBH,IAAjB,CAAsBC,WAAtB,EAAmC3B,UAAnC;IACAG,aAAa,CAACQ,GAAd,GAAoBgB,WAApB;IACA5B,QAAQ,CAACC,UAAT,GAAsBA,UAAtB;EACD;AA9BmB,CAAtB;AAgCA,eAAeG,aAAf"}
@@ -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,OAAP,MAAoB,mBAApB;AACA,OAAOC,WAAP,MAAwB,uBAAxB;AAEA,OAAO,MAAMC,OAAO,GAAG;EAAEC,GAAG,EAAEH,OAAP;EAAgBI,WAAW,EAAEH;AAA7B,CAAhB;AACP,SAASI,OAAO,IAAIC,MAApB,QAAkC,kBAAlC;AACA,SAASD,OAAO,IAAIE,WAApB,QAAuC,0BAAvC;AACA,SAASF,OAAO,IAAIG,WAApB,QAAuC,0BAAvC"}
@@ -0,0 +1,58 @@
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
+
3
+ import React, { Component } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { WebView } from 'react-native-webview';
6
+ import { Components } from '../core.config';
7
+ import { Services } from '../feature.config';
8
+
9
+ class WebViewPage extends Component {
10
+ constructor(props) {
11
+ super(props);
12
+
13
+ _defineProperty(this, "onLoadStart", () => {});
14
+
15
+ _defineProperty(this, "onLoadEnd", () => {});
16
+
17
+ _defineProperty(this, "onPressBack", () => {
18
+ Services.navigation.goBack();
19
+ });
20
+
21
+ this.state = {};
22
+ }
23
+
24
+ render() {
25
+ const {
26
+ url,
27
+ headerTitle
28
+ } = this.props;
29
+ return /*#__PURE__*/React.createElement(View, {
30
+ style: styles.container
31
+ }, /*#__PURE__*/React.createElement(Components.Header, {
32
+ leftIcon: "angle-left",
33
+ onPressLeft: this.onPressBack,
34
+ text: headerTitle
35
+ }), /*#__PURE__*/React.createElement(WebView, {
36
+ source: {
37
+ uri: url
38
+ },
39
+ style: styles.webContainer,
40
+ onLoadStart: this.onLoadStart,
41
+ onLoadEnd: this.onLoadEnd
42
+ }));
43
+ }
44
+
45
+ }
46
+
47
+ const styles = StyleSheet.create({
48
+ container: {
49
+ flex: 1
50
+ },
51
+ webContainer: {
52
+ flex: 1,
53
+ alignItems: 'center',
54
+ justifyContent: 'center'
55
+ }
56
+ });
57
+ export default WebViewPage;
58
+ //# sourceMappingURL=WebViewPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","StyleSheet","WebView","Components","Services","WebViewPage","constructor","props","navigation","goBack","state","render","url","headerTitle","styles","container","onPressBack","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,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,IAAT,EAAeC,UAAf,QAAiC,cAAjC;AACA,SAASC,OAAT,QAAwB,sBAAxB;AACA,SAASC,UAAT,QAA2B,gBAA3B;AACA,SAASC,QAAT,QAAyB,mBAAzB;;AAEA,MAAMC,WAAN,SAA0BN,SAA1B,CAAoC;EAClCO,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;;IADiB,qCAKL,MAAM,CAAE,CALH;;IAAA,mCAMP,MAAM,CAAE,CAND;;IAAA,qCAQL,MAAM;MAClBH,QAAQ,CAACI,UAAT,CAAoBC,MAApB;IACD,CAVkB;;IAEjB,KAAKC,KAAL,GAAa,EAAb;EACD;;EASDC,MAAM,GAAG;IACP,MAAM;MAAEC,GAAF;MAAOC;IAAP,IAAuB,KAAKN,KAAlC;IACA,oBACE,oBAAC,IAAD;MAAM,KAAK,EAAEO,MAAM,CAACC;IAApB,gBACE,oBAAC,UAAD,CAAY,MAAZ;MAAmB,QAAQ,EAAC,YAA5B;MAAyC,WAAW,EAAE,KAAKC,WAA3D;MAAwE,IAAI,EAAEH;IAA9E,EADF,eAEE,oBAAC,OAAD;MAAS,MAAM,EAAE;QAAEI,GAAG,EAAEL;MAAP,CAAjB;MAA+B,KAAK,EAAEE,MAAM,CAACI,YAA7C;MAA2D,WAAW,EAAE,KAAKC,WAA7E;MAA0F,SAAS,EAAE,KAAKC;IAA1G,EAFF,CADF;EAMD;;AArBiC;;AAwBpC,MAAMN,MAAM,GAAGb,UAAU,CAACoB,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,eAAenB,WAAf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-webview-app",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
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",
@@ -21,6 +21,8 @@
21
21
  "author": "Phillip Suh",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
+ "@plusscommunities/pluss-core-app": "3.0.1",
25
+ "lodash": "^4.17.4",
24
26
  "react": "18.2.0",
25
27
  "react-native": "0.71.6",
26
28
  "react-native-webview": "11.26.0"
@@ -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;