@plusscommunities/pluss-newsletter-app-menu 3.0.2 → 3.1.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.
- package/dist/module/components/newsletter/NewsWidgetItem.js +25 -9
- package/dist/module/components/newsletter/NewsWidgetItem.js.map +1 -1
- package/dist/module/components/newsletter/NewsletterEntryPreview.js +8 -3
- package/dist/module/components/newsletter/NewsletterEntryPreview.js.map +1 -1
- package/dist/module/components/newsletter/NewsletterPost.js +3 -2
- package/dist/module/components/newsletter/NewsletterPost.js.map +1 -1
- package/dist/module/components/newsletter/NewsletterPreview2.js +7 -2
- package/dist/module/components/newsletter/NewsletterPreview2.js.map +1 -1
- package/dist/module/values.config.awards.js +1 -0
- package/dist/module/values.config.awards.js.map +1 -1
- package/dist/module/values.config.coaching.js +1 -0
- package/dist/module/values.config.coaching.js.map +1 -1
- package/dist/module/values.config.curatedposts.js +1 -0
- package/dist/module/values.config.curatedposts.js.map +1 -1
- package/dist/module/values.config.default.js +1 -0
- package/dist/module/values.config.default.js.map +1 -1
- package/dist/module/values.config.headoffice.js +1 -0
- package/dist/module/values.config.headoffice.js.map +1 -1
- package/dist/module/values.config.js +1 -0
- package/dist/module/values.config.js.map +1 -1
- package/dist/module/values.config.menu.js +1 -0
- package/dist/module/values.config.menu.js.map +1 -1
- package/dist/module/values.config.news2.js +1 -0
- package/dist/module/values.config.news2.js.map +1 -1
- package/dist/module/values.config.newsa.js +1 -0
- package/dist/module/values.config.newsa.js.map +1 -1
- package/dist/module/values.config.newsb.js +1 -0
- package/dist/module/values.config.newsb.js.map +1 -1
- package/dist/module/values.config.newsc.js +1 -0
- package/dist/module/values.config.newsc.js.map +1 -1
- package/dist/module/values.config.newsd.js +1 -0
- package/dist/module/values.config.newsd.js.map +1 -1
- package/dist/module/values.config.noticeboard.js +1 -0
- package/dist/module/values.config.noticeboard.js.map +1 -1
- package/dist/module/values.config.personaldev.js +1 -0
- package/dist/module/values.config.personaldev.js.map +1 -1
- package/dist/module/values.config.products.js +1 -0
- package/dist/module/values.config.products.js.map +1 -1
- package/dist/module/values.config.projects.js +1 -0
- package/dist/module/values.config.projects.js.map +1 -1
- package/dist/module/values.config.sales.js +1 -0
- package/dist/module/values.config.sales.js.map +1 -1
- package/dist/module/values.config.sharing.js +1 -0
- package/dist/module/values.config.sharing.js.map +1 -1
- package/dist/module/values.config.shifts.js +1 -0
- package/dist/module/values.config.shifts.js.map +1 -1
- package/dist/module/values.config.training.js +1 -0
- package/dist/module/values.config.training.js.map +1 -1
- package/package.json +2 -2
- package/src/components/newsletter/NewsWidgetItem.js +28 -13
- package/src/components/newsletter/NewsletterEntryPreview.js +16 -8
- package/src/components/newsletter/NewsletterPost.js +2 -0
- package/src/components/newsletter/NewsletterPreview2.js +5 -1
- package/src/values.config.awards.js +1 -0
- package/src/values.config.coaching.js +1 -0
- package/src/values.config.curatedposts.js +1 -0
- package/src/values.config.default.js +1 -0
- package/src/values.config.headoffice.js +1 -0
- package/src/values.config.js +1 -0
- package/src/values.config.menu.js +1 -0
- package/src/values.config.news2.js +1 -0
- package/src/values.config.newsa.js +1 -0
- package/src/values.config.newsb.js +1 -0
- package/src/values.config.newsc.js +1 -0
- package/src/values.config.newsd.js +1 -0
- package/src/values.config.noticeboard.js +1 -0
- package/src/values.config.personaldev.js +1 -0
- package/src/values.config.products.js +1 -0
- package/src/values.config.projects.js +1 -0
- package/src/values.config.sales.js +1 -0
- package/src/values.config.sharing.js +1 -0
- package/src/values.config.shifts.js +1 -0
- package/src/values.config.training.js +1 -0
|
@@ -5,10 +5,11 @@ import { Text, View, StyleSheet, TouchableOpacity } from 'react-native';
|
|
|
5
5
|
import { LinearGradient } from 'expo-linear-gradient';
|
|
6
6
|
import moment from 'moment';
|
|
7
7
|
import _ from 'lodash';
|
|
8
|
+
import { connect } from 'react-redux';
|
|
8
9
|
import { Reaction } from '../common';
|
|
9
10
|
import NewsletterImage from '../newsletter/NewsletterImage';
|
|
10
11
|
import NavigationService from '../../js/NavigationService';
|
|
11
|
-
import { getShadowStyle, TEXT_LIGHT, TEXT_DARK } from '../../js';
|
|
12
|
+
import { getShadowStyle, TEXT_LIGHT, TEXT_DARK, getSiteSettingFromState } from '../../js';
|
|
12
13
|
import { values } from '../../values.config';
|
|
13
14
|
const TILE_HEIGHT = 160;
|
|
14
15
|
const TILE_WIDTH = 135;
|
|
@@ -24,10 +25,14 @@ class NewsWidgetItem extends Component {
|
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
hasReactions(news) {
|
|
29
|
+
return news.Reactions && _.some(Object.keys(news.Reactions), rKey => {
|
|
29
30
|
return !_.isEmpty(Object.keys(news.Reactions[rKey]));
|
|
30
|
-
})
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
renderReactions(news) {
|
|
35
|
+
if (!this.hasReactions(news)) {
|
|
31
36
|
return null;
|
|
32
37
|
}
|
|
33
38
|
|
|
@@ -42,9 +47,11 @@ class NewsWidgetItem extends Component {
|
|
|
42
47
|
|
|
43
48
|
render() {
|
|
44
49
|
const {
|
|
45
|
-
news
|
|
50
|
+
news,
|
|
51
|
+
hideTimestamp
|
|
46
52
|
} = this.props;
|
|
47
53
|
const hasImage = !_.isEmpty(news.Image);
|
|
54
|
+
const hasReactions = this.hasReactions(news);
|
|
48
55
|
const date = moment.utc(news.Timestamp).local();
|
|
49
56
|
const dateText = date.isSame(moment(), 'date') ? 'Today' : date.format('ddd, D MMMM');
|
|
50
57
|
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
@@ -53,7 +60,9 @@ class NewsWidgetItem extends Component {
|
|
|
53
60
|
}, /*#__PURE__*/React.createElement(View, {
|
|
54
61
|
style: styles.newsContainer
|
|
55
62
|
}, /*#__PURE__*/React.createElement(View, {
|
|
56
|
-
style: styles.newsInnerContainer
|
|
63
|
+
style: [styles.newsInnerContainer, hideTimestamp ? {
|
|
64
|
+
height: TILE_WIDTH
|
|
65
|
+
} : null]
|
|
57
66
|
}, hasImage && /*#__PURE__*/React.createElement(NewsletterImage, {
|
|
58
67
|
news: news,
|
|
59
68
|
disableOverlays: true,
|
|
@@ -76,9 +85,9 @@ class NewsWidgetItem extends Component {
|
|
|
76
85
|
style: [styles.newsTitleText, {
|
|
77
86
|
color: hasImage ? '#fff' : TEXT_DARK
|
|
78
87
|
}]
|
|
79
|
-
}, news.Title), /*#__PURE__*/React.createElement(View, {
|
|
88
|
+
}, news.Title), (hasReactions || !hideTimestamp) && /*#__PURE__*/React.createElement(View, {
|
|
80
89
|
style: styles.bottomContainer
|
|
81
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
90
|
+
}, hideTimestamp || /*#__PURE__*/React.createElement(Text, {
|
|
82
91
|
style: styles.newsDateText
|
|
83
92
|
}, dateText), this.renderReactions(news)))));
|
|
84
93
|
}
|
|
@@ -149,5 +158,12 @@ const styles = StyleSheet.create({
|
|
|
149
158
|
color: TEXT_LIGHT
|
|
150
159
|
}
|
|
151
160
|
});
|
|
152
|
-
|
|
161
|
+
|
|
162
|
+
const mapStateToProps = state => {
|
|
163
|
+
return {
|
|
164
|
+
hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false)
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
export default connect(mapStateToProps, {})(NewsWidgetItem);
|
|
153
169
|
//# sourceMappingURL=NewsWidgetItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NewsWidgetItem.js"],"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","LinearGradient","moment","_","Reaction","NewsletterImage","NavigationService","getShadowStyle","TEXT_LIGHT","TEXT_DARK","values","TILE_HEIGHT","TILE_WIDTH","NewsWidgetItem","navigate","screenNewsletterPost","update","props","news","
|
|
1
|
+
{"version":3,"sources":["NewsWidgetItem.js"],"names":["React","Component","Text","View","StyleSheet","TouchableOpacity","LinearGradient","moment","_","connect","Reaction","NewsletterImage","NavigationService","getShadowStyle","TEXT_LIGHT","TEXT_DARK","getSiteSettingFromState","values","TILE_HEIGHT","TILE_WIDTH","NewsWidgetItem","navigate","screenNewsletterPost","update","props","news","hasReactions","Reactions","some","Object","keys","rKey","isEmpty","renderReactions","styles","reactionContainer","reactionImage","reactionCountText","render","hideTimestamp","hasImage","Image","date","utc","Timestamp","local","dateText","isSame","format","RowId","onPressNews","newsContainer","newsInnerContainer","height","newsImage","newsGradient","x","y","newsTitleText","color","Title","bottomContainer","newsDateText","create","paddingHorizontal","paddingVertical","width","borderRadius","fontSize","position","top","right","left","bottom","fontFamily","backgroundColor","flexDirection","alignItems","justifyContent","mapStateToProps","state","optionHideTimestamp"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { Text, View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { connect } from 'react-redux';\nimport { Reaction } from '../common';\nimport NewsletterImage from '../newsletter/NewsletterImage';\nimport NavigationService from '../../js/NavigationService';\nimport { getShadowStyle, TEXT_LIGHT, TEXT_DARK, getSiteSettingFromState } from '../../js';\nimport { values } from '../../values.config';\n\nconst TILE_HEIGHT = 160;\nconst TILE_WIDTH = 135;\n\nclass NewsWidgetItem extends Component {\n onPressNews = () => {\n NavigationService.navigate(values.screenNewsletterPost, { update: this.props.news });\n };\n\n hasReactions(news) {\n return (\n news.Reactions &&\n _.some(Object.keys(news.Reactions), rKey => {\n return !_.isEmpty(Object.keys(news.Reactions[rKey]));\n })\n );\n }\n\n renderReactions(news) {\n if (!this.hasReactions(news)) {\n return null;\n }\n return (\n <Reaction\n reactions={news.Reactions || {}}\n topReactionOnly\n style={styles.reactionContainer}\n imageStyle={styles.reactionImage}\n countStyle={styles.reactionCountText}\n />\n );\n }\n\n render() {\n const { news, hideTimestamp } = this.props;\n const hasImage = !_.isEmpty(news.Image);\n const hasReactions = this.hasReactions(news);\n const date = moment.utc(news.Timestamp).local();\n const dateText = date.isSame(moment(), 'date') ? 'Today' : date.format('ddd, D MMMM');\n\n return (\n <TouchableOpacity key={news.RowId} onPress={this.onPressNews}>\n <View style={styles.newsContainer}>\n <View style={[styles.newsInnerContainer, hideTimestamp ? { height: TILE_WIDTH } : null]}>\n {hasImage && <NewsletterImage news={news} disableOverlays style={styles.newsImage} size={TILE_WIDTH} />}\n {hasImage && (\n <LinearGradient\n style={styles.newsGradient}\n colors={['#0009', '#0000']}\n start={{ x: 1, y: 0 }}\n end={{ x: 1, y: 1 }}\n locations={[0, 0.8]}\n />\n )}\n <Text numberOfLines={3} style={[styles.newsTitleText, { color: hasImage ? '#fff' : TEXT_DARK }]}>\n {news.Title}\n </Text>\n\n {(hasReactions || !hideTimestamp) && (\n <View style={styles.bottomContainer}>\n {hideTimestamp || <Text style={styles.newsDateText}>{dateText}</Text>}\n {this.renderReactions(news)}\n </View>\n )}\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n newsContainer: {\n paddingHorizontal: 8,\n paddingVertical: 8,\n },\n newsInnerContainer: {\n width: TILE_WIDTH,\n height: TILE_HEIGHT,\n borderRadius: 4,\n ...getShadowStyle(),\n },\n reactionContainer: {\n width: 37,\n height: 20,\n borderRadius: 15,\n },\n reactionImage: {\n width: 10,\n height: 10,\n },\n reactionCountText: {\n fontSize: 10,\n },\n newsImage: {\n height: TILE_WIDTH,\n width: TILE_WIDTH,\n borderRadius: 4,\n },\n newsGradient: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n borderRadius: 4,\n },\n newsTitleText: {\n position: 'absolute',\n top: 20,\n left: 8,\n right: 8,\n fontFamily: 'sf-semibold',\n fontSize: 16,\n },\n bottomContainer: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: 36,\n borderRadius: 4,\n backgroundColor: '#fff',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 8,\n ...getShadowStyle(),\n },\n newsDateText: {\n fontFamily: 'sf-medium',\n fontSize: 11,\n color: TEXT_LIGHT,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false),\n };\n};\n\nexport default connect(mapStateToProps, {})(NewsWidgetItem);\n"]}
|
|
@@ -63,6 +63,10 @@ class NewsletterEntryPreview extends Component {
|
|
|
63
63
|
|
|
64
64
|
renderBottomLeft() {
|
|
65
65
|
if (!this.props.update.AuthorDisplay) {
|
|
66
|
+
if (this.props.hideTimestamp) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
|
|
66
70
|
return /*#__PURE__*/React.createElement(Text, {
|
|
67
71
|
numberOfLines: 1,
|
|
68
72
|
style: styles.timeText
|
|
@@ -80,7 +84,7 @@ class NewsletterEntryPreview extends Component {
|
|
|
80
84
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
81
85
|
numberOfLines: 1,
|
|
82
86
|
style: styles.authorText
|
|
83
|
-
}, `By ${this.props.update.Author.displayName}`), /*#__PURE__*/React.createElement(Text, {
|
|
87
|
+
}, `By ${this.props.update.Author.displayName}`), this.props.hideTimestamp || /*#__PURE__*/React.createElement(Text, {
|
|
84
88
|
numberOfLines: 1,
|
|
85
89
|
style: styles.timeText
|
|
86
90
|
}, this.getTimeText())));
|
|
@@ -135,7 +139,7 @@ class NewsletterEntryPreview extends Component {
|
|
|
135
139
|
numberOfLines: 2
|
|
136
140
|
}, this.props.update.Title), /*#__PURE__*/React.createElement(View, {
|
|
137
141
|
style: styles.bottomRightContent
|
|
138
|
-
}, this.renderPublisher(), /*#__PURE__*/React.createElement(View, {
|
|
142
|
+
}, this.renderPublisher(), this.props.hideTimestamp || /*#__PURE__*/React.createElement(View, {
|
|
139
143
|
style: styles.fill
|
|
140
144
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
141
145
|
numberOfLines: 1,
|
|
@@ -242,7 +246,8 @@ const styles = {
|
|
|
242
246
|
const mapStateToProps = state => {
|
|
243
247
|
return {
|
|
244
248
|
colourBrandingMain: getMainBrandingColourFromState(state),
|
|
245
|
-
useLargeNews: getSiteSettingFromState(state, values.optionUseLargeNews, false)
|
|
249
|
+
useLargeNews: getSiteSettingFromState(state, values.optionUseLargeNews, false),
|
|
250
|
+
hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false)
|
|
246
251
|
};
|
|
247
252
|
};
|
|
248
253
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NewsletterEntryPreview.js"],"names":["React","Component","View","Text","TouchableOpacity","Image","Dimensions","connect","_","moment","NavigationService","TEXT_DARK","getMainBrandingColourFromState","getShadowStyle","getSiteSettingFromState","TEXT_DARKEST","TEXT_BLUEGREY","Reaction","ProfilePic","NewsletterImage","values","SCREEN_WIDTH","get","width","SCREEN_HEIGHT","height","NewsletterEntryPreview","constructor","props","state","onPress","navigate","screenNewsletterPost","update","getTimeText","date","utc","Timestamp","local","isSame","format","renderPublisher","Publisher","styles","publisher","uri","renderReactions","Reactions","some","Object","keys","rKey","isEmpty","reactions","renderBottomLeft","AuthorDisplay","timeText","bottomLeftContainer","Author","profilePic","fill","authorText","displayName","renderContent","useLargeNews","hasImage","titleContent","title","Title","titleContainer","largeContainer","minHeight","maxHeight","borderTopLeftRadius","borderTopRightRadius","textContainer","text","bottomRightContent","container","containerStyle","rightContent","render","bind","key","marginHorizontal","marginBottom","flexDirection","alignItems","borderRadius","flex","padding","fontFamily","fontSize","lineHeight","color","backgroundColor","marginTop","marginLeft","largeImage","undefined","paddingHorizontal","paddingVertical","largeText","marginRight","mapStateToProps","colourBrandingMain","optionUseLargeNews"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Image, Dimensions } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport NavigationService from '../../js/NavigationService';\nimport { TEXT_DARK, getMainBrandingColourFromState, getShadowStyle, getSiteSettingFromState, TEXT_DARKEST, TEXT_BLUEGREY } from '../../js';\nimport { Reaction, ProfilePic } from '../common';\nimport NewsletterImage from './NewsletterImage';\nimport { values } from '../../values.config';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass NewsletterEntryPreview extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onPress() {\n NavigationService.navigate(values.screenNewsletterPost, { update: this.props.update });\n }\n\n getTimeText() {\n const date = moment.utc(this.props.update.Timestamp).local();\n if (date.isSame(moment(), 'date')) {\n return 'Today';\n }\n return date.format('D MMM');\n }\n\n renderPublisher() {\n if (!this.props.update.Publisher || !this.props.update.Publisher.Image) {\n return null;\n }\n return <Image style={styles.publisher} resizeMode=\"contain\" source={{ uri: this.props.update.Publisher.Image }} />;\n }\n\n renderReactions() {\n if (\n !this.props.update.Reactions ||\n !_.some(Object.keys(this.props.update.Reactions), rKey => {\n return !_.isEmpty(Object.keys(this.props.update.Reactions[rKey]));\n })\n ) {\n return null;\n }\n return <Reaction reactions={this.props.update.Reactions || {}} topReactionOnly style={styles.reactions} />;\n }\n\n renderBottomLeft() {\n if (!this.props.update.AuthorDisplay) {\n return (\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n );\n }\n return (\n <View style={styles.bottomLeftContainer}>\n {this.props.update.AuthorDisplay === 'name' && (\n <ProfilePic ProfilePic={this.props.update.Author.profilePic} style={styles.profilePic} size={36} />\n )}\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.authorText}>\n {`By ${this.props.update.Author.displayName}`}\n </Text>\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n </View>\n </View>\n );\n }\n\n renderContent() {\n if (this.props.useLargeNews) {\n const hasImage = !_.isEmpty(this.props.update.Image);\n const titleContent = hasImage ? (\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n ) : (\n <View style={styles.titleContainer}>\n {this.renderReactions()}\n <View style={styles.fill}>\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n </View>\n </View>\n );\n return (\n <View style={[styles.largeContainer, getShadowStyle()]}>\n {hasImage && (\n <NewsletterImage\n news={this.props.update}\n autoScaleHeight\n width={SCREEN_WIDTH - 32}\n style={{\n minHeight: 100,\n maxHeight: SCREEN_HEIGHT / 1.5,\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4,\n }}\n />\n )}\n <View style={styles.textContainer}>\n {titleContent}\n {!hasImage && !_.isEmpty(this.props.update.Text) && (\n <Text style={styles.text} numberOfLines={2}>\n {this.props.update.Text}\n </Text>\n )}\n <View style={styles.bottomRightContent}>\n {this.renderPublisher()}\n <View style={styles.fill}>{this.renderBottomLeft()}</View>\n </View>\n </View>\n </View>\n );\n }\n return (\n <View style={[styles.container, getShadowStyle(), this.props.containerStyle]}>\n <NewsletterImage news={this.props.update} />\n <View style={styles.rightContent}>\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n\n <View style={styles.bottomRightContent}>\n {this.renderPublisher()}\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n </View>\n </View>\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <TouchableOpacity onPress={this.onPress.bind(this)} key={this.props.key}>\n {this.renderContent()}\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = {\n container: {\n marginHorizontal: 16,\n marginBottom: 16,\n flexDirection: 'row',\n height: 110,\n alignItems: 'center',\n borderRadius: 4,\n },\n rightContent: {\n flex: 1,\n padding: 8,\n },\n title: {\n fontFamily: 'sf-bold',\n fontSize: 16,\n lineHeight: 24,\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n timeText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_BLUEGREY,\n backgroundColor: 'transparent',\n },\n bottomRightContent: {\n marginTop: 12,\n flexDirection: 'row-reverse',\n },\n publisher: {\n marginTop: 8,\n height: 30,\n width: 80,\n marginLeft: 8,\n },\n fill: {\n flex: 1,\n },\n largeContainer: {\n marginHorizontal: 16,\n marginBottom: 16,\n borderRadius: 4,\n },\n largeImage: {\n width: '100%',\n height: undefined,\n },\n textContainer: {\n paddingHorizontal: 8,\n paddingVertical: 16,\n },\n largeText: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n fontSize: 16,\n },\n text: {\n fontFamily: 'sf-regular',\n fontSize: 14,\n color: TEXT_BLUEGREY,\n backgroundColor: 'transparent',\n marginTop: 8,\n },\n titleContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n reactions: {\n marginLeft: 8,\n },\n bottomLeftContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n profilePic: {\n marginRight: 8,\n },\n authorText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n backgroundColor: 'transparent',\n marginBottom: 4,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n useLargeNews: getSiteSettingFromState(state, values.optionUseLargeNews, false),\n };\n};\n\nexport default connect(mapStateToProps, {})(NewsletterEntryPreview);\n"]}
|
|
1
|
+
{"version":3,"sources":["NewsletterEntryPreview.js"],"names":["React","Component","View","Text","TouchableOpacity","Image","Dimensions","connect","_","moment","NavigationService","TEXT_DARK","getMainBrandingColourFromState","getShadowStyle","getSiteSettingFromState","TEXT_DARKEST","TEXT_BLUEGREY","Reaction","ProfilePic","NewsletterImage","values","SCREEN_WIDTH","get","width","SCREEN_HEIGHT","height","NewsletterEntryPreview","constructor","props","state","onPress","navigate","screenNewsletterPost","update","getTimeText","date","utc","Timestamp","local","isSame","format","renderPublisher","Publisher","styles","publisher","uri","renderReactions","Reactions","some","Object","keys","rKey","isEmpty","reactions","renderBottomLeft","AuthorDisplay","hideTimestamp","timeText","bottomLeftContainer","Author","profilePic","fill","authorText","displayName","renderContent","useLargeNews","hasImage","titleContent","title","Title","titleContainer","largeContainer","minHeight","maxHeight","borderTopLeftRadius","borderTopRightRadius","textContainer","text","bottomRightContent","container","containerStyle","rightContent","render","bind","key","marginHorizontal","marginBottom","flexDirection","alignItems","borderRadius","flex","padding","fontFamily","fontSize","lineHeight","color","backgroundColor","marginTop","marginLeft","largeImage","undefined","paddingHorizontal","paddingVertical","largeText","marginRight","mapStateToProps","colourBrandingMain","optionUseLargeNews","optionHideTimestamp"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Image, Dimensions } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport NavigationService from '../../js/NavigationService';\nimport { TEXT_DARK, getMainBrandingColourFromState, getShadowStyle, getSiteSettingFromState, TEXT_DARKEST, TEXT_BLUEGREY } from '../../js';\nimport { Reaction, ProfilePic } from '../common';\nimport NewsletterImage from './NewsletterImage';\nimport { values } from '../../values.config';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass NewsletterEntryPreview extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onPress() {\n NavigationService.navigate(values.screenNewsletterPost, { update: this.props.update });\n }\n\n getTimeText() {\n const date = moment.utc(this.props.update.Timestamp).local();\n if (date.isSame(moment(), 'date')) {\n return 'Today';\n }\n return date.format('D MMM');\n }\n\n renderPublisher() {\n if (!this.props.update.Publisher || !this.props.update.Publisher.Image) {\n return null;\n }\n return <Image style={styles.publisher} resizeMode=\"contain\" source={{ uri: this.props.update.Publisher.Image }} />;\n }\n\n renderReactions() {\n if (\n !this.props.update.Reactions ||\n !_.some(Object.keys(this.props.update.Reactions), rKey => {\n return !_.isEmpty(Object.keys(this.props.update.Reactions[rKey]));\n })\n ) {\n return null;\n }\n return <Reaction reactions={this.props.update.Reactions || {}} topReactionOnly style={styles.reactions} />;\n }\n\n renderBottomLeft() {\n if (!this.props.update.AuthorDisplay) {\n if (this.props.hideTimestamp) {\n return null;\n }\n return (\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n );\n }\n return (\n <View style={styles.bottomLeftContainer}>\n {this.props.update.AuthorDisplay === 'name' && (\n <ProfilePic ProfilePic={this.props.update.Author.profilePic} style={styles.profilePic} size={36} />\n )}\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.authorText}>\n {`By ${this.props.update.Author.displayName}`}\n </Text>\n {this.props.hideTimestamp || (\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n )}\n </View>\n </View>\n );\n }\n\n renderContent() {\n if (this.props.useLargeNews) {\n const hasImage = !_.isEmpty(this.props.update.Image);\n const titleContent = hasImage ? (\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n ) : (\n <View style={styles.titleContainer}>\n {this.renderReactions()}\n <View style={styles.fill}>\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n </View>\n </View>\n );\n return (\n <View style={[styles.largeContainer, getShadowStyle()]}>\n {hasImage && (\n <NewsletterImage\n news={this.props.update}\n autoScaleHeight\n width={SCREEN_WIDTH - 32}\n style={{\n minHeight: 100,\n maxHeight: SCREEN_HEIGHT / 1.5,\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4,\n }}\n />\n )}\n <View style={styles.textContainer}>\n {titleContent}\n {!hasImage && !_.isEmpty(this.props.update.Text) && (\n <Text style={styles.text} numberOfLines={2}>\n {this.props.update.Text}\n </Text>\n )}\n <View style={styles.bottomRightContent}>\n {this.renderPublisher()}\n <View style={styles.fill}>{this.renderBottomLeft()}</View>\n </View>\n </View>\n </View>\n );\n }\n return (\n <View style={[styles.container, getShadowStyle(), this.props.containerStyle]}>\n <NewsletterImage news={this.props.update} />\n <View style={styles.rightContent}>\n <Text style={styles.title} numberOfLines={2}>\n {this.props.update.Title}\n </Text>\n\n <View style={styles.bottomRightContent}>\n {this.renderPublisher()}\n {this.props.hideTimestamp || (\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.timeText}>\n {this.getTimeText()}\n </Text>\n </View>\n )}\n </View>\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <TouchableOpacity onPress={this.onPress.bind(this)} key={this.props.key}>\n {this.renderContent()}\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = {\n container: {\n marginHorizontal: 16,\n marginBottom: 16,\n flexDirection: 'row',\n height: 110,\n alignItems: 'center',\n borderRadius: 4,\n },\n rightContent: {\n flex: 1,\n padding: 8,\n },\n title: {\n fontFamily: 'sf-bold',\n fontSize: 16,\n lineHeight: 24,\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n timeText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_BLUEGREY,\n backgroundColor: 'transparent',\n },\n bottomRightContent: {\n marginTop: 12,\n flexDirection: 'row-reverse',\n },\n publisher: {\n marginTop: 8,\n height: 30,\n width: 80,\n marginLeft: 8,\n },\n fill: {\n flex: 1,\n },\n largeContainer: {\n marginHorizontal: 16,\n marginBottom: 16,\n borderRadius: 4,\n },\n largeImage: {\n width: '100%',\n height: undefined,\n },\n textContainer: {\n paddingHorizontal: 8,\n paddingVertical: 16,\n },\n largeText: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n fontSize: 16,\n },\n text: {\n fontFamily: 'sf-regular',\n fontSize: 14,\n color: TEXT_BLUEGREY,\n backgroundColor: 'transparent',\n marginTop: 8,\n },\n titleContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n reactions: {\n marginLeft: 8,\n },\n bottomLeftContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n profilePic: {\n marginRight: 8,\n },\n authorText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n backgroundColor: 'transparent',\n marginBottom: 4,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n useLargeNews: getSiteSettingFromState(state, values.optionUseLargeNews, false),\n hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false),\n };\n};\n\nexport default connect(mapStateToProps, {})(NewsletterEntryPreview);\n"]}
|
|
@@ -7,7 +7,7 @@ import moment from 'moment';
|
|
|
7
7
|
import { Icon } from 'react-native-elements';
|
|
8
8
|
import { PDFPopup, Header, FontScalePopup, FontScaleButton, BackButton, ProfilePic, UserListPopup, FormattedText, Spinner, Reactions, CommentReply, CommentSection } from '../common';
|
|
9
9
|
import NavigationService from '../../js/NavigationService';
|
|
10
|
-
import { LINEGREY, TEXT_DARK, TEXT_DARKEST, TEXT_LIGHT, StatusBarHeight, getMainBrandingColourFromState, getSite, hasReacted, getPluralOptions, getValidUrl, HEADER_HEIGHT, allowComments, isVideoUrl } from '../../js';
|
|
10
|
+
import { LINEGREY, TEXT_DARK, TEXT_DARKEST, TEXT_LIGHT, StatusBarHeight, getMainBrandingColourFromState, getSite, hasReacted, getPluralOptions, getValidUrl, HEADER_HEIGHT, allowComments, isVideoUrl, getSiteSettingFromState } from '../../js';
|
|
11
11
|
import { newsActions, analyticsActions } from '../../webapi';
|
|
12
12
|
import { softUpdateUser } from '../../actions';
|
|
13
13
|
import NewsletterImageSet from './NewsletterImageSet';
|
|
@@ -636,7 +636,8 @@ const styles = {
|
|
|
636
636
|
const mapStateToProps = state => {
|
|
637
637
|
return {
|
|
638
638
|
colourBrandingMain: getMainBrandingColourFromState(state),
|
|
639
|
-
user: state.user
|
|
639
|
+
user: state.user,
|
|
640
|
+
hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false)
|
|
640
641
|
};
|
|
641
642
|
};
|
|
642
643
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NewsletterPost.js"],"names":["React","Component","Platform","Linking","View","Text","ScrollView","TouchableOpacity","ImageBackground","Dimensions","KeyboardAvoidingView","withNavigationFocus","connect","_","moment","Icon","PDFPopup","Header","FontScalePopup","FontScaleButton","BackButton","ProfilePic","UserListPopup","FormattedText","Spinner","Reactions","CommentReply","CommentSection","NavigationService","LINEGREY","TEXT_DARK","TEXT_DARKEST","TEXT_LIGHT","StatusBarHeight","getMainBrandingColourFromState","getSite","hasReacted","getPluralOptions","getValidUrl","HEADER_HEIGHT","allowComments","isVideoUrl","newsActions","analyticsActions","softUpdateUser","NewsletterImageSet","values","SCREEN_WIDTH","get","width","SCREEN_HEIGHT","height","NewsletterPost","constructor","props","state","update","loadingUpdate","fontScaleOpen","taggedOpen","selectedPDF","selectedPDFIndex","isFullScreen","imageSetRef","createRef","scrollView","commentReply","commentSection","componentDidMount","checkLog","Type","getEntry","RowId","id","then","res","setState","data","setTimeout","scrollToBottom","current","scrollToEnd","animated","onPressBack","back","goBack","onPressAttachment","attachment","Attachments","indexOf","onPressLink","link","openURL","Url","catch","err","console","error","onClosePDF","onChangePDFIndex","index","newIndex","length","onPressFontScale","getAdjustedSize","size","user","fontScale","getTimeText","date","utc","Timestamp","local","isSame","format","uid","refreshUpdate","logged","SourceId","sourceId","log","Site","analyticsKey","changeFontSize","change","showTagged","closeTagged","goToSponsor","Sponsor","Internal","navigate","item","fromNews","Link","renderHeader","styles","headerContent","bind","renderTags","isEmpty","Tags","tagString","forEach","tag","color","colourBrandingMain","renderTaggedUsers","Tagged","taggedUsersContainer","map","userId","profilePic","taggedUsersProfilePic","left","zIndex","taggedUsersText","Math","min","renderTaggedPopup","renderSponsor","HasSponsor","sponsorBanner","backgroundColor","sponsorTouch","borderRadius","marginRight","uri","Image","sponsoredText","sponsoredTitle","Title","renderPDF","Source","renderLinks","Links","attachmentContainer","attachmentLogo","attachmentLogoText","attachmentLogoIcon","attachmentFill","attachmentTitle","renderAttachments","section","eventDeetTitle","attachmentDeetTitle","renderComments","includes","hidden","optionNewsComments","AllowComments","featureKey","renderCommentReply","renderAuthorTime","timestamp","timeText","fontSize","hideTimestamp","AuthorDisplay","authorTimeContainer","Author","fill","authorText","displayName","render","page","container","OS","fontScalePopup","minHeight","topContainer","title","lineHeight","bottomContainer","text","marginTop","site","flex","position","borderColor","borderTopWidth","paddingTop","fontFamily","flexDirection","justifyContent","textAlign","paddingHorizontal","paddingVertical","alignItems","marginLeft","flexGrow","padding","paddingLeft","top","right","marginBottom","mapStateToProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SACEC,QADF,EAEEC,OAFF,EAGEC,IAHF,EAIEC,IAJF,EAKEC,UALF,EAMEC,gBANF,EAOEC,eAPF,EAQEC,UARF,EASEC,oBATF,QAUO,cAVP;AAWA,SAASC,mBAAT,QAAoC,kBAApC;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,OAAOC,CAAP,MAAc,QAAd;AACA,OAAOC,MAAP,MAAmB,QAAnB;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SACEC,QADF,EAEEC,MAFF,EAGEC,cAHF,EAIEC,eAJF,EAKEC,UALF,EAMEC,UANF,EAOEC,aAPF,EAQEC,aARF,EASEC,OATF,EAUEC,SAVF,EAWEC,YAXF,EAYEC,cAZF,QAaO,WAbP;AAcA,OAAOC,iBAAP,MAA8B,4BAA9B;AACA,SACEC,QADF,EAEEC,SAFF,EAGEC,YAHF,EAIEC,UAJF,EAKEC,eALF,EAMEC,8BANF,EAOEC,OAPF,EAQEC,UARF,EASEC,gBATF,EAUEC,WAVF,EAWEC,aAXF,EAYEC,aAZF,EAaEC,UAbF,QAcO,UAdP;AAeA,SAASC,WAAT,EAAsBC,gBAAtB,QAA8C,cAA9C;AACA,SAASC,cAAT,QAA+B,eAA/B;AACA,OAAOC,kBAAP,MAA+B,sBAA/B;AACA,SAASC,MAAT,QAAuB,qBAAvB;AAEA,MAAMC,YAAY,GAAGtC,UAAU,CAACuC,GAAX,CAAe,QAAf,EAAyBC,KAA9C;AACA,MAAMC,aAAa,GAAGzC,UAAU,CAACuC,GAAX,CAAe,QAAf,EAAyBG,MAA/C;;AAEA,MAAMC,cAAN,SAA6BnD,SAA7B,CAAuC;AACrCoD,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,KAAL,GAAa;AACXC,MAAAA,MAAM,EAAE,KAAKF,KAAL,CAAWE,MAAX,IAAqB,EADlB;AAEXC,MAAAA,aAAa,EAAE,CAAC,KAAKH,KAAL,CAAWE,MAFhB;AAGXE,MAAAA,aAAa,EAAE,KAHJ;AAIXC,MAAAA,UAAU,EAAE,KAJD;AAKXC,MAAAA,WAAW,EAAE,IALF;AAMXC,MAAAA,gBAAgB,EAAE,IANP;AAOXC,MAAAA,YAAY,EAAE;AAPH,KAAb;AASA,SAAKC,WAAL,gBAAmB/D,KAAK,CAACgE,SAAN,EAAnB;AACA,SAAKC,UAAL,gBAAkBjE,KAAK,CAACgE,SAAN,EAAlB;AACA,SAAKE,YAAL,gBAAoBlE,KAAK,CAACgE,SAAN,EAApB;AACA,SAAKG,cAAL,gBAAsBnE,KAAK,CAACgE,SAAN,EAAtB;AACD;;AAEDI,EAAAA,iBAAiB,GAAG;AAClB,QAAI,KAAKd,KAAL,CAAWE,MAAf,EAAuB;AACrB,WAAKa,QAAL,CAAc,KAAKf,KAAL,CAAWE,MAAzB;AACD;;AACD,QAAI,CAAC,KAAKF,KAAL,CAAWE,MAAZ,IAAsB,KAAKF,KAAL,CAAWE,MAAX,CAAkBc,IAAlB,KAA2B,aAArD,EAAoE;AAClE5B,MAAAA,WAAW,CAAC6B,QAAZ,CAAqB,KAAKjB,KAAL,CAAWE,MAAX,GAAoB,KAAKF,KAAL,CAAWE,MAAX,CAAkBgB,KAAtC,GAA8C,KAAKlB,KAAL,CAAWmB,EAA9E,EAAkFC,IAAlF,CAAuFC,GAAG,IAAI;AAC5F,aAAKC,QAAL,CAAc;AACZnB,UAAAA,aAAa,EAAE,KADH;AAEZD,UAAAA,MAAM,EAAEmB,GAAG,CAACE;AAFA,SAAd;AAIA,aAAKR,QAAL,CAAcM,GAAG,CAACE,IAAlB;AACD,OAND;AAOD;;AAEDC,IAAAA,UAAU,CAAC,MAAM;AACf,UAAI,KAAKxB,KAAL,CAAWyB,cAAf,EAA+B;AAAA;;AAC7B,iCAAKd,UAAL,+FAAiBe,OAAjB,gFAA0BC,WAA1B,CAAsC;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SAAtC;AACD;AACF,KAJS,EAIP,IAJO,CAAV;AAKD;;AAEDC,EAAAA,WAAW,GAAG;AACZ,QAAI,KAAK7B,KAAL,CAAW8B,IAAf,EAAqB;AACnBxD,MAAAA,iBAAiB,CAACyD,MAAlB,CAAyB,KAAK/B,KAAL,CAAW8B,IAApC;AACD,KAFD,MAEO;AACLxD,MAAAA,iBAAiB,CAACyD,MAAlB;AACD;AACF;;AAEDC,EAAAA,iBAAiB,CAACC,UAAD,EAAa;AAC5B,SAAKX,QAAL,CAAc;AACZhB,MAAAA,WAAW,EAAE2B,UADD;AAEZ1B,MAAAA,gBAAgB,EAAE,KAAKN,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,CAA8BC,OAA9B,CAAsCF,UAAtC;AAFN,KAAd;AAID;;AAEDG,EAAAA,WAAW,CAACC,IAAD,EAAO;AAChBxF,IAAAA,OAAO,CAACyF,OAAR,CAAgBtD,WAAW,CAACqD,IAAI,CAACE,GAAN,CAA3B,EAAuCC,KAAvC,CAA6CC,GAAG,IAAIC,OAAO,CAACC,KAAR,CAAc,mBAAd,EAAmCF,GAAnC,CAApD;AACD;;AAEDG,EAAAA,UAAU,GAAG;AACX,SAAKtB,QAAL,CAAc;AACZhB,MAAAA,WAAW,EAAE,IADD;AAEZC,MAAAA,gBAAgB,EAAE;AAFN,KAAd;AAID;;AAEDsC,EAAAA,gBAAgB,CAACC,KAAD,EAAQ;AACtB,UAAMC,QAAQ,GAAG,CAAC,KAAK9C,KAAL,CAAWM,gBAAX,GAA8BuC,KAA/B,IAAwC,KAAK7C,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,CAA8Bc,MAAvF;AACA,SAAK1B,QAAL,CAAc;AACZhB,MAAAA,WAAW,EAAE,KAAKL,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,CAA8Ba,QAA9B,CADD;AAEZxC,MAAAA,gBAAgB,EAAEwC;AAFN,KAAd;AAID;;AAEDE,EAAAA,gBAAgB,GAAG;AACjB,SAAK3B,QAAL,CAAc;AACZlB,MAAAA,aAAa,EAAE,CAAC,KAAKH,KAAL,CAAWG;AADf,KAAd;AAGD;;AAED8C,EAAAA,eAAe,CAACC,IAAD,EAAO;AACpB,WAAOA,IAAI,GAAG,KAAKnD,KAAL,CAAWoD,IAAX,CAAgBC,SAA9B;AACD;;AAEDC,EAAAA,WAAW,GAAG;AACZ,UAAMC,IAAI,GAAG/F,MAAM,CAACgG,GAAP,CAAW,KAAKvD,KAAL,CAAWC,MAAX,CAAkBuD,SAA7B,EAAwCC,KAAxC,EAAb;;AACA,QAAIH,IAAI,CAACI,MAAL,CAAYnG,MAAM,EAAlB,EAAsB,MAAtB,CAAJ,EAAmC;AACjC,aAAO,OAAP;AACD;;AACD,WAAO+F,IAAI,CAACK,MAAL,CAAY,OAAZ,CAAP;AACD;;AAED9E,EAAAA,UAAU,GAAG;AACX,QAAI,CAAC,KAAKmB,KAAL,CAAWC,MAAZ,IAAsB,CAAC,KAAKD,KAAL,CAAWC,MAAX,CAAkB/B,SAA7C,EAAwD;AACtD,aAAO,KAAP;AACD;;AACD,WAAOW,UAAU,CAAC,KAAKmB,KAAL,CAAWC,MAAX,CAAkB/B,SAAnB,EAA8B,KAAK6B,KAAL,CAAWoD,IAAX,CAAgBS,GAA9C,CAAjB;AACD;;AAEDC,EAAAA,aAAa,GAAG;AACd,SAAKxC,QAAL,CAAc;AACZpB,MAAAA,MAAM,EAAE,KAAKD,KAAL,CAAWC;AADP,KAAd;AAGD;;AAEDa,EAAAA,QAAQ,CAACb,MAAD,EAAS;AACf,QAAI,CAAC,KAAKD,KAAL,CAAW8D,MAAZ,IAAsB7D,MAAM,CAACc,IAAP,KAAgB,aAA1C,EAAyD;AACvD,WAAKM,QAAL,CAAc;AACZyC,QAAAA,MAAM,EAAE;AADI,OAAd;AAGA,YAAMxC,IAAI,GAAG,EAAb;;AACA,UAAIrB,MAAM,CAAC8D,QAAX,EAAqB;AACnBzC,QAAAA,IAAI,CAAC0C,QAAL,GAAgB/D,MAAM,CAAC8D,QAAvB;AACD;;AACD3E,MAAAA,gBAAgB,CAAC6E,GAAjB,CAAqBhE,MAAM,CAACiE,IAA5B,EAAkC,UAAlC,EAA8C3E,MAAM,CAAC4E,YAArD,EAAmElE,MAAM,CAACgB,KAA1E,EAAiFK,IAAjF;AACD;AACF;;AAED8C,EAAAA,cAAc,CAACC,MAAD,EAAS;AACrB,SAAKtE,KAAL,CAAWV,cAAX,CAA0B;AAAE+D,MAAAA,SAAS,EAAE,KAAKrD,KAAL,CAAWoD,IAAX,CAAgBC,SAAhB,GAA4BiB;AAAzC,KAA1B;AACD;;AAEDC,EAAAA,UAAU,GAAG;AACX,SAAKjD,QAAL,CAAc;AACZjB,MAAAA,UAAU,EAAE;AADA,KAAd;AAGD;;AAEDmE,EAAAA,WAAW,GAAG;AACZ,SAAKlD,QAAL,CAAc;AACZjB,MAAAA,UAAU,EAAE;AADA,KAAd;AAGD;;AAEDoE,EAAAA,WAAW,GAAG;AACZ,QAAI,KAAKxE,KAAL,CAAWC,MAAX,CAAkBwE,OAAlB,CAA0BC,QAA9B,EAAwC;AACtCrG,MAAAA,iBAAiB,CAACsG,QAAlB,CAA2B,SAA3B,EAAsC;AAAEC,QAAAA,IAAI,EAAE,EAAE,GAAG,KAAK5E,KAAL,CAAWC,MAAX,CAAkBwE,OAAvB;AAAgCI,UAAAA,QAAQ,EAAE;AAA1C;AAAR,OAAtC;AACD,KAFD,MAEO;AACLjI,MAAAA,OAAO,CAACyF,OAAR,CAAgBtD,WAAW,CAAC,KAAKiB,KAAL,CAAWC,MAAX,CAAkBwE,OAAlB,CAA0BK,IAA3B,CAA3B,EAA6DvC,KAA7D,CAAmEC,GAAG,IAAIC,OAAO,CAACC,KAAR,CAAc,mBAAd,EAAmCF,GAAnC,CAA1E;AACD;AACF;;AAEDuC,EAAAA,YAAY,GAAG;AACb,wBACE,oBAAC,MAAD;AAAQ,MAAA,WAAW;AAAnB,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEC,MAAM,CAACC;AAApB,oBACE,oBAAC,UAAD;AAAY,MAAA,OAAO,EAAE,KAAKrD,WAAL,CAAiBsD,IAAjB,CAAsB,IAAtB;AAArB,MADF,eAEE,oBAAC,eAAD;AAAiB,MAAA,OAAO,EAAE,KAAKlC,gBAAL,CAAsBkC,IAAtB,CAA2B,IAA3B;AAA1B,MAFF,CADF,CADF;AAQD;;AAEDC,EAAAA,UAAU,GAAG;AACX,QAAI7H,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkBoF,IAA5B,CAAJ,EAAuC;AACrC,aAAO,IAAP;AACD;;AACD,QAAIC,SAAS,GAAG,EAAhB;;AAEAhI,IAAAA,CAAC,CAACiI,OAAF,CAAU,KAAKvF,KAAL,CAAWC,MAAX,CAAkBoF,IAA5B,EAAkCG,GAAG,IAAI;AACvCF,MAAAA,SAAS,IAAK,GAAEE,GAAI,KAApB;AACD,KAFD;;AAGA,wBAAO,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAEC,QAAAA,KAAK,EAAE,KAAK1F,KAAL,CAAW2F;AAApB;AAAb,OAAwDJ,SAAxD,CAAP;AACD;;AAEDK,EAAAA,iBAAiB,GAAG;AAClB,QAAIrI,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkB2F,MAA5B,CAAJ,EAAyC;AACvC,aAAO,IAAP;AACD;;AACD,wBACE,oBAAC,gBAAD;AAAkB,MAAA,OAAO,EAAE,KAAKtB,UAAL,CAAgBY,IAAhB,CAAqB,IAArB;AAA3B,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEF,MAAM,CAACa;AAApB,OACG,KAAK7F,KAAL,CAAWC,MAAX,CAAkB2F,MAAlB,CAAyBE,GAAzB,CAA6B,CAAC3C,IAAD,EAAON,KAAP,KAAiB;AAC7C,UAAIA,KAAK,GAAG,CAAZ,EAAe;AACb,4BACE,oBAAC,UAAD;AACE,UAAA,GAAG,EAAEM,IAAI,CAAC4C,MADZ;AAEE,UAAA,UAAU,EAAE5C,IAAI,CAAC6C,UAFnB;AAGE,UAAA,QAAQ,EAAE,EAHZ;AAIE,UAAA,KAAK,EAAE,CAAChB,MAAM,CAACiB,qBAAR,EAA+B;AAAEC,YAAAA,IAAI,EAAErD,KAAK,GAAG,CAAC,EAAjB;AAAqBsD,YAAAA,MAAM,EAAEtD,KAAK,GAAG;AAArC,WAA/B,CAJT;AAKE,UAAA,QAAQ;AALV,UADF;AASD;AACF,KAZA,CADH,eAcE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACmC,MAAM,CAACoB,eAAR,EAAyB;AAAEF,QAAAA,IAAI,EAAEG,IAAI,CAACC,GAAL,CAAS,KAAKtG,KAAL,CAAWC,MAAX,CAAkB2F,MAAlB,CAAyB7C,MAAzB,GAAkC,CAA3C,EAA8C,CAA9C,IAAmD,CAAC;AAA5D,OAAzB;AAAb,OACI,GAAE,KAAK/C,KAAL,CAAWC,MAAX,CAAkB2F,MAAlB,CAAyB7C,MAAO,WAAUjE,gBAAgB,CAAC,KAAKkB,KAAL,CAAWC,MAAX,CAAkB2F,MAAlB,CAAyB7C,MAA1B,EAAkC,QAAlC,EAA4C,QAA5C,CAAsD,EADtH,CAdF,CADF,CADF;AAsBD;;AAEDwD,EAAAA,iBAAiB,GAAG;AAClB,QAAIjJ,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkB2F,MAA5B,CAAJ,EAAyC;AACvC,aAAO,IAAP;AACD;;AACD,wBACE,oBAAC,aAAD;AACE,MAAA,KAAK,EAAE,KAAK5F,KAAL,CAAWC,MAAX,CAAkB2F,MAD3B;AAEE,MAAA,OAAO,EAAE,KAAK5F,KAAL,CAAWI,UAFtB;AAGE,MAAA,OAAO,EAAE,KAAKmE,WAAL,CAAiBW,IAAjB,CAAsB,IAAtB,CAHX;AAIE,MAAA,KAAK,EAAC;AAJR,MADF;AAQD;;AAEDsB,EAAAA,aAAa,GAAG;AACd,QAAI,KAAKxG,KAAL,CAAWC,MAAX,CAAkBwG,UAAtB,EAAkC;AAChC,0BACE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE,CAACzB,MAAM,CAAC0B,aAAR,EAAuB;AAAEC,UAAAA,eAAe,EAAE,KAAK5G,KAAL,CAAW2F;AAA9B,SAAvB;AAAb,sBACE,oBAAC,gBAAD;AAAkB,QAAA,KAAK,EAAEV,MAAM,CAAC4B,YAAhC;AAA8C,QAAA,OAAO,EAAE,KAAKpC,WAAL,CAAiBU,IAAjB,CAAsB,IAAtB;AAAvD,sBACE,oBAAC,eAAD;AACE,QAAA,KAAK,EAAE;AAAEtF,UAAAA,MAAM,EAAE,EAAV;AAAcF,UAAAA,KAAK,EAAE,EAArB;AAAyBiH,UAAAA,eAAe,EAAE,MAA1C;AAAkDE,UAAAA,YAAY,EAAE,EAAhE;AAAoEC,UAAAA,WAAW,EAAE;AAAjF,SADT;AAEE,QAAA,UAAU,EAAC,OAFb;AAGE,QAAA,UAAU,EAAE;AAAED,UAAAA,YAAY,EAAE;AAAhB,SAHd;AAIE,QAAA,MAAM,EAAE;AAAEE,UAAAA,GAAG,EAAE,KAAK/G,KAAL,CAAWC,MAAX,CAAkBwE,OAAlB,CAA0BuC;AAAjC;AAJV,QADF,eAOE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEhC,MAAM,CAACiC,aAApB;AAAmC,QAAA,aAAa,EAAE;AAAlD,uCACe,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEjC,MAAM,CAACkC;AAApB,SAAqC,KAAKlH,KAAL,CAAWC,MAAX,CAAkBwE,OAAlB,CAA0B0C,KAA/D,CADf,CAPF,CADF,CADF;AAeD;;AACD,WAAO,IAAP;AACD;;AAEDC,EAAAA,SAAS,GAAG;AACV,wBACE,oBAAC,QAAD;AACE,MAAA,MAAM,EAAE,CAAC9J,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWK,WAArB,CAAD,IAAsC,KAAKL,KAAL,CAAWK,WAAX,CAAuBgH,MADvE;AAEE,MAAA,OAAO,EAAE,CAAC/J,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWK,WAArB,CAFZ;AAGE,MAAA,aAAa,EAAE,KAAKL,KAAL,CAAWM,gBAH5B;AAIE,MAAA,QAAQ,EAAE,KAAKN,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,GAAgC,KAAKjC,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,CAA8Bc,MAA9D,GAAuE,CAJnF;AAKE,MAAA,OAAO,EAAE,KAAKJ,UAAL,CAAgBuC,IAAhB,CAAqB,IAArB,CALX;AAME,MAAA,aAAa,EAAE,KAAKtC,gBAAL,CAAsBsC,IAAtB,CAA2B,IAA3B,CANjB;AAOE,MAAA,KAAK,EAAE,CAAC5H,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWK,WAArB,CAAD,IAAsC,KAAKL,KAAL,CAAWK,WAAX,CAAuB8G;AAPtE,MADF;AAWD;;AAEDG,EAAAA,WAAW,GAAG;AACZ,QAAIhK,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkBsH,KAA5B,CAAJ,EAAwC;AACtC,aAAO,IAAP;AACD;;AACD,WAAO,KAAKvH,KAAL,CAAWC,MAAX,CAAkBsH,KAAlB,CAAwBzB,GAAxB,CAA4B,CAAC1D,IAAD,EAAOS,KAAP,KAAiB;AAClD,0BACE,oBAAC,gBAAD;AACE,QAAA,OAAO,EAAE,MAAM;AACb,eAAKV,WAAL,CAAiBC,IAAjB;AACD,SAHH;AAIE,QAAA,GAAG,EAAES,KAJP;AAKE,QAAA,KAAK,EAAEmC,MAAM,CAACwC;AALhB,sBAOE,oBAAC,IAAD;AACE,QAAA,KAAK,EAAE,CACLxC,MAAM,CAACyC,cADF,EAEL;AACEd,UAAAA,eAAe,EAAE,KAAK5G,KAAL,CAAW2F;AAD9B,SAFK;AADT,SAQGxG,UAAU,CAACkD,IAAI,CAACE,GAAN,CAAV,gBACC,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAC,cAAX;AAA0B,QAAA,IAAI,EAAC,cAA/B;AAA8C,QAAA,SAAS,EAAE,CAAC0C,MAAM,CAAC0C,kBAAR,EAA4B1C,MAAM,CAAC2C,kBAAnC;AAAzD,QADD,gBAGC,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE3C,MAAM,CAAC0C;AAApB,eAXJ,CAPF,eAqBE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE1C,MAAM,CAAC4C;AAApB,sBACE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE5C,MAAM,CAAC6C;AAApB,SAAsCzF,IAAI,CAACtF,IAA3C,CADF,CArBF,CADF;AA2BD,KA5BM,CAAP;AA6BD;;AAEDgL,EAAAA,iBAAiB,GAAG;AAClB,QAAIxK,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkBgC,WAA5B,CAAJ,EAA8C;AAC5C,aAAO,IAAP;AACD;;AACD,wBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE+C,MAAM,CAAC+C;AAApB,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAAC/C,MAAM,CAACgD,cAAR,EAAwBhD,MAAM,CAACiD,mBAA/B;AAAb,qBADF,EAEG,KAAKjI,KAAL,CAAWC,MAAX,CAAkBgC,WAAlB,CAA8B6D,GAA9B,CAAkC,CAAC9D,UAAD,EAAaa,KAAb,KAAuB;AACxD,0BACE,oBAAC,gBAAD;AAAkB,QAAA,OAAO,EAAE,KAAKd,iBAAL,CAAuBmD,IAAvB,CAA4B,IAA5B,EAAkClD,UAAlC,CAA3B;AAA0E,QAAA,GAAG,EAAEa,KAA/E;AAAsF,QAAA,KAAK,EAAEmC,MAAM,CAACwC;AAApG,sBACE,oBAAC,IAAD;AACE,QAAA,KAAK,EAAE,CACLxC,MAAM,CAACyC,cADF,EAEL;AACEd,UAAAA,eAAe,EAAE,KAAK5G,KAAL,CAAW2F;AAD9B,SAFK;AADT,sBAQE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEV,MAAM,CAAC0C;AAApB,eARF,CADF,eAWE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE1C,MAAM,CAAC4C;AAApB,sBACE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE5C,MAAM,CAAC6C;AAApB,SAAsC7F,UAAU,CAACmF,KAAjD,CADF,CAXF,CADF;AAiBD,KAlBA,CAFH,CADF;AAwBD;;AAEDe,EAAAA,cAAc,GAAG;AACf,QAAI5K,CAAC,CAAC6K,QAAF,CAAW,KAAKpI,KAAL,CAAWoD,IAAX,CAAgBiF,MAA3B,EAAmC7I,MAAM,CAAC8I,kBAA1C,CAAJ,EAAmE,OAAO,IAAP;AACnE,QAAI,CAACpJ,aAAa,CAAC,KAAKe,KAAL,CAAWC,MAAX,CAAkBqI,aAAnB,CAAlB,EAAqD,OAAO,IAAP;AAErD,wBACE,oBAAC,cAAD;AACE,MAAA,SAAS,MADX;AAEE,MAAA,GAAG,EAAE,KAAK1H,cAFZ;AAGE,MAAA,YAAY,EAAE,KAAKD,YAHrB;AAIE,MAAA,eAAe,EAAC,YAJlB;AAKE,MAAA,UAAU,EAAEpB,MAAM,CAACgJ,UALrB;AAME,MAAA,QAAQ,EAAE,KAAKvI,KAAL,CAAWC,MAAX,CAAkBgB,KAN9B;AAOE,MAAA,UAAU,EAAE,KAAKjB,KAAL,CAAWC,MAAX,CAAkBkH,KAPhC;AAQE,MAAA,IAAI,EAAE,KAAKnH,KAAL,CAAWC,MAAX,CAAkBiE,IAR1B;AASE,MAAA,IAAI,MATN;AAUE,MAAA,gBAAgB,EAAE;AAVpB,MADF;AAcD;;AAEDsE,EAAAA,kBAAkB,GAAG;AACnB,QAAI,CAACvJ,aAAa,CAAC,KAAKe,KAAL,CAAWC,MAAX,CAAkBqI,aAAnB,CAAlB,EAAqD;AACnD,aAAO,IAAP;AACD;;AACD,wBACE,oBAAC,YAAD;AACE,MAAA,GAAG,EAAE,KAAK3H,YADZ;AAEE,MAAA,cAAc,EAAE,KAAKC,cAFvB;AAGE,MAAA,UAAU,EAAE,KAAKF,UAHnB;AAIE,MAAA,UAAU,EAAEnB,MAAM,CAACgJ,UAJrB;AAKE,MAAA,QAAQ,EAAE,KAAKvI,KAAL,CAAWC,MAAX,CAAkBgB,KAL9B;AAME,MAAA,UAAU,EAAE,KAAKjB,KAAL,CAAWC,MAAX,CAAkBkH,KANhC;AAOE,MAAA,IAAI,EAAE,KAAKnH,KAAL,CAAWC,MAAX,CAAkBiE;AAP1B,MADF;AAWD;;AAEDuE,EAAAA,gBAAgB,GAAG;AACjB,QAAIC,SAAS,gBACX,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAAC1D,MAAM,CAAC2D,QAAR,EAAkB;AAAEC,QAAAA,QAAQ,EAAE,KAAK3F,eAAL,CAAqB,EAArB;AAAZ,OAAlB;AAAb,OACG,KAAKI,WAAL,EADH,EAEG,CAAC/F,CAAC,CAAC8H,OAAF,CAAU,KAAKpF,KAAL,CAAWC,MAAX,CAAkBoF,IAA5B,CAAD,IAAuC,SAF1C,EAGG,KAAKF,UAAL,EAHH,CADF;;AAOA,QAAI,KAAKpF,KAAL,CAAW8I,aAAf,EAA8B;AAC5BH,MAAAA,SAAS,GAAG,IAAZ;AACD;;AACD,QAAI,CAAC,KAAK1I,KAAL,CAAWC,MAAX,CAAkB6I,aAAvB,EAAsC;AACpC,UAAI,KAAK/I,KAAL,CAAW8I,aAAf,EAA8B;AAC5B,eAAO,IAAP;AACD;;AACD,0BAAO,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE7D,MAAM,CAAC+D;AAApB,SAA0CL,SAA1C,CAAP;AACD;;AACD,wBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE1D,MAAM,CAAC+D;AAApB,OACG,KAAK/I,KAAL,CAAWC,MAAX,CAAkB6I,aAAlB,KAAoC,MAApC,iBACC,oBAAC,UAAD;AAAY,MAAA,UAAU,EAAE,KAAK9I,KAAL,CAAWC,MAAX,CAAkB+I,MAAlB,CAAyBhD,UAAjD;AAA6D,MAAA,KAAK,EAAEhB,MAAM,CAACgB,UAA3E;AAAuF,MAAA,IAAI,EAAE;AAA7F,MAFJ,eAIE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEhB,MAAM,CAACiE;AAApB,oBACE,oBAAC,IAAD;AAAM,MAAA,aAAa,EAAE,CAArB;AAAwB,MAAA,KAAK,EAAEjE,MAAM,CAACkE;AAAtC,OACI,MAAK,KAAKlJ,KAAL,CAAWC,MAAX,CAAkB+I,MAAlB,CAAyBG,WAAY,EAD9C,CADF,EAIGT,SAJH,CAJF,CADF;AAaD;;AAEDU,EAAAA,MAAM,GAAG;AACP,UAAM;AAAE7I,MAAAA;AAAF,QAAmB,KAAKP,KAA9B;;AAEA,QAAI,KAAKA,KAAL,CAAWE,aAAf,EAA8B;AAC5B,0BACE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE8E,MAAM,CAACqE;AAApB,sBACE,oBAAC,MAAD;AAAQ,QAAA,WAAW;AAAnB,sBACE,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAErE,MAAM,CAACC;AAApB,sBACE,oBAAC,UAAD;AAAY,QAAA,OAAO,EAAE,KAAKrD,WAAL,CAAiBsD,IAAjB,CAAsB,IAAtB;AAArB,QADF,CADF,CADF,eAME,oBAAC,UAAD;AAAY,QAAA,KAAK,EAAEF,MAAM,CAACsE;AAA1B,sBACE,oBAAC,OAAD;AAAS,QAAA,KAAK,EAAE,KAAKvJ,KAAL,CAAW2F;AAA3B,QADF,CANF,CADF;AAYD;;AAED,wBACE,oBAAC,oBAAD;AAAsB,MAAA,QAAQ,EAAE/I,QAAQ,CAAC4M,EAAT,KAAgB,KAAhB,IAAyB,SAAzD;AAAoE,MAAA,KAAK,EAAEvE,MAAM,CAACqE;AAAlF,OACG,CAAC9I,YAAD,IAAiB,KAAKwE,YAAL,EADpB,eAEE,oBAAC,cAAD;AACE,MAAA,KAAK,EAAEC,MAAM,CAACwE,cADhB;AAEE,MAAA,YAAY,EAAE,KAAKpF,cAAL,CAAoBc,IAApB,CAAyB,IAAzB,EAA+B,CAAC,CAAhC,CAFhB;AAGE,MAAA,YAAY,EAAE,KAAKd,cAAL,CAAoBc,IAApB,CAAyB,IAAzB,EAA+B,CAA/B,CAHhB;AAIE,MAAA,OAAO,EAAE,KAAKlF,KAAL,CAAWG;AAJtB,MAFF,EAQG,KAAKoG,iBAAL,EARH,eASE,oBAAC,UAAD;AAAY,MAAA,yBAAyB,EAAC,SAAtC;AAAgD,MAAA,KAAK,EAAEvB,MAAM,CAACsE,SAA9D;AAAyE,MAAA,GAAG,EAAE,KAAK5I;AAAnF,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAE+I,QAAAA,SAAS,EAAE9J,aAAa,GAAGjB,eAAe,CAACM,aAAD,CAA/B,GAAiD;AAA9D;AAAb,OACG,CAACuB,YAAD,iBACC,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEyE,MAAM,CAAC0E;AAApB,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAAC1E,MAAM,CAAC2E,KAAR,EAAe;AAAEf,QAAAA,QAAQ,EAAE,KAAK3F,eAAL,CAAqB,EAArB,CAAZ;AAAsC2G,QAAAA,UAAU,EAAE,KAAK3G,eAAL,CAAqB,EAArB;AAAlD,OAAf;AAAb,OACG,KAAKjD,KAAL,CAAWC,MAAX,CAAkBkH,KADrB,CADF,EAIG,KAAKsB,gBAAL,EAJH,CAFJ,eASE,oBAAC,kBAAD;AACE,MAAA,GAAG,EAAE,KAAKjI,WADZ;AAEE,MAAA,IAAI,EAAE,KAAKR,KAAL,CAAWC,MAFnB;AAGE,MAAA,KAAK,EAAET,YAHT;AAIE,MAAA,kBAAkB,EAAEe,YAAY,IAAI,KAAKc,QAAL,CAAc;AAAEd,QAAAA;AAAF,OAAd;AAJtC,MATF,EAeG,CAACA,YAAD,iBACC,oBAAC,IAAD,QACG,KAAKiG,aAAL,EADH,EAEG,KAAKb,iBAAL,EAFH,eAGE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEX,MAAM,CAAC6E;AAApB,oBACE,oBAAC,aAAD;AAAe,MAAA,KAAK,EAAE,CAAC7E,MAAM,CAAC8E,IAAR,EAAc;AAAElB,QAAAA,QAAQ,EAAE,KAAK3F,eAAL,CAAqB,EAArB,CAAZ;AAAsC2G,QAAAA,UAAU,EAAE,KAAK3G,eAAL,CAAqB,EAArB;AAAlD,OAAd;AAAtB,OACG,KAAKjD,KAAL,CAAWC,MAAX,CAAkBnD,IADrB,CADF,EAIG,KAAKwK,WAAL,EAJH,EAKG,KAAKQ,iBAAL,EALH,EAMG,KAAK9H,KAAL,CAAWC,MAAX,CAAkBc,IAAlB,KAA2B,aAA3B,iBACC,oBAAC,SAAD;AACE,MAAA,KAAK,EAAE;AAAEgJ,QAAAA,SAAS,EAAE;AAAb,OADT;AAEE,MAAA,MAAM,EAAE,KAAK/J,KAAL,CAAWC,MAFrB;AAGE,MAAA,UAAU,EAAEV,MAAM,CAACgJ,UAHrB;AAIE,MAAA,QAAQ,EAAE,KAAKvI,KAAL,CAAWC,MAAX,GAAoB,KAAKD,KAAL,CAAWC,MAAX,CAAkBgB,KAAtC,GAA+C,GAAErC,OAAO,CAAC,KAAKmB,KAAL,CAAWoD,IAAX,CAAgB6G,IAAjB,CAAuB,IAAG,KAAKjK,KAAL,CAAWmB,EAAG,EAJ5G;AAKE,MAAA,cAAc,EAAE,KAAKrC,UAAL,EALlB;AAME,MAAA,IAAI,EAAE,KAAKkB,KAAL,CAAWoD,IANnB;AAOE,MAAA,IAAI,EAAE,KAAKnD,KAAL,CAAWC,MAAX,GAAoB,KAAKD,KAAL,CAAWC,MAAX,CAAkBiE,IAAtC,GAA6CtF,OAAO,CAAC,KAAKmB,KAAL,CAAWoD,IAAX,CAAgB6G,IAAjB,CAP5D;AAQE,MAAA,iBAAiB,EAAE,KAAKnG,aAAL,CAAmBqB,IAAnB,CAAwB,IAAxB;AARrB,MAPJ,CAHF,EAsBG,KAAKgD,cAAL,EAtBH,CAhBJ,CADF,eA2CE,oBAAC,IAAD,QACG,KAAKM,kBAAL,EADH,EAEG,KAAKpB,SAAL,EAFH,CA3CF,CATF,CADF;AA4DD;;AAtcoC;;AAycvC,MAAMpC,MAAM,GAAG;AACbqE,EAAAA,IAAI,EAAE;AACJY,IAAAA,IAAI,EAAE,CADF;AAEJC,IAAAA,QAAQ,EAAE,UAFN;AAGJvD,IAAAA,eAAe,EAAE;AAHb,GADO;AAMboB,EAAAA,OAAO,EAAE;AACPoC,IAAAA,WAAW,EAAE7L,QADN;AAEP8L,IAAAA,cAAc,EAAE,CAFT;AAGPL,IAAAA,SAAS,EAAE,EAHJ;AAIPM,IAAAA,UAAU,EAAE;AAJL,GANI;AAYbrC,EAAAA,cAAc,EAAE;AACdsC,IAAAA,UAAU,EAAE,SADE;AAEd7E,IAAAA,KAAK,EAAElH,SAFO;AAGdqK,IAAAA,QAAQ,EAAE;AAHI,GAZH;AAkBbpB,EAAAA,mBAAmB,EAAE;AACnB+C,IAAAA,aAAa,EAAE,KADI;AAEnBR,IAAAA,SAAS,EAAE;AAFQ,GAlBR;AAsBbtC,EAAAA,cAAc,EAAE;AACd7H,IAAAA,MAAM,EAAE,EADM;AAEdF,IAAAA,KAAK,EAAE,EAFO;AAGdmH,IAAAA,YAAY,EAAE,CAHA;AAId2D,IAAAA,cAAc,EAAE,QAJF;AAKd1D,IAAAA,WAAW,EAAE;AALC,GAtBH;AA6BbY,EAAAA,kBAAkB,EAAE;AAClB+C,IAAAA,SAAS,EAAE,QADO;AAElBhF,IAAAA,KAAK,EAAE,MAFW;AAGlB6E,IAAAA,UAAU,EAAE,SAHM;AAIlB1B,IAAAA,QAAQ,EAAE;AAJQ,GA7BP;AAmCbjB,EAAAA,kBAAkB,EAAE;AAClBiB,IAAAA,QAAQ,EAAE;AADQ,GAnCP;AAsCbhB,EAAAA,cAAc,EAAE;AACdqC,IAAAA,IAAI,EAAE,CADQ;AAEdO,IAAAA,cAAc,EAAE;AAFF,GAtCH;AA0Cb3C,EAAAA,eAAe,EAAE;AACfe,IAAAA,QAAQ,EAAE,EADK;AAEfgB,IAAAA,UAAU,EAAE,EAFG;AAGfU,IAAAA,UAAU,EAAE,YAHG;AAIf7E,IAAAA,KAAK,EAAElH;AAJQ,GA1CJ;AAgDbmI,EAAAA,aAAa,EAAE;AACbgE,IAAAA,iBAAiB,EAAE,EADN;AAEbC,IAAAA,eAAe,EAAE,CAFJ;AAGbjL,IAAAA,KAAK,EAAE,MAHM;AAIb6K,IAAAA,aAAa,EAAE;AAJF,GAhDF;AAsDb3D,EAAAA,YAAY,EAAE;AACZqD,IAAAA,IAAI,EAAE,CADM;AAEZrK,IAAAA,MAAM,EAAE,EAFI;AAGZ2K,IAAAA,aAAa,EAAE,KAHH;AAIZK,IAAAA,UAAU,EAAE;AAJA,GAtDD;AA4Db3D,EAAAA,aAAa,EAAE;AACbqD,IAAAA,UAAU,EAAE,YADC;AAEb1B,IAAAA,QAAQ,EAAE,EAFG;AAGbnD,IAAAA,KAAK,EAAE,MAHM;AAIbkB,IAAAA,eAAe,EAAE,aAJJ;AAKbsD,IAAAA,IAAI,EAAE;AALO,GA5DF;AAmEb/C,EAAAA,cAAc,EAAE;AACdoD,IAAAA,UAAU,EAAE,WADE;AAEdO,IAAAA,UAAU,EAAE;AAFE,GAnEH;AAuEbvB,EAAAA,SAAS,EAAE;AACTwB,IAAAA,QAAQ,EAAE;AADD,GAvEE;AA0EbpB,EAAAA,YAAY,EAAE;AACZqB,IAAAA,OAAO,EAAE;AADG,GA1ED;AA6EblB,EAAAA,eAAe,EAAE;AACfkB,IAAAA,OAAO,EAAE;AADM,GA7EJ;AAgFbpB,EAAAA,KAAK,EAAE;AACLW,IAAAA,UAAU,EAAE,SADP;AAEL1B,IAAAA,QAAQ,EAAE,EAFL;AAGLgB,IAAAA,UAAU,EAAE,EAHP;AAILnE,IAAAA,KAAK,EAAElH,SAJF;AAKLoI,IAAAA,eAAe,EAAE;AALZ,GAhFM;AAuFbgC,EAAAA,QAAQ,EAAE;AACR2B,IAAAA,UAAU,EAAE,WADJ;AAER1B,IAAAA,QAAQ,EAAE,EAFF;AAGRnD,IAAAA,KAAK,EAAEhH,UAHC;AAIRkI,IAAAA,eAAe,EAAE;AAJT,GAvFG;AA6FbmD,EAAAA,IAAI,EAAE;AACJlB,IAAAA,QAAQ,EAAE,EADN;AAEJgB,IAAAA,UAAU,EAAE,EAFR;AAGJU,IAAAA,UAAU,EAAE,YAHR;AAIJ7E,IAAAA,KAAK,EAAElH,SAJH;AAKJoI,IAAAA,eAAe,EAAE;AALb,GA7FO;AAoGb1B,EAAAA,aAAa,EAAE;AACbrF,IAAAA,MAAM,EAAE,EADK;AAEb2K,IAAAA,aAAa,EAAE,KAFF;AAGbC,IAAAA,cAAc,EAAE,eAHH;AAIbI,IAAAA,UAAU,EAAE,QAJC;AAKbI,IAAAA,WAAW,EAAE,EALA;AAMbf,IAAAA,IAAI,EAAE;AANO,GApGF;AA4GbT,EAAAA,cAAc,EAAE;AACdU,IAAAA,QAAQ,EAAE,UADI;AAEde,IAAAA,GAAG,EAAEvM,eAAe,CAAC,EAAD,CAFN;AAGdwM,IAAAA,KAAK,EAAE,CAHO;AAId/E,IAAAA,MAAM,EAAE;AAJM,GA5GH;AAkHbN,EAAAA,oBAAoB,EAAE;AACpBkE,IAAAA,SAAS,EAAE,CADS;AAEpBQ,IAAAA,aAAa,EAAE,KAFK;AAGpBG,IAAAA,iBAAiB,EAAE,EAHC;AAIpBE,IAAAA,UAAU,EAAE;AAJQ,GAlHT;AAwHbxE,EAAAA,eAAe,EAAE;AACfkE,IAAAA,UAAU,EAAE,SADG;AAEf7E,IAAAA,KAAK,EAAElH,SAFQ;AAGfqK,IAAAA,QAAQ,EAAE,EAHK;AAIfiC,IAAAA,UAAU,EAAE;AAJG,GAxHJ;AA8Hb9B,EAAAA,mBAAmB,EAAE;AACnBwB,IAAAA,aAAa,EAAE,KADI;AAEnBK,IAAAA,UAAU,EAAE,QAFO;AAGnBb,IAAAA,SAAS,EAAE;AAHQ,GA9HR;AAmIb/D,EAAAA,UAAU,EAAE;AACVc,IAAAA,WAAW,EAAE;AADH,GAnIC;AAsIboC,EAAAA,UAAU,EAAE;AACVoB,IAAAA,UAAU,EAAE,WADF;AAEV1B,IAAAA,QAAQ,EAAE,EAFA;AAGVnD,IAAAA,KAAK,EAAEjH,YAHG;AAIVmI,IAAAA,eAAe,EAAE,aAJP;AAKVwE,IAAAA,YAAY,EAAE;AALJ;AAtIC,CAAf;;AA+IA,MAAMC,eAAe,GAAGpL,KAAK,IAAI;AAC/B,SAAO;AACL0F,IAAAA,kBAAkB,EAAE/G,8BAA8B,CAACqB,KAAD,CAD7C;AAELmD,IAAAA,IAAI,EAAEnD,KAAK,CAACmD;AAFP,GAAP;AAID,CALD;;AAOA,eAAe/F,mBAAmB,CAACC,OAAO,CAAC+N,eAAD,EAAkB;AAAE/L,EAAAA;AAAF,CAAlB,CAAP,CAA6CQ,cAA7C,CAAD,CAAlC","sourcesContent":["import React, { Component } from 'react';\nimport {\n Platform,\n Linking,\n View,\n Text,\n ScrollView,\n TouchableOpacity,\n ImageBackground,\n Dimensions,\n KeyboardAvoidingView,\n} from 'react-native';\nimport { withNavigationFocus } from 'react-navigation';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { Icon } from 'react-native-elements';\nimport {\n PDFPopup,\n Header,\n FontScalePopup,\n FontScaleButton,\n BackButton,\n ProfilePic,\n UserListPopup,\n FormattedText,\n Spinner,\n Reactions,\n CommentReply,\n CommentSection,\n} from '../common';\nimport NavigationService from '../../js/NavigationService';\nimport {\n LINEGREY,\n TEXT_DARK,\n TEXT_DARKEST,\n TEXT_LIGHT,\n StatusBarHeight,\n getMainBrandingColourFromState,\n getSite,\n hasReacted,\n getPluralOptions,\n getValidUrl,\n HEADER_HEIGHT,\n allowComments,\n isVideoUrl,\n} from '../../js';\nimport { newsActions, analyticsActions } from '../../webapi';\nimport { softUpdateUser } from '../../actions';\nimport NewsletterImageSet from './NewsletterImageSet';\nimport { values } from '../../values.config';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass NewsletterPost extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n update: this.props.update || {},\n loadingUpdate: !this.props.update,\n fontScaleOpen: false,\n taggedOpen: false,\n selectedPDF: null,\n selectedPDFIndex: null,\n isFullScreen: false,\n };\n this.imageSetRef = React.createRef();\n this.scrollView = React.createRef();\n this.commentReply = React.createRef();\n this.commentSection = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.update) {\n this.checkLog(this.props.update);\n }\n if (!this.props.update || this.props.update.Type !== 'WelcomePage') {\n newsActions.getEntry(this.props.update ? this.props.update.RowId : this.props.id).then(res => {\n this.setState({\n loadingUpdate: false,\n update: res.data,\n });\n this.checkLog(res.data);\n });\n }\n\n setTimeout(() => {\n if (this.props.scrollToBottom) {\n this.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 2000);\n }\n\n onPressBack() {\n if (this.props.back) {\n NavigationService.goBack(this.props.back);\n } else {\n NavigationService.goBack();\n }\n }\n\n onPressAttachment(attachment) {\n this.setState({\n selectedPDF: attachment,\n selectedPDFIndex: this.state.update.Attachments.indexOf(attachment),\n });\n }\n\n onPressLink(link) {\n Linking.openURL(getValidUrl(link.Url)).catch(err => console.error('An error occurred', err));\n }\n\n onClosePDF() {\n this.setState({\n selectedPDF: null,\n selectedPDFIndex: null,\n });\n }\n\n onChangePDFIndex(index) {\n const newIndex = (this.state.selectedPDFIndex + index) % this.state.update.Attachments.length;\n this.setState({\n selectedPDF: this.state.update.Attachments[newIndex],\n selectedPDFIndex: newIndex,\n });\n }\n\n onPressFontScale() {\n this.setState({\n fontScaleOpen: !this.state.fontScaleOpen,\n });\n }\n\n getAdjustedSize(size) {\n return size + this.props.user.fontScale;\n }\n\n getTimeText() {\n const date = moment.utc(this.state.update.Timestamp).local();\n if (date.isSame(moment(), 'date')) {\n return 'Today';\n }\n return date.format('D MMM');\n }\n\n hasReacted() {\n if (!this.state.update || !this.state.update.Reactions) {\n return false;\n }\n return hasReacted(this.state.update.Reactions, this.props.user.uid);\n }\n\n refreshUpdate() {\n this.setState({\n update: this.state.update,\n });\n }\n\n checkLog(update) {\n if (!this.state.logged && update.Type !== 'WelcomePage') {\n this.setState({\n logged: true,\n });\n const data = {};\n if (update.SourceId) {\n data.sourceId = update.SourceId;\n }\n analyticsActions.log(update.Site, 'PageView', values.analyticsKey, update.RowId, data);\n }\n }\n\n changeFontSize(change) {\n this.props.softUpdateUser({ fontScale: this.props.user.fontScale + change });\n }\n\n showTagged() {\n this.setState({\n taggedOpen: true,\n });\n }\n\n closeTagged() {\n this.setState({\n taggedOpen: false,\n });\n }\n\n goToSponsor() {\n if (this.state.update.Sponsor.Internal) {\n NavigationService.navigate('service', { item: { ...this.state.update.Sponsor, fromNews: true } });\n } else {\n Linking.openURL(getValidUrl(this.state.update.Sponsor.Link)).catch(err => console.error('An error occurred', err));\n }\n }\n\n renderHeader() {\n return (\n <Header transparent>\n <View style={styles.headerContent}>\n <BackButton onPress={this.onPressBack.bind(this)} />\n <FontScaleButton onPress={this.onPressFontScale.bind(this)} />\n </View>\n </Header>\n );\n }\n\n renderTags() {\n if (_.isEmpty(this.state.update.Tags)) {\n return null;\n }\n let tagString = '';\n\n _.forEach(this.state.update.Tags, tag => {\n tagString += `${tag} `;\n });\n return <Text style={{ color: this.props.colourBrandingMain }}>{tagString}</Text>;\n }\n\n renderTaggedUsers() {\n if (_.isEmpty(this.state.update.Tagged)) {\n return null;\n }\n return (\n <TouchableOpacity onPress={this.showTagged.bind(this)}>\n <View style={styles.taggedUsersContainer}>\n {this.state.update.Tagged.map((user, index) => {\n if (index < 3) {\n return (\n <ProfilePic\n key={user.userId}\n ProfilePic={user.profilePic}\n Diameter={24}\n style={[styles.taggedUsersProfilePic, { left: index * -12, zIndex: index + 10 }]}\n bordered\n />\n );\n }\n })}\n <Text style={[styles.taggedUsersText, { left: Math.min(this.state.update.Tagged.length - 1, 2) * -12 }]}>\n {`${this.state.update.Tagged.length} tagged ${getPluralOptions(this.state.update.Tagged.length, 'person', 'people')}`}\n </Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderTaggedPopup() {\n if (_.isEmpty(this.state.update.Tagged)) {\n return null;\n }\n return (\n <UserListPopup\n users={this.state.update.Tagged}\n visible={this.state.taggedOpen}\n onClose={this.closeTagged.bind(this)}\n title=\"Tagged people\"\n />\n );\n }\n\n renderSponsor() {\n if (this.state.update.HasSponsor) {\n return (\n <View style={[styles.sponsorBanner, { backgroundColor: this.props.colourBrandingMain }]}>\n <TouchableOpacity style={styles.sponsorTouch} onPress={this.goToSponsor.bind(this)}>\n <ImageBackground\n style={{ height: 36, width: 36, backgroundColor: '#fff', borderRadius: 18, marginRight: 8 }}\n resizeMode=\"cover\"\n imageStyle={{ borderRadius: 18 }}\n source={{ uri: this.state.update.Sponsor.Image }}\n />\n <Text style={styles.sponsoredText} numberOfLines={2}>\n Sponsored by <Text style={styles.sponsoredTitle}>{this.state.update.Sponsor.Title}</Text>\n </Text>\n </TouchableOpacity>\n </View>\n );\n }\n return null;\n }\n\n renderPDF() {\n return (\n <PDFPopup\n source={!_.isEmpty(this.state.selectedPDF) && this.state.selectedPDF.Source}\n visible={!_.isEmpty(this.state.selectedPDF)}\n selectedIndex={this.state.selectedPDFIndex}\n pdfCount={this.state.update.Attachments ? this.state.update.Attachments.length : 0}\n onClose={this.onClosePDF.bind(this)}\n onChangeIndex={this.onChangePDFIndex.bind(this)}\n title={!_.isEmpty(this.state.selectedPDF) && this.state.selectedPDF.Title}\n />\n );\n }\n\n renderLinks() {\n if (_.isEmpty(this.state.update.Links)) {\n return null;\n }\n return this.state.update.Links.map((link, index) => {\n return (\n <TouchableOpacity\n onPress={() => {\n this.onPressLink(link);\n }}\n key={index}\n style={styles.attachmentContainer}\n >\n <View\n style={[\n styles.attachmentLogo,\n {\n backgroundColor: this.props.colourBrandingMain,\n },\n ]}\n >\n {isVideoUrl(link.Url) ? (\n <Icon name=\"video-camera\" type=\"font-awesome\" iconStyle={[styles.attachmentLogoText, styles.attachmentLogoIcon]} />\n ) : (\n <Text style={styles.attachmentLogoText}>Web</Text>\n )}\n </View>\n <View style={styles.attachmentFill}>\n <Text style={styles.attachmentTitle}>{link.Text}</Text>\n </View>\n </TouchableOpacity>\n );\n });\n }\n\n renderAttachments() {\n if (_.isEmpty(this.state.update.Attachments)) {\n return null;\n }\n return (\n <View style={styles.section}>\n <Text style={[styles.eventDeetTitle, styles.attachmentDeetTitle]}>Attachments</Text>\n {this.state.update.Attachments.map((attachment, index) => {\n return (\n <TouchableOpacity onPress={this.onPressAttachment.bind(this, attachment)} key={index} style={styles.attachmentContainer}>\n <View\n style={[\n styles.attachmentLogo,\n {\n backgroundColor: this.props.colourBrandingMain,\n },\n ]}\n >\n <Text style={styles.attachmentLogoText}>PDF</Text>\n </View>\n <View style={styles.attachmentFill}>\n <Text style={styles.attachmentTitle}>{attachment.Title}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n );\n }\n\n renderComments() {\n if (_.includes(this.props.user.hidden, values.optionNewsComments)) return null;\n if (!allowComments(this.state.update.AllowComments)) return null;\n\n return (\n <CommentSection\n scaleFont\n ref={this.commentSection}\n commentReply={this.commentReply}\n adminPermission=\"newsletter\"\n entityType={values.featureKey}\n entityId={this.state.update.RowId}\n entityName={this.state.update.Title}\n site={this.state.update.Site}\n live\n refreshFrequency={10000}\n />\n );\n }\n\n renderCommentReply() {\n if (!allowComments(this.state.update.AllowComments)) {\n return null;\n }\n return (\n <CommentReply\n ref={this.commentReply}\n commentSection={this.commentSection}\n scrollView={this.scrollView}\n entityType={values.featureKey}\n entityId={this.state.update.RowId}\n entityName={this.state.update.Title}\n site={this.state.update.Site}\n />\n );\n }\n\n renderAuthorTime() {\n let timestamp = (\n <Text style={[styles.timeText, { fontSize: this.getAdjustedSize(14) }]}>\n {this.getTimeText()}\n {!_.isEmpty(this.state.update.Tags) && ` ⋅ `}\n {this.renderTags()}\n </Text>\n );\n if (this.props.hideTimestamp) {\n timestamp = null;\n }\n if (!this.state.update.AuthorDisplay) {\n if (this.props.hideTimestamp) {\n return null;\n }\n return <View style={styles.authorTimeContainer}>{timestamp}</View>;\n }\n return (\n <View style={styles.authorTimeContainer}>\n {this.state.update.AuthorDisplay === 'name' && (\n <ProfilePic ProfilePic={this.state.update.Author.profilePic} style={styles.profilePic} size={36} />\n )}\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.authorText}>\n {`By ${this.state.update.Author.displayName}`}\n </Text>\n {timestamp}\n </View>\n </View>\n );\n }\n\n render() {\n const { isFullScreen } = this.state;\n\n if (this.state.loadingUpdate) {\n return (\n <View style={styles.page}>\n <Header transparent>\n <View style={styles.headerContent}>\n <BackButton onPress={this.onPressBack.bind(this)} />\n </View>\n </Header>\n <ScrollView style={styles.container}>\n <Spinner color={this.props.colourBrandingMain} />\n </ScrollView>\n </View>\n );\n }\n\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.page}>\n {!isFullScreen && this.renderHeader()}\n <FontScalePopup\n style={styles.fontScalePopup}\n onPressSmall={this.changeFontSize.bind(this, -2)}\n onPressLarge={this.changeFontSize.bind(this, 2)}\n visible={this.state.fontScaleOpen}\n />\n {this.renderTaggedPopup()}\n <ScrollView keyboardShouldPersistTaps=\"handled\" style={styles.container} ref={this.scrollView}>\n <View style={{ minHeight: SCREEN_HEIGHT - StatusBarHeight(HEADER_HEIGHT) - 56 }}>\n {!isFullScreen && (\n <View style={styles.topContainer}>\n <Text style={[styles.title, { fontSize: this.getAdjustedSize(24), lineHeight: this.getAdjustedSize(32) }]}>\n {this.state.update.Title}\n </Text>\n {this.renderAuthorTime()}\n </View>\n )}\n <NewsletterImageSet\n ref={this.imageSetRef}\n news={this.state.update}\n width={SCREEN_WIDTH}\n orientationChanged={isFullScreen => this.setState({ isFullScreen })}\n />\n {!isFullScreen && (\n <View>\n {this.renderSponsor()}\n {this.renderTaggedUsers()}\n <View style={styles.bottomContainer}>\n <FormattedText style={[styles.text, { fontSize: this.getAdjustedSize(14), lineHeight: this.getAdjustedSize(24) }]}>\n {this.state.update.Text}\n </FormattedText>\n {this.renderLinks()}\n {this.renderAttachments()}\n {this.state.update.Type !== 'WelcomePage' && (\n <Reactions\n style={{ marginTop: 16 }}\n entity={this.state.update}\n entityType={values.featureKey}\n entityId={this.state.update ? this.state.update.RowId : `${getSite(this.props.user.site)}_${this.props.id}`}\n anyHighlighted={this.hasReacted()}\n user={this.props.user}\n site={this.state.update ? this.state.update.Site : getSite(this.props.user.site)}\n onUpdateReactions={this.refreshUpdate.bind(this)}\n />\n )}\n </View>\n {this.renderComments()}\n </View>\n )}\n </View>\n <View>\n {this.renderCommentReply()}\n {this.renderPDF()}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n page: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#fff',\n },\n section: {\n borderColor: LINEGREY,\n borderTopWidth: 1,\n marginTop: 16,\n paddingTop: 16,\n },\n eventDeetTitle: {\n fontFamily: 'sf-bold',\n color: TEXT_DARK,\n fontSize: 14,\n },\n\n attachmentContainer: {\n flexDirection: 'row',\n marginTop: 8,\n },\n attachmentLogo: {\n height: 48,\n width: 40,\n borderRadius: 4,\n justifyContent: 'center',\n marginRight: 20,\n },\n attachmentLogoText: {\n textAlign: 'center',\n color: '#fff',\n fontFamily: 'sf-bold',\n fontSize: 10,\n },\n attachmentLogoIcon: {\n fontSize: 18,\n },\n attachmentFill: {\n flex: 1,\n justifyContent: 'center',\n },\n attachmentTitle: {\n fontSize: 16,\n lineHeight: 22,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n sponsorBanner: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n width: '100%',\n flexDirection: 'row',\n },\n sponsorTouch: {\n flex: 1,\n height: 40,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sponsoredText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n color: '#fff',\n backgroundColor: 'transparent',\n flex: 1,\n },\n sponsoredTitle: {\n fontFamily: 'sf-medium',\n marginLeft: 4,\n },\n container: {\n flexGrow: 1,\n },\n topContainer: {\n padding: 16,\n },\n bottomContainer: {\n padding: 16,\n },\n title: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n lineHeight: 32,\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n timeText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_LIGHT,\n backgroundColor: 'transparent',\n },\n text: {\n fontSize: 16,\n lineHeight: 22,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n headerContent: {\n height: 70,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 15,\n flex: 1,\n },\n fontScalePopup: {\n position: 'absolute',\n top: StatusBarHeight(55),\n right: 5,\n zIndex: 100,\n },\n taggedUsersContainer: {\n marginTop: 8,\n flexDirection: 'row',\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n taggedUsersText: {\n fontFamily: 'sf-bold',\n color: TEXT_DARK,\n fontSize: 10,\n marginLeft: 8,\n },\n authorTimeContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 16,\n },\n profilePic: {\n marginRight: 8,\n },\n authorText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n backgroundColor: 'transparent',\n marginBottom: 4,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n user: state.user,\n };\n};\n\nexport default withNavigationFocus(connect(mapStateToProps, { softUpdateUser })(NewsletterPost));\n"]}
|
|
1
|
+
{"version":3,"sources":["NewsletterPost.js"],"names":["React","Component","Platform","Linking","View","Text","ScrollView","TouchableOpacity","ImageBackground","Dimensions","KeyboardAvoidingView","withNavigationFocus","connect","_","moment","Icon","PDFPopup","Header","FontScalePopup","FontScaleButton","BackButton","ProfilePic","UserListPopup","FormattedText","Spinner","Reactions","CommentReply","CommentSection","NavigationService","LINEGREY","TEXT_DARK","TEXT_DARKEST","TEXT_LIGHT","StatusBarHeight","getMainBrandingColourFromState","getSite","hasReacted","getPluralOptions","getValidUrl","HEADER_HEIGHT","allowComments","isVideoUrl","getSiteSettingFromState","newsActions","analyticsActions","softUpdateUser","NewsletterImageSet","values","SCREEN_WIDTH","get","width","SCREEN_HEIGHT","height","NewsletterPost","constructor","props","state","update","loadingUpdate","fontScaleOpen","taggedOpen","selectedPDF","selectedPDFIndex","isFullScreen","imageSetRef","createRef","scrollView","commentReply","commentSection","componentDidMount","checkLog","Type","getEntry","RowId","id","then","res","setState","data","setTimeout","scrollToBottom","current","scrollToEnd","animated","onPressBack","back","goBack","onPressAttachment","attachment","Attachments","indexOf","onPressLink","link","openURL","Url","catch","err","console","error","onClosePDF","onChangePDFIndex","index","newIndex","length","onPressFontScale","getAdjustedSize","size","user","fontScale","getTimeText","date","utc","Timestamp","local","isSame","format","uid","refreshUpdate","logged","SourceId","sourceId","log","Site","analyticsKey","changeFontSize","change","showTagged","closeTagged","goToSponsor","Sponsor","Internal","navigate","item","fromNews","Link","renderHeader","styles","headerContent","bind","renderTags","isEmpty","Tags","tagString","forEach","tag","color","colourBrandingMain","renderTaggedUsers","Tagged","taggedUsersContainer","map","userId","profilePic","taggedUsersProfilePic","left","zIndex","taggedUsersText","Math","min","renderTaggedPopup","renderSponsor","HasSponsor","sponsorBanner","backgroundColor","sponsorTouch","borderRadius","marginRight","uri","Image","sponsoredText","sponsoredTitle","Title","renderPDF","Source","renderLinks","Links","attachmentContainer","attachmentLogo","attachmentLogoText","attachmentLogoIcon","attachmentFill","attachmentTitle","renderAttachments","section","eventDeetTitle","attachmentDeetTitle","renderComments","includes","hidden","optionNewsComments","AllowComments","featureKey","renderCommentReply","renderAuthorTime","timestamp","timeText","fontSize","hideTimestamp","AuthorDisplay","authorTimeContainer","Author","fill","authorText","displayName","render","page","container","OS","fontScalePopup","minHeight","topContainer","title","lineHeight","bottomContainer","text","marginTop","site","flex","position","borderColor","borderTopWidth","paddingTop","fontFamily","flexDirection","justifyContent","textAlign","paddingHorizontal","paddingVertical","alignItems","marginLeft","flexGrow","padding","paddingLeft","top","right","marginBottom","mapStateToProps","optionHideTimestamp"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport {\n Platform,\n Linking,\n View,\n Text,\n ScrollView,\n TouchableOpacity,\n ImageBackground,\n Dimensions,\n KeyboardAvoidingView,\n} from 'react-native';\nimport { withNavigationFocus } from 'react-navigation';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { Icon } from 'react-native-elements';\nimport {\n PDFPopup,\n Header,\n FontScalePopup,\n FontScaleButton,\n BackButton,\n ProfilePic,\n UserListPopup,\n FormattedText,\n Spinner,\n Reactions,\n CommentReply,\n CommentSection,\n} from '../common';\nimport NavigationService from '../../js/NavigationService';\nimport {\n LINEGREY,\n TEXT_DARK,\n TEXT_DARKEST,\n TEXT_LIGHT,\n StatusBarHeight,\n getMainBrandingColourFromState,\n getSite,\n hasReacted,\n getPluralOptions,\n getValidUrl,\n HEADER_HEIGHT,\n allowComments,\n isVideoUrl,\n getSiteSettingFromState,\n} from '../../js';\nimport { newsActions, analyticsActions } from '../../webapi';\nimport { softUpdateUser } from '../../actions';\nimport NewsletterImageSet from './NewsletterImageSet';\nimport { values } from '../../values.config';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass NewsletterPost extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n update: this.props.update || {},\n loadingUpdate: !this.props.update,\n fontScaleOpen: false,\n taggedOpen: false,\n selectedPDF: null,\n selectedPDFIndex: null,\n isFullScreen: false,\n };\n this.imageSetRef = React.createRef();\n this.scrollView = React.createRef();\n this.commentReply = React.createRef();\n this.commentSection = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.update) {\n this.checkLog(this.props.update);\n }\n if (!this.props.update || this.props.update.Type !== 'WelcomePage') {\n newsActions.getEntry(this.props.update ? this.props.update.RowId : this.props.id).then(res => {\n this.setState({\n loadingUpdate: false,\n update: res.data,\n });\n this.checkLog(res.data);\n });\n }\n\n setTimeout(() => {\n if (this.props.scrollToBottom) {\n this.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 2000);\n }\n\n onPressBack() {\n if (this.props.back) {\n NavigationService.goBack(this.props.back);\n } else {\n NavigationService.goBack();\n }\n }\n\n onPressAttachment(attachment) {\n this.setState({\n selectedPDF: attachment,\n selectedPDFIndex: this.state.update.Attachments.indexOf(attachment),\n });\n }\n\n onPressLink(link) {\n Linking.openURL(getValidUrl(link.Url)).catch(err => console.error('An error occurred', err));\n }\n\n onClosePDF() {\n this.setState({\n selectedPDF: null,\n selectedPDFIndex: null,\n });\n }\n\n onChangePDFIndex(index) {\n const newIndex = (this.state.selectedPDFIndex + index) % this.state.update.Attachments.length;\n this.setState({\n selectedPDF: this.state.update.Attachments[newIndex],\n selectedPDFIndex: newIndex,\n });\n }\n\n onPressFontScale() {\n this.setState({\n fontScaleOpen: !this.state.fontScaleOpen,\n });\n }\n\n getAdjustedSize(size) {\n return size + this.props.user.fontScale;\n }\n\n getTimeText() {\n const date = moment.utc(this.state.update.Timestamp).local();\n if (date.isSame(moment(), 'date')) {\n return 'Today';\n }\n return date.format('D MMM');\n }\n\n hasReacted() {\n if (!this.state.update || !this.state.update.Reactions) {\n return false;\n }\n return hasReacted(this.state.update.Reactions, this.props.user.uid);\n }\n\n refreshUpdate() {\n this.setState({\n update: this.state.update,\n });\n }\n\n checkLog(update) {\n if (!this.state.logged && update.Type !== 'WelcomePage') {\n this.setState({\n logged: true,\n });\n const data = {};\n if (update.SourceId) {\n data.sourceId = update.SourceId;\n }\n analyticsActions.log(update.Site, 'PageView', values.analyticsKey, update.RowId, data);\n }\n }\n\n changeFontSize(change) {\n this.props.softUpdateUser({ fontScale: this.props.user.fontScale + change });\n }\n\n showTagged() {\n this.setState({\n taggedOpen: true,\n });\n }\n\n closeTagged() {\n this.setState({\n taggedOpen: false,\n });\n }\n\n goToSponsor() {\n if (this.state.update.Sponsor.Internal) {\n NavigationService.navigate('service', { item: { ...this.state.update.Sponsor, fromNews: true } });\n } else {\n Linking.openURL(getValidUrl(this.state.update.Sponsor.Link)).catch(err => console.error('An error occurred', err));\n }\n }\n\n renderHeader() {\n return (\n <Header transparent>\n <View style={styles.headerContent}>\n <BackButton onPress={this.onPressBack.bind(this)} />\n <FontScaleButton onPress={this.onPressFontScale.bind(this)} />\n </View>\n </Header>\n );\n }\n\n renderTags() {\n if (_.isEmpty(this.state.update.Tags)) {\n return null;\n }\n let tagString = '';\n\n _.forEach(this.state.update.Tags, tag => {\n tagString += `${tag} `;\n });\n return <Text style={{ color: this.props.colourBrandingMain }}>{tagString}</Text>;\n }\n\n renderTaggedUsers() {\n if (_.isEmpty(this.state.update.Tagged)) {\n return null;\n }\n return (\n <TouchableOpacity onPress={this.showTagged.bind(this)}>\n <View style={styles.taggedUsersContainer}>\n {this.state.update.Tagged.map((user, index) => {\n if (index < 3) {\n return (\n <ProfilePic\n key={user.userId}\n ProfilePic={user.profilePic}\n Diameter={24}\n style={[styles.taggedUsersProfilePic, { left: index * -12, zIndex: index + 10 }]}\n bordered\n />\n );\n }\n })}\n <Text style={[styles.taggedUsersText, { left: Math.min(this.state.update.Tagged.length - 1, 2) * -12 }]}>\n {`${this.state.update.Tagged.length} tagged ${getPluralOptions(this.state.update.Tagged.length, 'person', 'people')}`}\n </Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderTaggedPopup() {\n if (_.isEmpty(this.state.update.Tagged)) {\n return null;\n }\n return (\n <UserListPopup\n users={this.state.update.Tagged}\n visible={this.state.taggedOpen}\n onClose={this.closeTagged.bind(this)}\n title=\"Tagged people\"\n />\n );\n }\n\n renderSponsor() {\n if (this.state.update.HasSponsor) {\n return (\n <View style={[styles.sponsorBanner, { backgroundColor: this.props.colourBrandingMain }]}>\n <TouchableOpacity style={styles.sponsorTouch} onPress={this.goToSponsor.bind(this)}>\n <ImageBackground\n style={{ height: 36, width: 36, backgroundColor: '#fff', borderRadius: 18, marginRight: 8 }}\n resizeMode=\"cover\"\n imageStyle={{ borderRadius: 18 }}\n source={{ uri: this.state.update.Sponsor.Image }}\n />\n <Text style={styles.sponsoredText} numberOfLines={2}>\n Sponsored by <Text style={styles.sponsoredTitle}>{this.state.update.Sponsor.Title}</Text>\n </Text>\n </TouchableOpacity>\n </View>\n );\n }\n return null;\n }\n\n renderPDF() {\n return (\n <PDFPopup\n source={!_.isEmpty(this.state.selectedPDF) && this.state.selectedPDF.Source}\n visible={!_.isEmpty(this.state.selectedPDF)}\n selectedIndex={this.state.selectedPDFIndex}\n pdfCount={this.state.update.Attachments ? this.state.update.Attachments.length : 0}\n onClose={this.onClosePDF.bind(this)}\n onChangeIndex={this.onChangePDFIndex.bind(this)}\n title={!_.isEmpty(this.state.selectedPDF) && this.state.selectedPDF.Title}\n />\n );\n }\n\n renderLinks() {\n if (_.isEmpty(this.state.update.Links)) {\n return null;\n }\n return this.state.update.Links.map((link, index) => {\n return (\n <TouchableOpacity\n onPress={() => {\n this.onPressLink(link);\n }}\n key={index}\n style={styles.attachmentContainer}\n >\n <View\n style={[\n styles.attachmentLogo,\n {\n backgroundColor: this.props.colourBrandingMain,\n },\n ]}\n >\n {isVideoUrl(link.Url) ? (\n <Icon name=\"video-camera\" type=\"font-awesome\" iconStyle={[styles.attachmentLogoText, styles.attachmentLogoIcon]} />\n ) : (\n <Text style={styles.attachmentLogoText}>Web</Text>\n )}\n </View>\n <View style={styles.attachmentFill}>\n <Text style={styles.attachmentTitle}>{link.Text}</Text>\n </View>\n </TouchableOpacity>\n );\n });\n }\n\n renderAttachments() {\n if (_.isEmpty(this.state.update.Attachments)) {\n return null;\n }\n return (\n <View style={styles.section}>\n <Text style={[styles.eventDeetTitle, styles.attachmentDeetTitle]}>Attachments</Text>\n {this.state.update.Attachments.map((attachment, index) => {\n return (\n <TouchableOpacity onPress={this.onPressAttachment.bind(this, attachment)} key={index} style={styles.attachmentContainer}>\n <View\n style={[\n styles.attachmentLogo,\n {\n backgroundColor: this.props.colourBrandingMain,\n },\n ]}\n >\n <Text style={styles.attachmentLogoText}>PDF</Text>\n </View>\n <View style={styles.attachmentFill}>\n <Text style={styles.attachmentTitle}>{attachment.Title}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n );\n }\n\n renderComments() {\n if (_.includes(this.props.user.hidden, values.optionNewsComments)) return null;\n if (!allowComments(this.state.update.AllowComments)) return null;\n\n return (\n <CommentSection\n scaleFont\n ref={this.commentSection}\n commentReply={this.commentReply}\n adminPermission=\"newsletter\"\n entityType={values.featureKey}\n entityId={this.state.update.RowId}\n entityName={this.state.update.Title}\n site={this.state.update.Site}\n live\n refreshFrequency={10000}\n />\n );\n }\n\n renderCommentReply() {\n if (!allowComments(this.state.update.AllowComments)) {\n return null;\n }\n return (\n <CommentReply\n ref={this.commentReply}\n commentSection={this.commentSection}\n scrollView={this.scrollView}\n entityType={values.featureKey}\n entityId={this.state.update.RowId}\n entityName={this.state.update.Title}\n site={this.state.update.Site}\n />\n );\n }\n\n renderAuthorTime() {\n let timestamp = (\n <Text style={[styles.timeText, { fontSize: this.getAdjustedSize(14) }]}>\n {this.getTimeText()}\n {!_.isEmpty(this.state.update.Tags) && ` ⋅ `}\n {this.renderTags()}\n </Text>\n );\n if (this.props.hideTimestamp) {\n timestamp = null;\n }\n if (!this.state.update.AuthorDisplay) {\n if (this.props.hideTimestamp) {\n return null;\n }\n return <View style={styles.authorTimeContainer}>{timestamp}</View>;\n }\n return (\n <View style={styles.authorTimeContainer}>\n {this.state.update.AuthorDisplay === 'name' && (\n <ProfilePic ProfilePic={this.state.update.Author.profilePic} style={styles.profilePic} size={36} />\n )}\n <View style={styles.fill}>\n <Text numberOfLines={1} style={styles.authorText}>\n {`By ${this.state.update.Author.displayName}`}\n </Text>\n {timestamp}\n </View>\n </View>\n );\n }\n\n render() {\n const { isFullScreen } = this.state;\n\n if (this.state.loadingUpdate) {\n return (\n <View style={styles.page}>\n <Header transparent>\n <View style={styles.headerContent}>\n <BackButton onPress={this.onPressBack.bind(this)} />\n </View>\n </Header>\n <ScrollView style={styles.container}>\n <Spinner color={this.props.colourBrandingMain} />\n </ScrollView>\n </View>\n );\n }\n\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.page}>\n {!isFullScreen && this.renderHeader()}\n <FontScalePopup\n style={styles.fontScalePopup}\n onPressSmall={this.changeFontSize.bind(this, -2)}\n onPressLarge={this.changeFontSize.bind(this, 2)}\n visible={this.state.fontScaleOpen}\n />\n {this.renderTaggedPopup()}\n <ScrollView keyboardShouldPersistTaps=\"handled\" style={styles.container} ref={this.scrollView}>\n <View style={{ minHeight: SCREEN_HEIGHT - StatusBarHeight(HEADER_HEIGHT) - 56 }}>\n {!isFullScreen && (\n <View style={styles.topContainer}>\n <Text style={[styles.title, { fontSize: this.getAdjustedSize(24), lineHeight: this.getAdjustedSize(32) }]}>\n {this.state.update.Title}\n </Text>\n {this.renderAuthorTime()}\n </View>\n )}\n <NewsletterImageSet\n ref={this.imageSetRef}\n news={this.state.update}\n width={SCREEN_WIDTH}\n orientationChanged={isFullScreen => this.setState({ isFullScreen })}\n />\n {!isFullScreen && (\n <View>\n {this.renderSponsor()}\n {this.renderTaggedUsers()}\n <View style={styles.bottomContainer}>\n <FormattedText style={[styles.text, { fontSize: this.getAdjustedSize(14), lineHeight: this.getAdjustedSize(24) }]}>\n {this.state.update.Text}\n </FormattedText>\n {this.renderLinks()}\n {this.renderAttachments()}\n {this.state.update.Type !== 'WelcomePage' && (\n <Reactions\n style={{ marginTop: 16 }}\n entity={this.state.update}\n entityType={values.featureKey}\n entityId={this.state.update ? this.state.update.RowId : `${getSite(this.props.user.site)}_${this.props.id}`}\n anyHighlighted={this.hasReacted()}\n user={this.props.user}\n site={this.state.update ? this.state.update.Site : getSite(this.props.user.site)}\n onUpdateReactions={this.refreshUpdate.bind(this)}\n />\n )}\n </View>\n {this.renderComments()}\n </View>\n )}\n </View>\n <View>\n {this.renderCommentReply()}\n {this.renderPDF()}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n page: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#fff',\n },\n section: {\n borderColor: LINEGREY,\n borderTopWidth: 1,\n marginTop: 16,\n paddingTop: 16,\n },\n eventDeetTitle: {\n fontFamily: 'sf-bold',\n color: TEXT_DARK,\n fontSize: 14,\n },\n\n attachmentContainer: {\n flexDirection: 'row',\n marginTop: 8,\n },\n attachmentLogo: {\n height: 48,\n width: 40,\n borderRadius: 4,\n justifyContent: 'center',\n marginRight: 20,\n },\n attachmentLogoText: {\n textAlign: 'center',\n color: '#fff',\n fontFamily: 'sf-bold',\n fontSize: 10,\n },\n attachmentLogoIcon: {\n fontSize: 18,\n },\n attachmentFill: {\n flex: 1,\n justifyContent: 'center',\n },\n attachmentTitle: {\n fontSize: 16,\n lineHeight: 22,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n sponsorBanner: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n width: '100%',\n flexDirection: 'row',\n },\n sponsorTouch: {\n flex: 1,\n height: 40,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sponsoredText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n color: '#fff',\n backgroundColor: 'transparent',\n flex: 1,\n },\n sponsoredTitle: {\n fontFamily: 'sf-medium',\n marginLeft: 4,\n },\n container: {\n flexGrow: 1,\n },\n topContainer: {\n padding: 16,\n },\n bottomContainer: {\n padding: 16,\n },\n title: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n lineHeight: 32,\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n timeText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_LIGHT,\n backgroundColor: 'transparent',\n },\n text: {\n fontSize: 16,\n lineHeight: 22,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n headerContent: {\n height: 70,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 15,\n flex: 1,\n },\n fontScalePopup: {\n position: 'absolute',\n top: StatusBarHeight(55),\n right: 5,\n zIndex: 100,\n },\n taggedUsersContainer: {\n marginTop: 8,\n flexDirection: 'row',\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n taggedUsersText: {\n fontFamily: 'sf-bold',\n color: TEXT_DARK,\n fontSize: 10,\n marginLeft: 8,\n },\n authorTimeContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 16,\n },\n profilePic: {\n marginRight: 8,\n },\n authorText: {\n fontFamily: 'sf-medium',\n fontSize: 14,\n color: TEXT_DARKEST,\n backgroundColor: 'transparent',\n marginBottom: 4,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n user: state.user,\n hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false),\n };\n};\n\nexport default withNavigationFocus(connect(mapStateToProps, { softUpdateUser })(NewsletterPost));\n"]}
|
|
@@ -4,7 +4,7 @@ import _ from 'lodash';
|
|
|
4
4
|
import moment from 'moment';
|
|
5
5
|
import { connect } from 'react-redux';
|
|
6
6
|
import NavigationService from '../../js/NavigationService';
|
|
7
|
-
import { getShadowStyle, TEXT_LIGHT, TEXT_DARKEST, TEXT_BLUEGREY, getMainBrandingColourFromState } from '../../js';
|
|
7
|
+
import { getShadowStyle, TEXT_LIGHT, TEXT_DARKEST, TEXT_BLUEGREY, getMainBrandingColourFromState, getSiteSettingFromState } from '../../js';
|
|
8
8
|
import { Pl60Icon } from '../../assets/fonts';
|
|
9
9
|
import { values } from '../../values.config';
|
|
10
10
|
|
|
@@ -16,6 +16,10 @@ class NewsletterPreview2 extends Component {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
getTimeText() {
|
|
19
|
+
if (this.props.hideTimestamp) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
const date = moment.utc(this.props.update.Timestamp).local();
|
|
20
24
|
|
|
21
25
|
if (date.isSame(moment(), 'date')) {
|
|
@@ -138,7 +142,8 @@ const styles = {
|
|
|
138
142
|
|
|
139
143
|
const mapStateToProps = state => {
|
|
140
144
|
return {
|
|
141
|
-
colourBrandingMain: getMainBrandingColourFromState(state)
|
|
145
|
+
colourBrandingMain: getMainBrandingColourFromState(state),
|
|
146
|
+
hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false)
|
|
142
147
|
};
|
|
143
148
|
};
|
|
144
149
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NewsletterPreview2.js"],"names":["React","Component","View","Text","Image","TouchableOpacity","_","moment","connect","NavigationService","getShadowStyle","TEXT_LIGHT","TEXT_DARKEST","TEXT_BLUEGREY","getMainBrandingColourFromState","Pl60Icon","values","NewsletterPreview2","onPress","navigate","screenNewsletterPost","update","props","getTimeText","date","utc","Timestamp","local","isSame","format","getImage","isUndefined","Thumbnail","isEmpty","renderTags","Tags","tagString","forEach","tag","color","colourBrandingMain","renderRight","styles","rightContainer","newsIconContainer","newsIcon","uri","render","key","index","bind","newsContainerTouchable","marginTop","newsContainer","newsLeft","newsTitle","numberOfLines","Title","newsDate","width","flexDirection","height","marginLeft","borderRadius","alignItems","justifyContent","fontSize","flex","paddingVertical","fontFamily","mapStateToProps","state"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,KAArB,EAA4BC,gBAA5B,QAAoD,cAApD;AACA,OAAOC,CAAP,MAAc,QAAd;AACA,OAAOC,MAAP,MAAmB,QAAnB;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,OAAOC,iBAAP,MAA8B,4BAA9B;AACA,SAASC,cAAT,EAAyBC,UAAzB,EAAqCC,YAArC,EAAmDC,aAAnD,EAAkEC,8BAAlE,
|
|
1
|
+
{"version":3,"sources":["NewsletterPreview2.js"],"names":["React","Component","View","Text","Image","TouchableOpacity","_","moment","connect","NavigationService","getShadowStyle","TEXT_LIGHT","TEXT_DARKEST","TEXT_BLUEGREY","getMainBrandingColourFromState","getSiteSettingFromState","Pl60Icon","values","NewsletterPreview2","onPress","navigate","screenNewsletterPost","update","props","getTimeText","hideTimestamp","date","utc","Timestamp","local","isSame","format","getImage","isUndefined","Thumbnail","isEmpty","renderTags","Tags","tagString","forEach","tag","color","colourBrandingMain","renderRight","styles","rightContainer","newsIconContainer","newsIcon","uri","render","key","index","bind","newsContainerTouchable","marginTop","newsContainer","newsLeft","newsTitle","numberOfLines","Title","newsDate","width","flexDirection","height","marginLeft","borderRadius","alignItems","justifyContent","fontSize","flex","paddingVertical","fontFamily","mapStateToProps","state","optionHideTimestamp"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, Image, TouchableOpacity } from 'react-native';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport NavigationService from '../../js/NavigationService';\nimport { getShadowStyle, TEXT_LIGHT, TEXT_DARKEST, TEXT_BLUEGREY, getMainBrandingColourFromState, getSiteSettingFromState } from '../../js';\nimport { Pl60Icon } from '../../assets/fonts';\nimport { values } from '../../values.config';\n\nclass NewsletterPreview2 extends Component {\n onPress() {\n NavigationService.navigate(values.screenNewsletterPost, { update: this.props.update });\n }\n\n getTimeText() {\n if (this.props.hideTimestamp) {\n return null;\n }\n const date = moment.utc(this.props.update.Timestamp).local();\n if (date.isSame(moment(), 'date')) {\n return 'Today';\n }\n return date.format('D MMM');\n }\n\n getImage() {\n if (!_.isUndefined(this.props.update.Thumbnail) && !_.isEmpty(this.props.update.Thumbnail)) {\n return this.props.update.Thumbnail;\n }\n return this.props.update.Image;\n }\n\n renderTags() {\n if (_.isEmpty(this.props.update.Tags)) {\n return null;\n }\n let tagString = '';\n\n _.forEach(this.props.update.Tags, tag => {\n tagString += `${tag} `;\n });\n return <Text style={{ color: this.props.colourBrandingMain }}>{tagString}</Text>;\n }\n\n renderRight() {\n if (!this.props.update.Image) {\n return (\n <View style={[styles.rightContainer, styles.newsIconContainer, getShadowStyle()]}>\n <Pl60Icon name=\"news\" style={styles.newsIcon} />\n </View>\n );\n }\n return <Image source={{ uri: this.getImage() }} style={[styles.rightContainer, getShadowStyle()]} />;\n }\n\n render() {\n return (\n <TouchableOpacity\n key={this.props.key}\n index={this.props.index}\n onPress={this.onPress.bind(this)}\n style={[styles.newsContainerTouchable, this.props.index === 0 && { marginTop: 0 }]}\n >\n <View style={styles.newsContainer}>\n {this.renderRight()}\n <View style={styles.newsLeft}>\n <Text style={styles.newsTitle} numberOfLines={this.props.numberOfLines || 2}>\n {this.props.update.Title}\n </Text>\n <Text style={styles.newsDate} numberOfLines={1}>\n {this.getTimeText(this.props.update)}\n {!_.isEmpty(this.props.update.Tags) && ` ⋅ `}\n {this.renderTags(this.props.update)}\n </Text>\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = {\n newsContainerTouchable: {\n width: '100%',\n // height: 80,\n marginTop: 24,\n },\n newsContainer: {\n width: '100%',\n // height: 80,\n flexDirection: 'row-reverse',\n },\n rightContainer: {\n width: 80,\n height: 80,\n marginLeft: 16,\n borderRadius: 4,\n },\n newsIconContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n newsIcon: {\n fontSize: 30,\n color: TEXT_BLUEGREY,\n },\n newsLeft: {\n flex: 1,\n // height: 80,\n justifyContent: 'space-between',\n paddingVertical: 4,\n },\n newsTitle: {\n fontFamily: 'sf-medium',\n color: TEXT_DARKEST,\n fontSize: 16,\n },\n newsDate: {\n fontFamily: 'sf-medium',\n color: TEXT_LIGHT,\n fontSize: 14,\n marginTop: 4,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n hideTimestamp: getSiteSettingFromState(state, values.optionHideTimestamp, false),\n };\n};\n\nexport default connect(mapStateToProps, {})(NewsletterPreview2);\n"]}
|
|
@@ -18,6 +18,7 @@ const values = {
|
|
|
18
18
|
permissionNewsletter: 'newsletterAwards',
|
|
19
19
|
accessPostingPermitted: 'postingPermittedAwards',
|
|
20
20
|
accessReviewRequired: 'reviewRequiredAwards',
|
|
21
|
+
optionHideTimestamp: 'newsHideTimestampAwards',
|
|
21
22
|
optionForceNewsAuthorName: 'forceNewsAuthorNameAwards',
|
|
22
23
|
optionNewsComments: 'newsCommentsAwards',
|
|
23
24
|
optionNewsNotifications: 'newsNotificationsAwards',
|