@plusscommunities/pluss-core-app 8.0.0 → 8.0.1-auth.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/dist/module/actions/FollowerActions.js +4 -4
  2. package/dist/module/actions/FollowerActions.js.map +1 -1
  3. package/dist/module/actions/MediaActions.js +1 -1
  4. package/dist/module/actions/MediaActions.js.map +1 -1
  5. package/dist/module/actions/ResidentActions.js +1 -1
  6. package/dist/module/actions/ResidentActions.js.map +1 -1
  7. package/dist/module/actions/UserActions.js +1 -1
  8. package/dist/module/actions/UserActions.js.map +1 -1
  9. package/dist/module/actions/UserSettingsActions.js +1 -1
  10. package/dist/module/actions/UserSettingsActions.js.map +1 -1
  11. package/dist/module/actions/index.js +5 -5
  12. package/dist/module/actions/index.js.map +1 -1
  13. package/dist/module/actions/types.js +16 -16
  14. package/dist/module/actions/types.js.map +1 -1
  15. package/dist/module/apis/analyticsActions.js +5 -5
  16. package/dist/module/apis/analyticsActions.js.map +1 -1
  17. package/dist/module/apis/contactActions.js +6 -6
  18. package/dist/module/apis/contactActions.js.map +1 -1
  19. package/dist/module/apis/eventActions.js +28 -28
  20. package/dist/module/apis/eventActions.js.map +1 -1
  21. package/dist/module/apis/fileActions.js +15 -15
  22. package/dist/module/apis/fileActions.js.map +1 -1
  23. package/dist/module/apis/followerActions.js +8 -8
  24. package/dist/module/apis/followerActions.js.map +1 -1
  25. package/dist/module/apis/index.js +12 -12
  26. package/dist/module/apis/index.js.map +1 -1
  27. package/dist/module/apis/notificationActions.js +17 -17
  28. package/dist/module/apis/notificationActions.js.map +1 -1
  29. package/dist/module/apis/profileActions.js +4 -4
  30. package/dist/module/apis/profileActions.js.map +1 -1
  31. package/dist/module/apis/reactionActions.js +15 -15
  32. package/dist/module/apis/reactionActions.js.map +1 -1
  33. package/dist/module/apis/settingActions.js +6 -6
  34. package/dist/module/apis/settingActions.js.map +1 -1
  35. package/dist/module/apis/stringActions.js +8 -8
  36. package/dist/module/apis/stringActions.js.map +1 -1
  37. package/dist/module/apis/typeActions.js +4 -4
  38. package/dist/module/apis/typeActions.js.map +1 -1
  39. package/dist/module/apis/userActions.js +8 -8
  40. package/dist/module/apis/userActions.js.map +1 -1
  41. package/dist/module/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
  42. package/dist/module/assets/icons/fontawesome/fa-light-300.ttf +0 -0
  43. package/dist/module/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
  44. package/dist/module/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
  45. package/dist/module/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
  46. package/dist/module/assets/icons/fontawesome/fa7-glyphmap.json +4205 -0
  47. package/dist/module/colours.js +26 -29
  48. package/dist/module/colours.js.map +1 -1
  49. package/dist/module/components/AddButton.js +8 -8
  50. package/dist/module/components/AddButton.js.map +1 -1
  51. package/dist/module/components/AddToCalendarButton.js +30 -29
  52. package/dist/module/components/AddToCalendarButton.js.map +1 -1
  53. package/dist/module/components/Attachment.js +10 -9
  54. package/dist/module/components/Attachment.js.map +1 -1
  55. package/dist/module/components/AudienceSelectorLauncher.js +11 -11
  56. package/dist/module/components/AudienceSelectorLauncher.js.map +1 -1
  57. package/dist/module/components/AudienceSelectorPage.js +45 -44
  58. package/dist/module/components/AudienceSelectorPage.js.map +1 -1
  59. package/dist/module/components/AutoOffsetImage.js +13 -13
  60. package/dist/module/components/AutoOffsetImage.js.map +1 -1
  61. package/dist/module/components/BackButton.js +10 -10
  62. package/dist/module/components/BackButton.js.map +1 -1
  63. package/dist/module/components/CalendarPopup.js +21 -21
  64. package/dist/module/components/CalendarPopup.js.map +1 -1
  65. package/dist/module/components/CategoryTabs.js +30 -29
  66. package/dist/module/components/CategoryTabs.js.map +1 -1
  67. package/dist/module/components/CommentReply.js +43 -37
  68. package/dist/module/components/CommentReply.js.map +1 -1
  69. package/dist/module/components/CommentSection.js +74 -74
  70. package/dist/module/components/CommentSection.js.map +1 -1
  71. package/dist/module/components/ConfirmPopup.js +21 -20
  72. package/dist/module/components/ConfirmPopup.js.map +1 -1
  73. package/dist/module/components/ConfirmationPopup.js +11 -11
  74. package/dist/module/components/ConfirmationPopup.js.map +1 -1
  75. package/dist/module/components/DocumentUploader.js +50 -50
  76. package/dist/module/components/DocumentUploader.js.map +1 -1
  77. package/dist/module/components/DropDownItem.js +14 -13
  78. package/dist/module/components/DropDownItem.js.map +1 -1
  79. package/dist/module/components/DropDownMenu.js +5 -5
  80. package/dist/module/components/DropDownMenu.js.map +1 -1
  81. package/dist/module/components/EmptyStateMain.js +10 -9
  82. package/dist/module/components/EmptyStateMain.js.map +1 -1
  83. package/dist/module/components/EmptyStateWidget.js +7 -6
  84. package/dist/module/components/EmptyStateWidget.js.map +1 -1
  85. package/dist/module/components/FontScaleButton.js +5 -4
  86. package/dist/module/components/FontScaleButton.js.map +1 -1
  87. package/dist/module/components/FontScalePopup.js +11 -10
  88. package/dist/module/components/FontScalePopup.js.map +1 -1
  89. package/dist/module/components/Forbidden.js +13 -13
  90. package/dist/module/components/Forbidden.js.map +1 -1
  91. package/dist/module/components/FormCard.js +4 -4
  92. package/dist/module/components/FormCard.js.map +1 -1
  93. package/dist/module/components/FormCardSection.js +20 -18
  94. package/dist/module/components/FormCardSection.js.map +1 -1
  95. package/dist/module/components/FormCardSectionOptionLauncher.js +13 -12
  96. package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -1
  97. package/dist/module/components/FormattedText.js +18 -16
  98. package/dist/module/components/FormattedText.js.map +1 -1
  99. package/dist/module/components/GenericInput.js +24 -21
  100. package/dist/module/components/GenericInput.js.map +1 -1
  101. package/dist/module/components/GenericInputSection.js +27 -26
  102. package/dist/module/components/GenericInputSection.js.map +1 -1
  103. package/dist/module/components/Header.js +70 -69
  104. package/dist/module/components/Header.js.map +1 -1
  105. package/dist/module/components/Icon.js +109 -0
  106. package/dist/module/components/Icon.js.map +1 -0
  107. package/dist/module/components/ImagePopup.js +211 -73
  108. package/dist/module/components/ImagePopup.js.map +1 -1
  109. package/dist/module/components/ImageUploadProgress.js +10 -9
  110. package/dist/module/components/ImageUploadProgress.js.map +1 -1
  111. package/dist/module/components/ImageUploader.js +116 -96
  112. package/dist/module/components/ImageUploader.js.map +1 -1
  113. package/dist/module/components/InlineButton.js +9 -8
  114. package/dist/module/components/InlineButton.js.map +1 -1
  115. package/dist/module/components/Input.js +28 -26
  116. package/dist/module/components/Input.js.map +1 -1
  117. package/dist/module/components/LoadingCircles.js +20 -20
  118. package/dist/module/components/LoadingCircles.js.map +1 -1
  119. package/dist/module/components/LoadingIndicator.js +11 -11
  120. package/dist/module/components/LoadingIndicator.js.map +1 -1
  121. package/dist/module/components/LoadingStateWidget.js +5 -5
  122. package/dist/module/components/LoadingStateWidget.js.map +1 -1
  123. package/dist/module/components/MediaPlayer.js +31 -31
  124. package/dist/module/components/MediaPlayer.js.map +1 -1
  125. package/dist/module/components/MiddlePopup.js +17 -11
  126. package/dist/module/components/MiddlePopup.js.map +1 -1
  127. package/dist/module/components/PDFPopup.js +52 -39
  128. package/dist/module/components/PDFPopup.js.map +1 -1
  129. package/dist/module/components/PlussChat.js +168 -149
  130. package/dist/module/components/PlussChat.js.map +1 -1
  131. package/dist/module/components/PlussChatMessage.js +42 -42
  132. package/dist/module/components/PlussChatMessage.js.map +1 -1
  133. package/dist/module/components/PlussChatTime.js +18 -17
  134. package/dist/module/components/PlussChatTime.js.map +1 -1
  135. package/dist/module/components/Popup.js +20 -19
  136. package/dist/module/components/Popup.js.map +1 -1
  137. package/dist/module/components/PopupMenu.js +15 -14
  138. package/dist/module/components/PopupMenu.js.map +1 -1
  139. package/dist/module/components/PositionedImage.js +20 -20
  140. package/dist/module/components/PositionedImage.js.map +1 -1
  141. package/dist/module/components/ProfilePic.js +10 -10
  142. package/dist/module/components/ProfilePic.js.map +1 -1
  143. package/dist/module/components/RadioButton.js +10 -9
  144. package/dist/module/components/RadioButton.js.map +1 -1
  145. package/dist/module/components/Reaction.js +18 -17
  146. package/dist/module/components/Reaction.js.map +1 -1
  147. package/dist/module/components/Reactions.js +7 -7
  148. package/dist/module/components/Reactions.js.map +1 -1
  149. package/dist/module/components/SharingTools.js +78 -43
  150. package/dist/module/components/SharingTools.js.map +1 -1
  151. package/dist/module/components/Spinner.js +5 -5
  152. package/dist/module/components/Spinner.js.map +1 -1
  153. package/dist/module/components/StickyFooter.js +6 -6
  154. package/dist/module/components/StickyFooter.js.map +1 -1
  155. package/dist/module/components/Text.js +57 -0
  156. package/dist/module/components/Text.js.map +1 -0
  157. package/dist/module/components/TickIcon.js +6 -6
  158. package/dist/module/components/TickIcon.js.map +1 -1
  159. package/dist/module/components/Toggle.js +10 -9
  160. package/dist/module/components/Toggle.js.map +1 -1
  161. package/dist/module/components/TouchableSearchBar.js +18 -17
  162. package/dist/module/components/TouchableSearchBar.js.map +1 -1
  163. package/dist/module/components/UserListPopup.js +20 -19
  164. package/dist/module/components/UserListPopup.js.map +1 -1
  165. package/dist/module/components/UserListing.js +41 -40
  166. package/dist/module/components/UserListing.js.map +1 -1
  167. package/dist/module/components/VideoPopup.js +20 -20
  168. package/dist/module/components/VideoPopup.js.map +1 -1
  169. package/dist/module/components/WarningPopup.js +21 -20
  170. package/dist/module/components/WarningPopup.js.map +1 -1
  171. package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js +13 -13
  172. package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js.map +1 -1
  173. package/dist/module/components/expo-image-picker-multiple/ImageTile.js +24 -23
  174. package/dist/module/components/expo-image-picker-multiple/ImageTile.js.map +1 -1
  175. package/dist/module/components/index.js +59 -58
  176. package/dist/module/components/index.js.map +1 -1
  177. package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js +94 -64
  178. package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js.map +1 -1
  179. package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js +64 -64
  180. package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js.map +1 -1
  181. package/dist/module/config.js +15 -10
  182. package/dist/module/config.js.map +1 -1
  183. package/dist/module/constants.js +3 -4
  184. package/dist/module/constants.js.map +1 -1
  185. package/dist/module/helper.js +83 -82
  186. package/dist/module/helper.js.map +1 -1
  187. package/dist/module/index.js +12 -12
  188. package/dist/module/index.js.map +1 -1
  189. package/dist/module/js/images/detectFaces.js +11 -10
  190. package/dist/module/js/images/detectFaces.js.map +1 -1
  191. package/dist/module/js/images/findLandmarkRange.js +8 -8
  192. package/dist/module/js/images/findLandmarkRange.js.map +1 -1
  193. package/dist/module/js/images/getScaledOffset.js.map +1 -1
  194. package/dist/module/js/site/getSiteLevelFromState.js +2 -2
  195. package/dist/module/js/site/getSiteLevelFromState.js.map +1 -1
  196. package/dist/module/js/site/isTVEnabled.js +2 -2
  197. package/dist/module/js/site/isTVEnabled.js.map +1 -1
  198. package/dist/module/session.js +6 -6
  199. package/dist/module/session.js.map +1 -1
  200. package/dist/module/styles.js +17 -17
  201. package/dist/module/styles.js.map +1 -1
  202. package/dist/module/withNavigationFocus.js +30 -0
  203. package/dist/module/withNavigationFocus.js.map +1 -0
  204. package/package.json +71 -68
  205. package/src/actions/FollowerActions.js +36 -32
  206. package/src/actions/MediaActions.js +25 -20
  207. package/src/actions/ResidentActions.js +26 -21
  208. package/src/actions/UserActions.js +22 -22
  209. package/src/actions/UserSettingsActions.js +11 -11
  210. package/src/actions/index.js +5 -5
  211. package/src/actions/types.js +16 -16
  212. package/src/apis/analyticsActions.js +17 -17
  213. package/src/apis/contactActions.js +20 -20
  214. package/src/apis/eventActions.js +153 -144
  215. package/src/apis/fileActions.js +96 -86
  216. package/src/apis/followerActions.js +29 -29
  217. package/src/apis/index.js +12 -12
  218. package/src/apis/notificationActions.js +44 -44
  219. package/src/apis/profileActions.js +8 -8
  220. package/src/apis/reactionActions.js +81 -73
  221. package/src/apis/settingActions.js +15 -15
  222. package/src/apis/stringActions.js +29 -25
  223. package/src/apis/typeActions.js +10 -10
  224. package/src/apis/userActions.js +93 -93
  225. package/src/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
  226. package/src/assets/icons/fontawesome/fa-light-300.ttf +0 -0
  227. package/src/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
  228. package/src/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
  229. package/src/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
  230. package/src/assets/icons/fontawesome/fa7-glyphmap.json +4205 -0
  231. package/src/colours.js +116 -96
  232. package/src/components/AddButton.js +32 -27
  233. package/src/components/AddToCalendarButton.js +236 -202
  234. package/src/components/Attachment.js +59 -36
  235. package/src/components/AudienceSelectorLauncher.js +52 -48
  236. package/src/components/AudienceSelectorPage.js +353 -311
  237. package/src/components/AutoOffsetImage.js +237 -196
  238. package/src/components/BackButton.js +57 -41
  239. package/src/components/CalendarPopup.js +127 -97
  240. package/src/components/CategoryTabs.js +208 -163
  241. package/src/components/CommentReply.js +370 -309
  242. package/src/components/CommentSection.js +974 -781
  243. package/src/components/ConfirmPopup.js +141 -110
  244. package/src/components/ConfirmationPopup.js +80 -69
  245. package/src/components/DocumentUploader.js +245 -215
  246. package/src/components/DropDownItem.js +70 -60
  247. package/src/components/DropDownMenu.js +31 -27
  248. package/src/components/EmptyStateMain.js +51 -44
  249. package/src/components/EmptyStateWidget.js +47 -38
  250. package/src/components/FontScaleButton.js +29 -25
  251. package/src/components/FontScalePopup.js +67 -56
  252. package/src/components/Forbidden.js +48 -46
  253. package/src/components/FormCard.js +21 -17
  254. package/src/components/FormCardSection.js +284 -233
  255. package/src/components/FormCardSectionOptionLauncher.js +72 -46
  256. package/src/components/FormattedText.js +128 -111
  257. package/src/components/GenericInput.js +168 -136
  258. package/src/components/GenericInputSection.js +209 -161
  259. package/src/components/Header.js +620 -474
  260. package/src/components/Icon.js +119 -0
  261. package/src/components/ImagePopup.js +425 -221
  262. package/src/components/ImageUploadProgress.js +49 -41
  263. package/src/components/ImageUploader.js +968 -797
  264. package/src/components/InlineButton.js +79 -69
  265. package/src/components/Input.js +190 -156
  266. package/src/components/LoadingCircles.js +233 -233
  267. package/src/components/LoadingIndicator.js +87 -76
  268. package/src/components/LoadingStateWidget.js +47 -37
  269. package/src/components/MediaPlayer.js +416 -387
  270. package/src/components/MiddlePopup.js +62 -33
  271. package/src/components/PDFPopup.js +212 -159
  272. package/src/components/PlussChat.js +1224 -1025
  273. package/src/components/PlussChatMessage.js +329 -298
  274. package/src/components/PlussChatTime.js +57 -53
  275. package/src/components/Popup.js +138 -116
  276. package/src/components/PopupMenu.js +140 -110
  277. package/src/components/PositionedImage.js +281 -237
  278. package/src/components/ProfilePic.js +122 -113
  279. package/src/components/RadioButton.js +76 -52
  280. package/src/components/Reaction.js +134 -96
  281. package/src/components/Reactions.js +65 -63
  282. package/src/components/SharingTools.js +185 -134
  283. package/src/components/Spinner.js +13 -13
  284. package/src/components/StickyFooter.js +36 -26
  285. package/src/components/Text.js +62 -0
  286. package/src/components/TickIcon.js +20 -20
  287. package/src/components/Toggle.js +74 -73
  288. package/src/components/TouchableSearchBar.js +68 -50
  289. package/src/components/UserListPopup.js +161 -124
  290. package/src/components/UserListing.js +273 -238
  291. package/src/components/VideoPopup.js +110 -96
  292. package/src/components/WarningPopup.js +92 -71
  293. package/src/components/expo-image-picker-multiple/ImageBrowser.js +288 -256
  294. package/src/components/expo-image-picker-multiple/ImageTile.js +108 -84
  295. package/src/components/index.js +59 -58
  296. package/src/components/react-native-expo-image-cropper/ExpoImageManipulator.js +444 -359
  297. package/src/components/react-native-expo-image-cropper/ImageCropOverlay.js +420 -324
  298. package/src/config.js +26 -21
  299. package/src/constants.js +8 -10
  300. package/src/helper.js +469 -438
  301. package/src/index.js +24 -12
  302. package/src/js/images/detectFaces.js +28 -21
  303. package/src/js/images/findLandmarkRange.js +97 -90
  304. package/src/js/images/getScaledOffset.js +80 -75
  305. package/src/js/site/getSiteLevelFromState.js +26 -26
  306. package/src/js/site/isTVEnabled.js +10 -10
  307. package/src/session.js +32 -32
  308. package/src/styles.js +61 -61
  309. package/src/withNavigationFocus.js +28 -0
  310. package/dist/module/components/TextStyle.js +0 -45
  311. package/dist/module/components/TextStyle.js.map +0 -1
  312. package/dist/module/fonts/index.js +0 -2
  313. package/dist/module/fonts/index.js.map +0 -1
  314. package/dist/module/fonts/pluss60-icons.js +0 -5
  315. package/dist/module/fonts/pluss60-icons.js.map +0 -1
  316. package/dist/module/fonts/pluss60-icons.json +0 -1097
  317. package/src/components/TextStyle.js +0 -48
  318. package/src/fonts/index.js +0 -1
  319. package/src/fonts/pluss60-icons.js +0 -7
  320. package/src/fonts/pluss60-icons.json +0 -1097
@@ -1,344 +1,386 @@
1
- import React, { Component } from 'react';
2
- import { connect } from 'react-redux';
3
- import _ from 'lodash';
4
- import { TouchableOpacity, View, ScrollView, Text, StyleSheet } from 'react-native';
5
- import { Icon } from '@rneui/themed';
6
- import { Services } from '../config';
7
- import { FormCard } from './FormCard';
8
- import { FormCardSection } from './FormCardSection';
9
- import { InlineButton } from './InlineButton';
10
- import Header from './Header';
11
- import { Spinner } from './Spinner';
12
- import { TEXT_DARK, COLOUR_GREEN, BG_GREY, INACTIVE_BUTTON, TEXT_LIGHT, getMainBrandingColourFromState } from '../colours';
13
- import { typeActions, profileActions } from '../apis';
1
+ import React, { Component } from "react";
2
+ import { Text } from "@plusscommunities/pluss-core-app/components";
3
+ import { connect } from "react-redux";
4
+ import _ from "lodash";
5
+ import { TouchableOpacity, View, ScrollView, StyleSheet } from "react-native";
6
+ import { Icon } from "@rneui/themed";
7
+ import { Services } from "../config";
8
+ import { FormCard } from "./FormCard";
9
+ import { FormCardSection } from "./FormCardSection";
10
+ import { InlineButton } from "./InlineButton";
11
+ import Header from "./Header";
12
+ import { Spinner } from "./Spinner";
13
+ import {
14
+ TEXT_DARK,
15
+ COLOUR_GREEN,
16
+ BG_GREY,
17
+ INACTIVE_BUTTON,
18
+ TEXT_LIGHT,
19
+ getMainBrandingColourFromState,
20
+ } from "../colours";
21
+ import { typeActions, profileActions } from "../apis";
14
22
 
15
23
  class AudienceSelectorPage extends Component {
16
- constructor(props) {
17
- super(props);
24
+ constructor(props) {
25
+ super(props);
18
26
 
19
- this.state = {
20
- loading: false,
21
- categories: [
22
- {
23
- name: 'All Primary Users',
24
- key: 'resident',
25
- },
26
- {
27
- name: 'All Staff Users',
28
- key: 'staff',
29
- },
30
- {
31
- name: 'All Linked Users',
32
- key: 'family',
33
- },
34
- ],
35
- types: [],
36
- tags: [],
37
- combinedList: [],
38
- seeAll: false,
39
- };
40
- }
27
+ this.state = {
28
+ loading: false,
29
+ categories: [
30
+ {
31
+ name: "All Primary Users",
32
+ key: "resident",
33
+ },
34
+ {
35
+ name: "All Staff Users",
36
+ key: "staff",
37
+ },
38
+ {
39
+ name: "All Linked Users",
40
+ key: "family",
41
+ },
42
+ ],
43
+ types: [],
44
+ tags: [],
45
+ combinedList: [],
46
+ seeAll: false,
47
+ };
48
+ }
41
49
 
42
- componentDidMount = async () => {
43
- try {
44
- this.setState({ loading: true });
45
- await this.getUserTypes();
46
- await this.getUserTags();
47
- this.setState({ loading: false, combinedList: this.getAvailableAudienceTags() });
48
- } catch (error) {
49
- console.error('loading types error', error);
50
- this.setState({ loading: false });
51
- }
52
- };
50
+ componentDidMount = async () => {
51
+ try {
52
+ this.setState({ loading: true });
53
+ await this.getUserTypes();
54
+ await this.getUserTags();
55
+ this.setState({
56
+ loading: false,
57
+ combinedList: this.getAvailableAudienceTags(),
58
+ });
59
+ } catch (error) {
60
+ console.error("loading types error", error);
61
+ this.setState({ loading: false });
62
+ }
63
+ };
53
64
 
54
- getUserTypes = async () => {
55
- const { data } = await typeActions.getUserTypes(this.props.site);
56
- data.forEach(e => {
57
- e.name = e.category ? `(${e.category[0].toUpperCase() + e.category.substring(1)}) ${e.displayName}` : e.displayName;
58
- e.key = e.typeName;
59
- });
60
- // console.log('getUserTypes', data);
61
- this.setState({ types: data });
62
- };
65
+ getUserTypes = async () => {
66
+ const { data } = await typeActions.getUserTypes(this.props.site);
67
+ data.forEach((e) => {
68
+ e.name = e.category
69
+ ? `(${e.category[0].toUpperCase() + e.category.substring(1)}) ${e.displayName}`
70
+ : e.displayName;
71
+ e.key = e.typeName;
72
+ });
73
+ // console.log('getUserTypes', data);
74
+ this.setState({ types: data });
75
+ };
63
76
 
64
- getUserTags = async () => {
65
- const { data } = await profileActions.getUserTagsBySite(this.props.site);
66
- data.forEach(e => {
67
- e.name = e.Title;
68
- e.key = e.Id;
69
- });
70
- // console.log('getUserTags', data);
71
- this.setState({ tags: data });
72
- };
77
+ getUserTags = async () => {
78
+ const { data } = await profileActions.getUserTagsBySite(this.props.site);
79
+ data.forEach((e) => {
80
+ e.name = e.Title;
81
+ e.key = e.Id;
82
+ });
83
+ // console.log('getUserTags', data);
84
+ this.setState({ tags: data });
85
+ };
73
86
 
74
- getAvailableAudienceTags = () => {
75
- const { categories, types, tags } = this.state;
76
- const { audienceTypeSelection } = this.props;
87
+ getAvailableAudienceTags = () => {
88
+ const { categories, types, tags } = this.state;
89
+ const { audienceTypeSelection } = this.props;
77
90
 
78
- const categoryTags = categories.map(c => {
79
- const Id = `category_${c.key}`;
80
- return {
81
- AudienceType: 'Category',
82
- AudienceTypeSelection: c.key,
83
- Id,
84
- Title: c.name,
85
- Selected: audienceTypeSelection.some(i => i.Id === Id),
86
- };
87
- });
88
- const userTypeTags = types.map(t => {
89
- const Id = `userType_${t.typeName}`;
90
- return {
91
- AudienceType: 'UserType',
92
- AudienceTypeSelection: t.typeName,
93
- Id,
94
- Title: `User Type: ${t.displayName}`,
95
- Selected: audienceTypeSelection.some(i => i.Id === Id),
96
- };
97
- });
98
- const userTagTags = tags.map(t => {
99
- const Id = `userTag_${t.Id}`;
100
- return {
101
- AudienceType: 'UserTags',
102
- AudienceTypeSelection: t.Id,
103
- Id,
104
- Title: `User Tag: ${t.Title}`,
105
- Selected: audienceTypeSelection.some(i => i.Id === Id),
106
- };
107
- });
108
- return [...categoryTags, ...userTypeTags, ...userTagTags];
109
- };
91
+ const categoryTags = categories.map((c) => {
92
+ const Id = `category_${c.key}`;
93
+ return {
94
+ AudienceType: "Category",
95
+ AudienceTypeSelection: c.key,
96
+ Id,
97
+ Title: c.name,
98
+ Selected: audienceTypeSelection.some((i) => i.Id === Id),
99
+ };
100
+ });
101
+ const userTypeTags = types.map((t) => {
102
+ const Id = `userType_${t.typeName}`;
103
+ return {
104
+ AudienceType: "UserType",
105
+ AudienceTypeSelection: t.typeName,
106
+ Id,
107
+ Title: `User Type: ${t.displayName}`,
108
+ Selected: audienceTypeSelection.some((i) => i.Id === Id),
109
+ };
110
+ });
111
+ const userTagTags = tags.map((t) => {
112
+ const Id = `userTag_${t.Id}`;
113
+ return {
114
+ AudienceType: "UserTags",
115
+ AudienceTypeSelection: t.Id,
116
+ Id,
117
+ Title: `User Tag: ${t.Title}`,
118
+ Selected: audienceTypeSelection.some((i) => i.Id === Id),
119
+ };
120
+ });
121
+ return [...categoryTags, ...userTypeTags, ...userTagTags];
122
+ };
110
123
 
111
- onPressBack = () => {
112
- Services.navigation.goBack();
113
- };
124
+ onPressBack = () => {
125
+ Services.navigation.goBack();
126
+ };
114
127
 
115
- onSelectAll = () => {
116
- const newList = [...this.state.combinedList];
117
- newList.forEach(i => (i.Selected = false));
118
- this.setState({ combinedList: newList });
119
- };
128
+ onSelectAll = () => {
129
+ const newList = [...this.state.combinedList];
130
+ newList.forEach((i) => (i.Selected = false));
131
+ this.setState({ combinedList: newList });
132
+ };
120
133
 
121
- onSeeAll = () => {
122
- this.setState({ seeAll: !this.state.seeAll });
123
- };
134
+ onSeeAll = () => {
135
+ this.setState({ seeAll: !this.state.seeAll });
136
+ };
124
137
 
125
- onToggleAudienceOption = option => {
126
- const newList = [...this.state.combinedList];
127
- const selected = newList.find(i => i.Id === option.Id);
128
- if (selected) {
129
- selected.Selected = !selected.Selected;
130
- this.setState({ combinedList: newList });
131
- }
132
- };
138
+ onToggleAudienceOption = (option) => {
139
+ const newList = [...this.state.combinedList];
140
+ const selected = newList.find((i) => i.Id === option.Id);
141
+ if (selected) {
142
+ selected.Selected = !selected.Selected;
143
+ this.setState({ combinedList: newList });
144
+ }
145
+ };
133
146
 
134
- onDone = () => {
135
- if (this.props.onChange) {
136
- const { combinedList } = this.state;
137
- const selected = combinedList.filter(i => i.Selected);
138
- if (selected && selected.length > 0) {
139
- this.props.onChange('Custom', selected);
140
- } else {
141
- this.props.onChange(null, null);
142
- }
143
- }
144
- Services.navigation.goBack();
145
- };
147
+ onDone = () => {
148
+ if (this.props.onChange) {
149
+ const { combinedList } = this.state;
150
+ const selected = combinedList.filter((i) => i.Selected);
151
+ if (selected && selected.length > 0) {
152
+ this.props.onChange("Custom", selected);
153
+ } else {
154
+ this.props.onChange(null, null);
155
+ }
156
+ }
157
+ Services.navigation.goBack();
158
+ };
146
159
 
147
- renderOption(label, selected, onSelect, key = null, hasUnderline = true) {
148
- return (
149
- <TouchableOpacity key={key} onPress={onSelect}>
150
- <FormCardSection hasUnderline={hasUnderline} hasContent>
151
- <View style={styles.labelContainer}>
152
- <Text style={styles.labelText}>{label}</Text>
153
- <Icon
154
- name="check-circle"
155
- type="font-awesome"
156
- iconStyle={[{ color: INACTIVE_BUTTON, fontSize: 20 }, selected && { color: COLOUR_GREEN }]}
157
- />
158
- </View>
159
- </FormCardSection>
160
- </TouchableOpacity>
161
- );
162
- }
160
+ renderOption(label, selected, onSelect, key = null, hasUnderline = true) {
161
+ return (
162
+ <TouchableOpacity key={key} onPress={onSelect}>
163
+ <FormCardSection hasUnderline={hasUnderline} hasContent>
164
+ <View style={styles.labelContainer}>
165
+ <Text style={styles.labelText}>{label}</Text>
166
+ <Icon
167
+ name="check-circle"
168
+ type="font-awesome"
169
+ iconStyle={[
170
+ { color: INACTIVE_BUTTON, fontSize: 20 },
171
+ selected && { color: COLOUR_GREEN },
172
+ ]}
173
+ />
174
+ </View>
175
+ </FormCardSection>
176
+ </TouchableOpacity>
177
+ );
178
+ }
163
179
 
164
- renderSelectAll() {
165
- const { combinedList, loading } = this.state;
166
- const allSelected = !combinedList.find(i => i.Selected);
167
- if (loading) return null;
180
+ renderSelectAll() {
181
+ const { combinedList, loading } = this.state;
182
+ const allSelected = !combinedList.find((i) => i.Selected);
183
+ if (loading) return null;
168
184
 
169
- return (
170
- <FormCard style={styles.selectAllContainer}>{this.renderOption('All Users', allSelected, this.onSelectAll, null, false)}</FormCard>
171
- );
172
- }
185
+ return (
186
+ <FormCard style={styles.selectAllContainer}>
187
+ {this.renderOption(
188
+ "All Users",
189
+ allSelected,
190
+ this.onSelectAll,
191
+ null,
192
+ false,
193
+ )}
194
+ </FormCard>
195
+ );
196
+ }
173
197
 
174
- renderSelection() {
175
- const { loading, combinedList, seeAll } = this.state;
176
- if (loading) return null;
198
+ renderSelection() {
199
+ const { loading, combinedList, seeAll } = this.state;
200
+ if (loading) return null;
177
201
 
178
- const selectedText = combinedList
179
- .filter(i => i.Selected)
180
- .map(i => i.Title)
181
- .join(', ');
182
- const hasSelected = !_.isEmpty(selectedText);
202
+ const selectedText = combinedList
203
+ .filter((i) => i.Selected)
204
+ .map((i) => i.Title)
205
+ .join(", ");
206
+ const hasSelected = !_.isEmpty(selectedText);
183
207
 
184
- return (
185
- <View style={styles.selectionContainer}>
186
- <View style={styles.selectionContainerInner}>
187
- <Text style={styles.selectionTitle}>or select from below</Text>
188
- {hasSelected ? (
189
- <TouchableOpacity onPress={this.onSeeAll}>
190
- <Text style={styles.seeAllButton}>{seeAll ? 'See less' : 'See all'}</Text>
191
- </TouchableOpacity>
192
- ) : null}
193
- </View>
194
- {hasSelected ? (
195
- <Text style={styles.selectionText} numberOfLines={seeAll ? null : 1}>{`Current selection: ${selectedText}`}</Text>
196
- ) : null}
197
- </View>
198
- );
199
- }
208
+ return (
209
+ <View style={styles.selectionContainer}>
210
+ <View style={styles.selectionContainerInner}>
211
+ <Text style={styles.selectionTitle}>or select from below</Text>
212
+ {hasSelected ? (
213
+ <TouchableOpacity onPress={this.onSeeAll}>
214
+ <Text style={styles.seeAllButton}>
215
+ {seeAll ? "See less" : "See all"}
216
+ </Text>
217
+ </TouchableOpacity>
218
+ ) : null}
219
+ </View>
220
+ {hasSelected ? (
221
+ <Text
222
+ style={styles.selectionText}
223
+ numberOfLines={seeAll ? null : 1}
224
+ >{`Current selection: ${selectedText}`}</Text>
225
+ ) : null}
226
+ </View>
227
+ );
228
+ }
200
229
 
201
- renderTips() {
202
- return (
203
- <View style={styles.tipContainer}>
204
- <Text style={styles.tipText}>
205
- <Text style={{ fontFamily: 'sf-semibold' }}>Tip: </Text>
206
- Group your users using User Tags from your website Community Manager
207
- </Text>
208
- </View>
209
- );
210
- }
230
+ renderTips() {
231
+ return (
232
+ <View style={styles.tipContainer}>
233
+ <Text style={styles.tipText}>
234
+ <Text style={{ fontFamily: "sf-semibold" }}>Tip: </Text>
235
+ Group your users using User Tags from your website Community Manager
236
+ </Text>
237
+ </View>
238
+ );
239
+ }
211
240
 
212
- renderAvailableAudiences() {
213
- const { loading, combinedList } = this.state;
241
+ renderAvailableAudiences() {
242
+ const { loading, combinedList } = this.state;
214
243
 
215
- return (
216
- <ScrollView style={styles.availableScrollContainer} contentContainerStyle={styles.availabelScrollContent}>
217
- <FormCard>
218
- {combinedList.map((option, index) => {
219
- const notLast = index < combinedList.length - 1;
220
- return this.renderOption(option.Title, option.Selected, () => this.onToggleAudienceOption(option), index, notLast);
221
- })}
222
- </FormCard>
223
- {loading ? <Spinner /> : null}
224
- {this.renderTips()}
225
- </ScrollView>
226
- );
227
- }
244
+ return (
245
+ <ScrollView
246
+ style={styles.availableScrollContainer}
247
+ contentContainerStyle={styles.availabelScrollContent}
248
+ >
249
+ <FormCard>
250
+ {combinedList.map((option, index) => {
251
+ const notLast = index < combinedList.length - 1;
252
+ return this.renderOption(
253
+ option.Title,
254
+ option.Selected,
255
+ () => this.onToggleAudienceOption(option),
256
+ index,
257
+ notLast,
258
+ );
259
+ })}
260
+ </FormCard>
261
+ {loading ? <Spinner /> : null}
262
+ {this.renderTips()}
263
+ </ScrollView>
264
+ );
265
+ }
228
266
 
229
- renderButtons() {
230
- const { loading } = this.state;
267
+ renderButtons() {
268
+ const { loading } = this.state;
231
269
 
232
- return (
233
- <View style={styles.doneButtonContainer}>
234
- <InlineButton
235
- color={loading ? INACTIVE_BUTTON : this.props.colourBrandingMain}
236
- onPress={this.onDone}
237
- touchableStyle={styles.doneButton}
238
- fillTouchable
239
- large
240
- disabled={loading}
241
- >
242
- Done
243
- </InlineButton>
244
- </View>
245
- );
246
- }
270
+ return (
271
+ <View style={styles.doneButtonContainer}>
272
+ <InlineButton
273
+ color={loading ? INACTIVE_BUTTON : this.props.colourBrandingMain}
274
+ onPress={this.onDone}
275
+ touchableStyle={styles.doneButton}
276
+ fillTouchable
277
+ large
278
+ disabled={loading}
279
+ >
280
+ Done
281
+ </InlineButton>
282
+ </View>
283
+ );
284
+ }
247
285
 
248
- render() {
249
- return (
250
- <View style={styles.container}>
251
- <Header leftIcon="angle-left" onPressLeft={this.onPressBack} text={'Select Audience'} />
252
- {this.renderSelectAll()}
253
- {this.renderSelection()}
254
- {this.renderAvailableAudiences()}
255
- {this.renderButtons()}
256
- </View>
257
- );
258
- }
286
+ render() {
287
+ return (
288
+ <View style={styles.container}>
289
+ <Header
290
+ leftIcon="angle-left"
291
+ onPressLeft={this.onPressBack}
292
+ text={"Select Audience"}
293
+ />
294
+ {this.renderSelectAll()}
295
+ {this.renderSelection()}
296
+ {this.renderAvailableAudiences()}
297
+ {this.renderButtons()}
298
+ </View>
299
+ );
300
+ }
259
301
  }
260
302
 
261
303
  const styles = StyleSheet.create({
262
- container: {
263
- flex: 1,
264
- position: 'relative',
265
- backgroundColor: BG_GREY,
266
- },
267
- selectAllContainer: {
268
- marginTop: 20,
269
- },
270
- selectionContainer: {
271
- padding: 20,
272
- },
273
- selectionContainerInner: {
274
- flexDirection: 'row',
275
- justifyContent: 'space-between',
276
- },
277
- selectionTitle: {
278
- fontFamily: 'sf-bold',
279
- fontSize: 14,
280
- color: TEXT_DARK,
281
- },
282
- selectionText: {
283
- fontFamily: 'sf-bold',
284
- fontSize: 14,
285
- color: TEXT_DARK,
286
- marginTop: 10,
287
- },
288
- seeAllButton: {
289
- marginLeft: 10,
290
- fontFamily: 'sf-bold',
291
- fontSize: 14,
292
- color: TEXT_LIGHT,
293
- },
294
- availableScrollContainer: {
295
- flex: 1,
296
- },
297
- availabelScrollContent: {
298
- flexGrow: 1,
299
- justifyContent: 'space-between',
300
- flexDirection: 'column',
301
- },
302
- tipContainer: {
303
- padding: 10,
304
- },
305
- tipText: {
306
- fontSize: 14,
307
- fontFamily: 'sf-regular',
308
- color: TEXT_DARK,
309
- },
310
- labelContainer: {
311
- flexDirection: 'row',
312
- justifyContent: 'space-between',
313
- },
314
- labelText: {
315
- fontFamily: 'sf-medium',
316
- fontSize: 16,
317
- color: TEXT_DARK,
318
- },
319
- description: {
320
- marginTop: 5,
321
- fontSize: 14,
322
- fontFamily: 'sf-regular',
323
- color: TEXT_DARK,
324
- },
325
- doneButtonContainer: {
326
- backgroundColor: '#fff',
327
- marginTop: 1,
328
- flexDirection: 'row',
329
- paddingTop: 10,
330
- paddingBottom: 20,
331
- },
332
- doneButton: {
333
- flex: 1,
334
- marginHorizontal: 6,
335
- },
304
+ container: {
305
+ flex: 1,
306
+ position: "relative",
307
+ backgroundColor: BG_GREY,
308
+ },
309
+ selectAllContainer: {
310
+ marginTop: 20,
311
+ },
312
+ selectionContainer: {
313
+ padding: 20,
314
+ },
315
+ selectionContainerInner: {
316
+ flexDirection: "row",
317
+ justifyContent: "space-between",
318
+ },
319
+ selectionTitle: {
320
+ fontFamily: "sf-bold",
321
+ fontSize: 14,
322
+ color: TEXT_DARK,
323
+ },
324
+ selectionText: {
325
+ fontFamily: "sf-bold",
326
+ fontSize: 14,
327
+ color: TEXT_DARK,
328
+ marginTop: 10,
329
+ },
330
+ seeAllButton: {
331
+ marginLeft: 10,
332
+ fontFamily: "sf-bold",
333
+ fontSize: 14,
334
+ color: TEXT_LIGHT,
335
+ },
336
+ availableScrollContainer: {
337
+ flex: 1,
338
+ },
339
+ availabelScrollContent: {
340
+ flexGrow: 1,
341
+ justifyContent: "space-between",
342
+ flexDirection: "column",
343
+ },
344
+ tipContainer: {
345
+ padding: 10,
346
+ },
347
+ tipText: {
348
+ fontSize: 14,
349
+ fontFamily: "sf-regular",
350
+ color: TEXT_DARK,
351
+ },
352
+ labelContainer: {
353
+ flexDirection: "row",
354
+ justifyContent: "space-between",
355
+ },
356
+ labelText: {
357
+ fontFamily: "sf-medium",
358
+ fontSize: 16,
359
+ color: TEXT_DARK,
360
+ },
361
+ description: {
362
+ marginTop: 5,
363
+ fontSize: 14,
364
+ fontFamily: "sf-regular",
365
+ color: TEXT_DARK,
366
+ },
367
+ doneButtonContainer: {
368
+ backgroundColor: "#fff",
369
+ marginTop: 1,
370
+ flexDirection: "row",
371
+ paddingTop: 10,
372
+ paddingBottom: 20,
373
+ },
374
+ doneButton: {
375
+ flex: 1,
376
+ marginHorizontal: 6,
377
+ },
336
378
  });
337
379
 
338
- const mapStateToProps = state => {
339
- return {
340
- colourBrandingMain: getMainBrandingColourFromState(state),
341
- };
380
+ const mapStateToProps = (state) => {
381
+ return {
382
+ colourBrandingMain: getMainBrandingColourFromState(state),
383
+ };
342
384
  };
343
385
 
344
386
  export default connect(mapStateToProps, {})(AudienceSelectorPage);