@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.
- package/dist/module/actions/FollowerActions.js +4 -4
- package/dist/module/actions/FollowerActions.js.map +1 -1
- package/dist/module/actions/MediaActions.js +1 -1
- package/dist/module/actions/MediaActions.js.map +1 -1
- package/dist/module/actions/ResidentActions.js +1 -1
- package/dist/module/actions/ResidentActions.js.map +1 -1
- package/dist/module/actions/UserActions.js +1 -1
- package/dist/module/actions/UserActions.js.map +1 -1
- package/dist/module/actions/UserSettingsActions.js +1 -1
- package/dist/module/actions/UserSettingsActions.js.map +1 -1
- package/dist/module/actions/index.js +5 -5
- package/dist/module/actions/index.js.map +1 -1
- package/dist/module/actions/types.js +16 -16
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/analyticsActions.js +5 -5
- package/dist/module/apis/analyticsActions.js.map +1 -1
- package/dist/module/apis/contactActions.js +6 -6
- package/dist/module/apis/contactActions.js.map +1 -1
- package/dist/module/apis/eventActions.js +28 -28
- package/dist/module/apis/eventActions.js.map +1 -1
- package/dist/module/apis/fileActions.js +15 -15
- package/dist/module/apis/fileActions.js.map +1 -1
- package/dist/module/apis/followerActions.js +8 -8
- package/dist/module/apis/followerActions.js.map +1 -1
- package/dist/module/apis/index.js +12 -12
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/apis/notificationActions.js +17 -17
- package/dist/module/apis/notificationActions.js.map +1 -1
- package/dist/module/apis/profileActions.js +4 -4
- package/dist/module/apis/profileActions.js.map +1 -1
- package/dist/module/apis/reactionActions.js +15 -15
- package/dist/module/apis/reactionActions.js.map +1 -1
- package/dist/module/apis/settingActions.js +6 -6
- package/dist/module/apis/settingActions.js.map +1 -1
- package/dist/module/apis/stringActions.js +8 -8
- package/dist/module/apis/stringActions.js.map +1 -1
- package/dist/module/apis/typeActions.js +4 -4
- package/dist/module/apis/typeActions.js.map +1 -1
- package/dist/module/apis/userActions.js +8 -8
- package/dist/module/apis/userActions.js.map +1 -1
- package/dist/module/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
- package/dist/module/assets/icons/fontawesome/fa-light-300.ttf +0 -0
- package/dist/module/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
- package/dist/module/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
- package/dist/module/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
- package/dist/module/assets/icons/fontawesome/fa7-glyphmap.json +4205 -0
- package/dist/module/colours.js +26 -29
- package/dist/module/colours.js.map +1 -1
- package/dist/module/components/AddButton.js +8 -8
- package/dist/module/components/AddButton.js.map +1 -1
- package/dist/module/components/AddToCalendarButton.js +30 -29
- package/dist/module/components/AddToCalendarButton.js.map +1 -1
- package/dist/module/components/Attachment.js +10 -9
- package/dist/module/components/Attachment.js.map +1 -1
- package/dist/module/components/AudienceSelectorLauncher.js +11 -11
- package/dist/module/components/AudienceSelectorLauncher.js.map +1 -1
- package/dist/module/components/AudienceSelectorPage.js +45 -44
- package/dist/module/components/AudienceSelectorPage.js.map +1 -1
- package/dist/module/components/AutoOffsetImage.js +13 -13
- package/dist/module/components/AutoOffsetImage.js.map +1 -1
- package/dist/module/components/BackButton.js +10 -10
- package/dist/module/components/BackButton.js.map +1 -1
- package/dist/module/components/CalendarPopup.js +21 -21
- package/dist/module/components/CalendarPopup.js.map +1 -1
- package/dist/module/components/CategoryTabs.js +30 -29
- package/dist/module/components/CategoryTabs.js.map +1 -1
- package/dist/module/components/CommentReply.js +43 -37
- package/dist/module/components/CommentReply.js.map +1 -1
- package/dist/module/components/CommentSection.js +74 -74
- package/dist/module/components/CommentSection.js.map +1 -1
- package/dist/module/components/ConfirmPopup.js +21 -20
- package/dist/module/components/ConfirmPopup.js.map +1 -1
- package/dist/module/components/ConfirmationPopup.js +11 -11
- package/dist/module/components/ConfirmationPopup.js.map +1 -1
- package/dist/module/components/DocumentUploader.js +50 -50
- package/dist/module/components/DocumentUploader.js.map +1 -1
- package/dist/module/components/DropDownItem.js +14 -13
- package/dist/module/components/DropDownItem.js.map +1 -1
- package/dist/module/components/DropDownMenu.js +5 -5
- package/dist/module/components/DropDownMenu.js.map +1 -1
- package/dist/module/components/EmptyStateMain.js +10 -9
- package/dist/module/components/EmptyStateMain.js.map +1 -1
- package/dist/module/components/EmptyStateWidget.js +7 -6
- package/dist/module/components/EmptyStateWidget.js.map +1 -1
- package/dist/module/components/FontScaleButton.js +5 -4
- package/dist/module/components/FontScaleButton.js.map +1 -1
- package/dist/module/components/FontScalePopup.js +11 -10
- package/dist/module/components/FontScalePopup.js.map +1 -1
- package/dist/module/components/Forbidden.js +13 -13
- package/dist/module/components/Forbidden.js.map +1 -1
- package/dist/module/components/FormCard.js +4 -4
- package/dist/module/components/FormCard.js.map +1 -1
- package/dist/module/components/FormCardSection.js +20 -18
- package/dist/module/components/FormCardSection.js.map +1 -1
- package/dist/module/components/FormCardSectionOptionLauncher.js +13 -12
- package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -1
- package/dist/module/components/FormattedText.js +18 -16
- package/dist/module/components/FormattedText.js.map +1 -1
- package/dist/module/components/GenericInput.js +24 -21
- package/dist/module/components/GenericInput.js.map +1 -1
- package/dist/module/components/GenericInputSection.js +27 -26
- package/dist/module/components/GenericInputSection.js.map +1 -1
- package/dist/module/components/Header.js +70 -69
- package/dist/module/components/Header.js.map +1 -1
- package/dist/module/components/Icon.js +109 -0
- package/dist/module/components/Icon.js.map +1 -0
- package/dist/module/components/ImagePopup.js +211 -73
- package/dist/module/components/ImagePopup.js.map +1 -1
- package/dist/module/components/ImageUploadProgress.js +10 -9
- package/dist/module/components/ImageUploadProgress.js.map +1 -1
- package/dist/module/components/ImageUploader.js +116 -96
- package/dist/module/components/ImageUploader.js.map +1 -1
- package/dist/module/components/InlineButton.js +9 -8
- package/dist/module/components/InlineButton.js.map +1 -1
- package/dist/module/components/Input.js +28 -26
- package/dist/module/components/Input.js.map +1 -1
- package/dist/module/components/LoadingCircles.js +20 -20
- package/dist/module/components/LoadingCircles.js.map +1 -1
- package/dist/module/components/LoadingIndicator.js +11 -11
- package/dist/module/components/LoadingIndicator.js.map +1 -1
- package/dist/module/components/LoadingStateWidget.js +5 -5
- package/dist/module/components/LoadingStateWidget.js.map +1 -1
- package/dist/module/components/MediaPlayer.js +31 -31
- package/dist/module/components/MediaPlayer.js.map +1 -1
- package/dist/module/components/MiddlePopup.js +17 -11
- package/dist/module/components/MiddlePopup.js.map +1 -1
- package/dist/module/components/PDFPopup.js +52 -39
- package/dist/module/components/PDFPopup.js.map +1 -1
- package/dist/module/components/PlussChat.js +168 -149
- package/dist/module/components/PlussChat.js.map +1 -1
- package/dist/module/components/PlussChatMessage.js +42 -42
- package/dist/module/components/PlussChatMessage.js.map +1 -1
- package/dist/module/components/PlussChatTime.js +18 -17
- package/dist/module/components/PlussChatTime.js.map +1 -1
- package/dist/module/components/Popup.js +20 -19
- package/dist/module/components/Popup.js.map +1 -1
- package/dist/module/components/PopupMenu.js +15 -14
- package/dist/module/components/PopupMenu.js.map +1 -1
- package/dist/module/components/PositionedImage.js +20 -20
- package/dist/module/components/PositionedImage.js.map +1 -1
- package/dist/module/components/ProfilePic.js +10 -10
- package/dist/module/components/ProfilePic.js.map +1 -1
- package/dist/module/components/RadioButton.js +10 -9
- package/dist/module/components/RadioButton.js.map +1 -1
- package/dist/module/components/Reaction.js +18 -17
- package/dist/module/components/Reaction.js.map +1 -1
- package/dist/module/components/Reactions.js +7 -7
- package/dist/module/components/Reactions.js.map +1 -1
- package/dist/module/components/SharingTools.js +78 -43
- package/dist/module/components/SharingTools.js.map +1 -1
- package/dist/module/components/Spinner.js +5 -5
- package/dist/module/components/Spinner.js.map +1 -1
- package/dist/module/components/StickyFooter.js +6 -6
- package/dist/module/components/StickyFooter.js.map +1 -1
- package/dist/module/components/Text.js +57 -0
- package/dist/module/components/Text.js.map +1 -0
- package/dist/module/components/TickIcon.js +6 -6
- package/dist/module/components/TickIcon.js.map +1 -1
- package/dist/module/components/Toggle.js +10 -9
- package/dist/module/components/Toggle.js.map +1 -1
- package/dist/module/components/TouchableSearchBar.js +18 -17
- package/dist/module/components/TouchableSearchBar.js.map +1 -1
- package/dist/module/components/UserListPopup.js +20 -19
- package/dist/module/components/UserListPopup.js.map +1 -1
- package/dist/module/components/UserListing.js +41 -40
- package/dist/module/components/UserListing.js.map +1 -1
- package/dist/module/components/VideoPopup.js +20 -20
- package/dist/module/components/VideoPopup.js.map +1 -1
- package/dist/module/components/WarningPopup.js +21 -20
- package/dist/module/components/WarningPopup.js.map +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js +13 -13
- package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js.map +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageTile.js +24 -23
- package/dist/module/components/expo-image-picker-multiple/ImageTile.js.map +1 -1
- package/dist/module/components/index.js +59 -58
- package/dist/module/components/index.js.map +1 -1
- package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js +94 -64
- package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js.map +1 -1
- package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js +64 -64
- package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js.map +1 -1
- package/dist/module/config.js +15 -10
- package/dist/module/config.js.map +1 -1
- package/dist/module/constants.js +3 -4
- package/dist/module/constants.js.map +1 -1
- package/dist/module/helper.js +83 -82
- package/dist/module/helper.js.map +1 -1
- package/dist/module/index.js +12 -12
- package/dist/module/index.js.map +1 -1
- package/dist/module/js/images/detectFaces.js +11 -10
- package/dist/module/js/images/detectFaces.js.map +1 -1
- package/dist/module/js/images/findLandmarkRange.js +8 -8
- package/dist/module/js/images/findLandmarkRange.js.map +1 -1
- package/dist/module/js/images/getScaledOffset.js.map +1 -1
- package/dist/module/js/site/getSiteLevelFromState.js +2 -2
- package/dist/module/js/site/getSiteLevelFromState.js.map +1 -1
- package/dist/module/js/site/isTVEnabled.js +2 -2
- package/dist/module/js/site/isTVEnabled.js.map +1 -1
- package/dist/module/session.js +6 -6
- package/dist/module/session.js.map +1 -1
- package/dist/module/styles.js +17 -17
- package/dist/module/styles.js.map +1 -1
- package/dist/module/withNavigationFocus.js +30 -0
- package/dist/module/withNavigationFocus.js.map +1 -0
- package/package.json +71 -68
- package/src/actions/FollowerActions.js +36 -32
- package/src/actions/MediaActions.js +25 -20
- package/src/actions/ResidentActions.js +26 -21
- package/src/actions/UserActions.js +22 -22
- package/src/actions/UserSettingsActions.js +11 -11
- package/src/actions/index.js +5 -5
- package/src/actions/types.js +16 -16
- package/src/apis/analyticsActions.js +17 -17
- package/src/apis/contactActions.js +20 -20
- package/src/apis/eventActions.js +153 -144
- package/src/apis/fileActions.js +96 -86
- package/src/apis/followerActions.js +29 -29
- package/src/apis/index.js +12 -12
- package/src/apis/notificationActions.js +44 -44
- package/src/apis/profileActions.js +8 -8
- package/src/apis/reactionActions.js +81 -73
- package/src/apis/settingActions.js +15 -15
- package/src/apis/stringActions.js +29 -25
- package/src/apis/typeActions.js +10 -10
- package/src/apis/userActions.js +93 -93
- package/src/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
- package/src/assets/icons/fontawesome/fa-light-300.ttf +0 -0
- package/src/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
- package/src/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
- package/src/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
- package/src/assets/icons/fontawesome/fa7-glyphmap.json +4205 -0
- package/src/colours.js +116 -96
- package/src/components/AddButton.js +32 -27
- package/src/components/AddToCalendarButton.js +236 -202
- package/src/components/Attachment.js +59 -36
- package/src/components/AudienceSelectorLauncher.js +52 -48
- package/src/components/AudienceSelectorPage.js +353 -311
- package/src/components/AutoOffsetImage.js +237 -196
- package/src/components/BackButton.js +57 -41
- package/src/components/CalendarPopup.js +127 -97
- package/src/components/CategoryTabs.js +208 -163
- package/src/components/CommentReply.js +370 -309
- package/src/components/CommentSection.js +974 -781
- package/src/components/ConfirmPopup.js +141 -110
- package/src/components/ConfirmationPopup.js +80 -69
- package/src/components/DocumentUploader.js +245 -215
- package/src/components/DropDownItem.js +70 -60
- package/src/components/DropDownMenu.js +31 -27
- package/src/components/EmptyStateMain.js +51 -44
- package/src/components/EmptyStateWidget.js +47 -38
- package/src/components/FontScaleButton.js +29 -25
- package/src/components/FontScalePopup.js +67 -56
- package/src/components/Forbidden.js +48 -46
- package/src/components/FormCard.js +21 -17
- package/src/components/FormCardSection.js +284 -233
- package/src/components/FormCardSectionOptionLauncher.js +72 -46
- package/src/components/FormattedText.js +128 -111
- package/src/components/GenericInput.js +168 -136
- package/src/components/GenericInputSection.js +209 -161
- package/src/components/Header.js +620 -474
- package/src/components/Icon.js +119 -0
- package/src/components/ImagePopup.js +425 -221
- package/src/components/ImageUploadProgress.js +49 -41
- package/src/components/ImageUploader.js +968 -797
- package/src/components/InlineButton.js +79 -69
- package/src/components/Input.js +190 -156
- package/src/components/LoadingCircles.js +233 -233
- package/src/components/LoadingIndicator.js +87 -76
- package/src/components/LoadingStateWidget.js +47 -37
- package/src/components/MediaPlayer.js +416 -387
- package/src/components/MiddlePopup.js +62 -33
- package/src/components/PDFPopup.js +212 -159
- package/src/components/PlussChat.js +1224 -1025
- package/src/components/PlussChatMessage.js +329 -298
- package/src/components/PlussChatTime.js +57 -53
- package/src/components/Popup.js +138 -116
- package/src/components/PopupMenu.js +140 -110
- package/src/components/PositionedImage.js +281 -237
- package/src/components/ProfilePic.js +122 -113
- package/src/components/RadioButton.js +76 -52
- package/src/components/Reaction.js +134 -96
- package/src/components/Reactions.js +65 -63
- package/src/components/SharingTools.js +185 -134
- package/src/components/Spinner.js +13 -13
- package/src/components/StickyFooter.js +36 -26
- package/src/components/Text.js +62 -0
- package/src/components/TickIcon.js +20 -20
- package/src/components/Toggle.js +74 -73
- package/src/components/TouchableSearchBar.js +68 -50
- package/src/components/UserListPopup.js +161 -124
- package/src/components/UserListing.js +273 -238
- package/src/components/VideoPopup.js +110 -96
- package/src/components/WarningPopup.js +92 -71
- package/src/components/expo-image-picker-multiple/ImageBrowser.js +288 -256
- package/src/components/expo-image-picker-multiple/ImageTile.js +108 -84
- package/src/components/index.js +59 -58
- package/src/components/react-native-expo-image-cropper/ExpoImageManipulator.js +444 -359
- package/src/components/react-native-expo-image-cropper/ImageCropOverlay.js +420 -324
- package/src/config.js +26 -21
- package/src/constants.js +8 -10
- package/src/helper.js +469 -438
- package/src/index.js +24 -12
- package/src/js/images/detectFaces.js +28 -21
- package/src/js/images/findLandmarkRange.js +97 -90
- package/src/js/images/getScaledOffset.js +80 -75
- package/src/js/site/getSiteLevelFromState.js +26 -26
- package/src/js/site/isTVEnabled.js +10 -10
- package/src/session.js +32 -32
- package/src/styles.js +61 -61
- package/src/withNavigationFocus.js +28 -0
- package/dist/module/components/TextStyle.js +0 -45
- package/dist/module/components/TextStyle.js.map +0 -1
- package/dist/module/fonts/index.js +0 -2
- package/dist/module/fonts/index.js.map +0 -1
- package/dist/module/fonts/pluss60-icons.js +0 -5
- package/dist/module/fonts/pluss60-icons.js.map +0 -1
- package/dist/module/fonts/pluss60-icons.json +0 -1097
- package/src/components/TextStyle.js +0 -48
- package/src/fonts/index.js +0 -1
- package/src/fonts/pluss60-icons.js +0 -7
- package/src/fonts/pluss60-icons.json +0 -1097
package/dist/module/helper.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import _ from
|
|
2
|
-
import React from
|
|
3
|
-
import { Platform, StatusBar, Dimensions
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Platform, StatusBar, Dimensions } from "react-native";
|
|
4
|
+
import { Text } from "./components";
|
|
5
|
+
import Constants from "expo-constants";
|
|
6
|
+
import Config from "./config";
|
|
7
|
+
import { LINEGREY } from "./colours";
|
|
8
|
+
import { getSessionTokenAWS } from "./session";
|
|
8
9
|
|
|
9
10
|
// seperated files to export
|
|
10
|
-
import detectFaces from
|
|
11
|
-
import findLandmarkRange from
|
|
12
|
-
import getScaledOffset from
|
|
13
|
-
import getSiteLevelFromState from
|
|
14
|
-
import isTVEnabled from
|
|
15
|
-
const TIMESTAMP_FORMAT =
|
|
16
|
-
const DATE_FORMAT =
|
|
11
|
+
import detectFaces from "./js/images/detectFaces";
|
|
12
|
+
import findLandmarkRange from "./js/images/findLandmarkRange";
|
|
13
|
+
import getScaledOffset from "./js/images/getScaledOffset";
|
|
14
|
+
import getSiteLevelFromState from "./js/site/getSiteLevelFromState";
|
|
15
|
+
import isTVEnabled from "./js/site/isTVEnabled";
|
|
16
|
+
const TIMESTAMP_FORMAT = "D MMM • h:mma";
|
|
17
|
+
const DATE_FORMAT = "D MMM YYYY";
|
|
17
18
|
const getUrl = (baseAction, action, query) => {
|
|
18
19
|
const {
|
|
19
20
|
baseAPIUrl,
|
|
20
21
|
baseStage
|
|
21
22
|
} = Config.env;
|
|
22
|
-
let queryPart =
|
|
23
|
+
let queryPart = "";
|
|
23
24
|
if (query) {
|
|
24
25
|
_.keys(query).forEach((key, index) => {
|
|
25
|
-
queryPart += `${index === 0 ?
|
|
26
|
+
queryPart += `${index === 0 ? "?" : "&"}${key}=${encodeURIComponent(query[key])}`;
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
return `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;
|
|
@@ -35,21 +36,21 @@ const getAuthTokenHeader = () => {
|
|
|
35
36
|
});
|
|
36
37
|
};
|
|
37
38
|
const getShadowStyle = () => {
|
|
38
|
-
if (Platform.OS ===
|
|
39
|
+
if (Platform.OS === "ios") {
|
|
39
40
|
return {
|
|
40
|
-
shadowColor:
|
|
41
|
+
shadowColor: "#000",
|
|
41
42
|
shadowOffset: {
|
|
42
43
|
width: 0,
|
|
43
44
|
height: 1
|
|
44
45
|
},
|
|
45
46
|
shadowOpacity: 0.1,
|
|
46
47
|
shadowRadius: 3,
|
|
47
|
-
backgroundColor:
|
|
48
|
+
backgroundColor: "#fff"
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
51
|
return {
|
|
51
52
|
borderColor: LINEGREY,
|
|
52
|
-
backgroundColor:
|
|
53
|
+
backgroundColor: "#fff",
|
|
53
54
|
elevation: 8
|
|
54
55
|
};
|
|
55
56
|
};
|
|
@@ -57,7 +58,7 @@ const StatusBarHeight = size => {
|
|
|
57
58
|
return getStatusBarHeight() + size;
|
|
58
59
|
};
|
|
59
60
|
const getStatusBarHeight = () => {
|
|
60
|
-
return Platform.OS ===
|
|
61
|
+
return Platform.OS === "ios" ? Constants.statusBarHeight : StatusBar.currentHeight;
|
|
61
62
|
};
|
|
62
63
|
const getSiteSettingFromState = (state, key, defaultValue) => {
|
|
63
64
|
if (state && state.user && state.user.siteSettings && !_.isUndefined(state.user.siteSettings[key])) {
|
|
@@ -72,23 +73,23 @@ const getExtension = url => {
|
|
|
72
73
|
if (!url) {
|
|
73
74
|
return null;
|
|
74
75
|
}
|
|
75
|
-
const fileSplit = url.split(
|
|
76
|
+
const fileSplit = url.split(".");
|
|
76
77
|
return fileSplit[fileSplit.length - 1].toLowerCase();
|
|
77
78
|
};
|
|
78
79
|
const getFileName = (url, noExtension) => {
|
|
79
80
|
if (!url) {
|
|
80
81
|
return null;
|
|
81
82
|
}
|
|
82
|
-
const fileSplit = url.split(
|
|
83
|
+
const fileSplit = url.split("/");
|
|
83
84
|
const name = fileSplit[fileSplit.length - 1].toLowerCase();
|
|
84
85
|
if (!noExtension) {
|
|
85
86
|
return name;
|
|
86
87
|
}
|
|
87
|
-
return name.split(
|
|
88
|
+
return name.split(".")[0];
|
|
88
89
|
};
|
|
89
90
|
const isVideo = url => {
|
|
90
91
|
const extension = getExtension(url);
|
|
91
|
-
return [
|
|
92
|
+
return ["mov", "mp4"].includes(extension);
|
|
92
93
|
};
|
|
93
94
|
const isVideoUrl = url => {
|
|
94
95
|
const urlToCheck = getValidUrl(url);
|
|
@@ -104,28 +105,28 @@ const isVideoUrl = url => {
|
|
|
104
105
|
return false;
|
|
105
106
|
};
|
|
106
107
|
const isStockImage = url => {
|
|
107
|
-
return url.indexOf(
|
|
108
|
+
return url.indexOf("https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library") !== -1;
|
|
108
109
|
};
|
|
109
110
|
const getThumb300 = url => {
|
|
110
111
|
if (!url) {
|
|
111
112
|
return url;
|
|
112
113
|
}
|
|
113
114
|
if (isVideo(url)) {
|
|
114
|
-
return
|
|
115
|
+
return "https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg";
|
|
115
116
|
}
|
|
116
|
-
if (url.indexOf(
|
|
117
|
-
return url.replace(
|
|
117
|
+
if (url.indexOf("https://plussprdstorage.blob.core.windows.net/") !== -1) {
|
|
118
|
+
return url.replace("https://plussprdstorage.blob.core.windows.net/", "https://plusscdn.azureedge.net/");
|
|
118
119
|
}
|
|
119
|
-
if (url.indexOf(
|
|
120
|
-
return url.replace(
|
|
120
|
+
if (url.indexOf("https://plusscdn.azureedge.net/") !== -1) {
|
|
121
|
+
return url.replace("/uploads/", "/uploads-thumb/").replace("/general/", "/general300/").replace("/uploads1400/", "/uploads-thumb/").replace("/general1400/", "/general300/");
|
|
121
122
|
}
|
|
122
123
|
if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {
|
|
123
124
|
const extension = getExtension(url);
|
|
124
125
|
let urlToUse = url;
|
|
125
|
-
if (extension !==
|
|
126
|
+
if (extension !== "jpg") {
|
|
126
127
|
urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;
|
|
127
128
|
}
|
|
128
|
-
return urlToUse.replace(
|
|
129
|
+
return urlToUse.replace("/1400/", "/thumb300/").replace("/uploads/", "/thumb300/");
|
|
129
130
|
}
|
|
130
131
|
return url;
|
|
131
132
|
};
|
|
@@ -133,19 +134,19 @@ const get1400 = url => {
|
|
|
133
134
|
if (!url) {
|
|
134
135
|
return url;
|
|
135
136
|
}
|
|
136
|
-
if (url.indexOf(
|
|
137
|
-
return url.replace(
|
|
137
|
+
if (url.indexOf("https://plussprdstorage.blob.core.windows.net/") !== -1) {
|
|
138
|
+
return url.replace("https://plussprdstorage.blob.core.windows.net/", "https://plusscdn.azureedge.net/");
|
|
138
139
|
}
|
|
139
|
-
if (url.indexOf(
|
|
140
|
-
return url.replace(
|
|
140
|
+
if (url.indexOf("https://plusscdn.azureedge.net/") !== -1) {
|
|
141
|
+
return url.replace("/uploads/", "/uploads1400/").replace("/general/", "/general1400/");
|
|
141
142
|
}
|
|
142
143
|
if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {
|
|
143
144
|
const extension = getExtension(url);
|
|
144
145
|
let urlToUse = url;
|
|
145
|
-
if (extension !==
|
|
146
|
+
if (extension !== "jpg") {
|
|
146
147
|
urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;
|
|
147
148
|
}
|
|
148
|
-
return urlToUse.replace(
|
|
149
|
+
return urlToUse.replace("/uploads/", "/1400/");
|
|
149
150
|
}
|
|
150
151
|
return url;
|
|
151
152
|
};
|
|
@@ -156,33 +157,33 @@ const get300 = url => {
|
|
|
156
157
|
if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {
|
|
157
158
|
const extension = getExtension(url);
|
|
158
159
|
let urlToUse = url;
|
|
159
|
-
if (extension !==
|
|
160
|
+
if (extension !== "jpg") {
|
|
160
161
|
urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;
|
|
161
162
|
}
|
|
162
|
-
return urlToUse.replace(
|
|
163
|
+
return urlToUse.replace("/uploads/", "/300/").replace("/1400/", "/300/");
|
|
163
164
|
}
|
|
164
165
|
return url;
|
|
165
166
|
};
|
|
166
167
|
const getMimeType = url => {
|
|
167
168
|
const extension = getExtension(url);
|
|
168
169
|
switch (extension) {
|
|
169
|
-
case
|
|
170
|
-
return
|
|
171
|
-
case
|
|
172
|
-
return
|
|
170
|
+
case "mov":
|
|
171
|
+
return "video/quicktime";
|
|
172
|
+
case "mp4":
|
|
173
|
+
return "video/mp4";
|
|
173
174
|
default:
|
|
174
|
-
return
|
|
175
|
+
return "image/jpeg";
|
|
175
176
|
}
|
|
176
177
|
};
|
|
177
178
|
const getCompressed = url => {
|
|
178
|
-
if (!url || typeof url !==
|
|
179
|
-
return url.replace(
|
|
179
|
+
if (!url || typeof url !== "string") return "";
|
|
180
|
+
return url.replace("/uploads/", "/compressed/");
|
|
180
181
|
};
|
|
181
182
|
const imageExists = url => {
|
|
182
183
|
return new Promise(resolve => {
|
|
183
184
|
fetch(url, {
|
|
184
|
-
method:
|
|
185
|
-
cache:
|
|
185
|
+
method: "HEAD",
|
|
186
|
+
cache: "no-cache"
|
|
186
187
|
}).then(response => {
|
|
187
188
|
resolve(response.status === 200);
|
|
188
189
|
}).catch(() => {
|
|
@@ -191,13 +192,13 @@ const imageExists = url => {
|
|
|
191
192
|
});
|
|
192
193
|
};
|
|
193
194
|
const formatTime = (hours, minutes) => {
|
|
194
|
-
const period = hours >= 12 ?
|
|
195
|
+
const period = hours >= 12 ? "pm" : "am";
|
|
195
196
|
|
|
196
197
|
// Convert 24-hour format to 12-hour format
|
|
197
198
|
const adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;
|
|
198
199
|
|
|
199
200
|
// Ensure minutes are two digits
|
|
200
|
-
const adjustedMinutes = String(minutes).padStart(2,
|
|
201
|
+
const adjustedMinutes = String(minutes).padStart(2, "0");
|
|
201
202
|
return `${adjustedHours}:${adjustedMinutes}${period}`;
|
|
202
203
|
};
|
|
203
204
|
const minutesToString = (minutes, isTimeOfDay) => {
|
|
@@ -217,10 +218,10 @@ const minutesToString = (minutes, isTimeOfDay) => {
|
|
|
217
218
|
if (remainingMinutes) {
|
|
218
219
|
return minutesString;
|
|
219
220
|
}
|
|
220
|
-
return
|
|
221
|
+
return "0 minutes";
|
|
221
222
|
};
|
|
222
223
|
const getPluralS = count => {
|
|
223
|
-
return count === 1 ?
|
|
224
|
+
return count === 1 ? "" : "s";
|
|
224
225
|
};
|
|
225
226
|
const getPluralOptions = (count, singular, plural) => {
|
|
226
227
|
if (count === 1) {
|
|
@@ -232,33 +233,33 @@ const isEmail = email => {
|
|
|
232
233
|
if (_.isEmpty(email)) {
|
|
233
234
|
return false;
|
|
234
235
|
}
|
|
235
|
-
const atpos = email.indexOf(
|
|
236
|
-
const dotpos = email.lastIndexOf(
|
|
236
|
+
const atpos = email.indexOf("@");
|
|
237
|
+
const dotpos = email.lastIndexOf(".");
|
|
237
238
|
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
|
|
238
239
|
return false;
|
|
239
240
|
}
|
|
240
241
|
return true;
|
|
241
242
|
};
|
|
242
|
-
const randomString = (name =
|
|
243
|
+
const randomString = (name = "") => {
|
|
243
244
|
return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {
|
|
244
245
|
// eslint-disable-next-line
|
|
245
246
|
var r = Math.random() * 16 | 0,
|
|
246
|
-
v = c ===
|
|
247
|
+
v = c === "x" ? r : r & 0x3 | 0x8;
|
|
247
248
|
return v.toString(16);
|
|
248
249
|
});
|
|
249
250
|
};
|
|
250
251
|
const generateImageName = (name, source) => {
|
|
251
252
|
let result = randomString(name);
|
|
252
253
|
if (source) {
|
|
253
|
-
result += `.${_.last(source.split(
|
|
254
|
+
result += `.${_.last(source.split("."))}`;
|
|
254
255
|
}
|
|
255
256
|
return result;
|
|
256
257
|
};
|
|
257
258
|
const getSite = site => {
|
|
258
|
-
return site ===
|
|
259
|
+
return site === "plussSpace" || site === "hq" ? Config.env.preferredSite : site;
|
|
259
260
|
};
|
|
260
261
|
const getTakeoverThumb = uri => {
|
|
261
|
-
const filename = uri.split(
|
|
262
|
+
const filename = uri.split("/").pop();
|
|
262
263
|
switch (filename) {
|
|
263
264
|
default:
|
|
264
265
|
return {
|
|
@@ -267,7 +268,7 @@ const getTakeoverThumb = uri => {
|
|
|
267
268
|
}
|
|
268
269
|
};
|
|
269
270
|
const getTakeoverImage = uri => {
|
|
270
|
-
const filename = uri.split(
|
|
271
|
+
const filename = uri.split("/").pop();
|
|
271
272
|
switch (filename) {
|
|
272
273
|
default:
|
|
273
274
|
return {
|
|
@@ -284,7 +285,7 @@ const getFirstName = name => {
|
|
|
284
285
|
if (_.isEmpty(name)) {
|
|
285
286
|
return name;
|
|
286
287
|
}
|
|
287
|
-
return name.split(
|
|
288
|
+
return name.split(" ")[0];
|
|
288
289
|
};
|
|
289
290
|
const usersToSearchResult = (contacts, excludedUserIds) => {
|
|
290
291
|
let result = [];
|
|
@@ -306,14 +307,14 @@ const searchUsers = (source, term) => {
|
|
|
306
307
|
return source;
|
|
307
308
|
}
|
|
308
309
|
return _.filter(source, user => {
|
|
309
|
-
const split = user.displayName.split(
|
|
310
|
+
const split = user.displayName.split(" ");
|
|
310
311
|
return _.some(split, part => {
|
|
311
312
|
return part.toLowerCase().indexOf(term.toLowerCase()) === 0;
|
|
312
313
|
});
|
|
313
314
|
});
|
|
314
315
|
};
|
|
315
316
|
const getTabSettingsFromState = state => {
|
|
316
|
-
const tabSettings = state.user && state.user.interface || getSiteSettingFromState(state,
|
|
317
|
+
const tabSettings = state.user && state.user.interface || getSiteSettingFromState(state, "TabSettings", null);
|
|
317
318
|
return tabSettings;
|
|
318
319
|
};
|
|
319
320
|
const getEnabledTabsFromState = state => {
|
|
@@ -322,17 +323,17 @@ const getEnabledTabsFromState = state => {
|
|
|
322
323
|
};
|
|
323
324
|
const getReactions = () => {
|
|
324
325
|
return [{
|
|
325
|
-
key:
|
|
326
|
-
icon: require(
|
|
326
|
+
key: "heart",
|
|
327
|
+
icon: require("./assets/icons/reactions/heart.png")
|
|
327
328
|
}, {
|
|
328
|
-
key:
|
|
329
|
-
icon: require(
|
|
329
|
+
key: "smile",
|
|
330
|
+
icon: require("./assets/icons/reactions/smile.png")
|
|
330
331
|
}, {
|
|
331
|
-
key:
|
|
332
|
-
icon: require(
|
|
332
|
+
key: "sad",
|
|
333
|
+
icon: require("./assets/icons/reactions/sad.png")
|
|
333
334
|
}, {
|
|
334
|
-
key:
|
|
335
|
-
icon: require(
|
|
335
|
+
key: "party",
|
|
336
|
+
icon: require("./assets/icons/reactions/party.png")
|
|
336
337
|
}];
|
|
337
338
|
};
|
|
338
339
|
const hasReacted = (reactions, userId) => {
|
|
@@ -341,25 +342,25 @@ const hasReacted = (reactions, userId) => {
|
|
|
341
342
|
});
|
|
342
343
|
};
|
|
343
344
|
const isTablet = () => {
|
|
344
|
-
return Dimensions.get(
|
|
345
|
+
return Dimensions.get("screen").width > 600;
|
|
345
346
|
};
|
|
346
347
|
const isVimeo = url => {
|
|
347
348
|
if (_.isEmpty(url)) {
|
|
348
349
|
return false;
|
|
349
350
|
}
|
|
350
|
-
if (url.indexOf(
|
|
351
|
+
if (url.indexOf("https://vimeo.com/") === 0) {
|
|
351
352
|
return true;
|
|
352
353
|
}
|
|
353
|
-
if (url.indexOf(
|
|
354
|
+
if (url.indexOf("https://player.vimeo.com/video/") === 0) {
|
|
354
355
|
return true;
|
|
355
356
|
}
|
|
356
357
|
};
|
|
357
358
|
const getVimeoEmbed = url => {
|
|
358
359
|
if (_.isEmpty(url)) {
|
|
359
|
-
return
|
|
360
|
+
return "";
|
|
360
361
|
}
|
|
361
|
-
if (url.indexOf(
|
|
362
|
-
const vimeoId =
|
|
362
|
+
if (url.indexOf("https://vimeo.com/") === 0) {
|
|
363
|
+
const vimeoId = "lol"; //TODO
|
|
363
364
|
return `https://player.vimeo.com/video/${vimeoId}`;
|
|
364
365
|
}
|
|
365
366
|
return url; //TODO
|
|
@@ -380,9 +381,9 @@ const getYoutubeEmbed = url => {
|
|
|
380
381
|
const match = url.match(regExp);
|
|
381
382
|
return `https://www.youtube.com/embed/${match[2]}?autoplay=0`;
|
|
382
383
|
};
|
|
383
|
-
const getValidUrl = (url =
|
|
384
|
+
const getValidUrl = (url = "") => {
|
|
384
385
|
let newUrl = decodeURIComponent(url);
|
|
385
|
-
newUrl = newUrl.trim().replace(/\s/g,
|
|
386
|
+
newUrl = newUrl.trim().replace(/\s/g, "");
|
|
386
387
|
if (/^(:\/\/)/.test(newUrl)) {
|
|
387
388
|
return `https${newUrl}`;
|
|
388
389
|
}
|
|
@@ -411,7 +412,7 @@ const toParagraphed = (text, style) => {
|
|
|
411
412
|
if (!text) {
|
|
412
413
|
return text;
|
|
413
414
|
}
|
|
414
|
-
const textSplit = text.split(
|
|
415
|
+
const textSplit = text.split("\n");
|
|
415
416
|
return _.map(textSplit, (t, i) => {
|
|
416
417
|
return /*#__PURE__*/React.createElement(Text, {
|
|
417
418
|
key: `paragraph_${i}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","React","Platform","StatusBar","Dimensions","Text","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","isEmail","email","isEmpty","atpos","dotpos","lastIndexOf","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments","toParagraphed","text","style","textSplit","map","t","i","createElement"],"sources":["helper.js"],"sourcesContent":["import _ from 'lodash';\nimport React from 'react';\nimport { Platform, StatusBar, Dimensions, Text } from 'react-native';\nimport Constants from 'expo-constants';\nimport Config from './config';\nimport { LINEGREY } from './colours';\nimport { getSessionTokenAWS } from './session';\n\n// seperated files to export\nimport detectFaces from './js/images/detectFaces';\nimport findLandmarkRange from './js/images/findLandmarkRange';\nimport getScaledOffset from './js/images/getScaledOffset';\n\nimport getSiteLevelFromState from './js/site/getSiteLevelFromState';\nimport isTVEnabled from './js/site/isTVEnabled';\n\nconst TIMESTAMP_FORMAT = 'D MMM • h:mma';\nconst DATE_FORMAT = 'D MMM YYYY';\n\nconst getUrl = (baseAction, action, query) => {\n const { baseAPIUrl, baseStage } = Config.env;\n let queryPart = '';\n if (query) {\n _.keys(query).forEach((key, index) => {\n queryPart += `${index === 0 ? '?' : '&'}${key}=${encodeURIComponent(query[key])}`;\n });\n }\n return `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n return new Promise((resolve, reject) => {\n getSessionTokenAWS().then(idToken => {\n resolve(`Bearer ${idToken}`);\n });\n });\n};\n\nconst getShadowStyle = () => {\n if (Platform.OS === 'ios') {\n return {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.1,\n shadowRadius: 3,\n backgroundColor: '#fff',\n };\n }\n return {\n borderColor: LINEGREY,\n backgroundColor: '#fff',\n elevation: 8,\n };\n};\n\nconst StatusBarHeight = size => {\n return getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n return Platform.OS === 'ios' ? Constants.statusBarHeight : StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n if (state && state.user && state.user.siteSettings && !_.isUndefined(state.user.siteSettings[key])) {\n return state.user.siteSettings[key];\n }\n return defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n return !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = url => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('.');\n return fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n if (!url) {\n return null;\n }\n const fileSplit = url.split('/');\n const name = fileSplit[fileSplit.length - 1].toLowerCase();\n if (!noExtension) {\n return name;\n }\n return name.split('.')[0];\n};\n\nconst isVideo = url => {\n const extension = getExtension(url);\n return ['mov', 'mp4'].includes(extension);\n};\n\nconst isVideoUrl = url => {\n const urlToCheck = getValidUrl(url);\n if (isVideo(urlToCheck)) {\n return true;\n }\n if (isYoutube(urlToCheck)) {\n return true;\n }\n if (isVimeo(urlToCheck)) {\n return true;\n }\n return false;\n};\n\nconst isStockImage = url => {\n return url.indexOf('https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library') !== -1;\n};\n\nconst getThumb300 = url => {\n if (!url) {\n return url;\n }\n if (isVideo(url)) {\n return 'https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg';\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url\n .replace('/uploads/', '/uploads-thumb/')\n .replace('/general/', '/general300/')\n .replace('/uploads1400/', '/uploads-thumb/')\n .replace('/general1400/', '/general300/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/1400/', '/thumb300/').replace('/uploads/', '/thumb300/');\n }\n return url;\n};\n\nconst get1400 = url => {\n if (!url) {\n return url;\n }\n if (url.indexOf('https://plussprdstorage.blob.core.windows.net/') !== -1) {\n return url.replace('https://plussprdstorage.blob.core.windows.net/', 'https://plusscdn.azureedge.net/');\n }\n if (url.indexOf('https://plusscdn.azureedge.net/') !== -1) {\n return url.replace('/uploads/', '/uploads1400/').replace('/general/', '/general1400/');\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/1400/');\n }\n return url;\n};\n\nconst get300 = url => {\n if (!url) {\n return url;\n }\n if (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n const extension = getExtension(url);\n let urlToUse = url;\n if (extension !== 'jpg') {\n urlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n }\n return urlToUse.replace('/uploads/', '/300/').replace('/1400/', '/300/');\n }\n return url;\n};\n\nconst getMimeType = url => {\n const extension = getExtension(url);\n switch (extension) {\n case 'mov':\n return 'video/quicktime';\n case 'mp4':\n return 'video/mp4';\n default:\n return 'image/jpeg';\n }\n};\n\nconst getCompressed = url => {\n if (!url || typeof url !== 'string') return '';\n return url.replace('/uploads/', '/compressed/');\n};\n\nconst imageExists = url => {\n return new Promise(resolve => {\n fetch(url, { method: 'HEAD', cache: 'no-cache' })\n .then(response => {\n resolve(response.status === 200);\n })\n .catch(() => {\n resolve(false);\n });\n });\n};\n\nconst formatTime = (hours, minutes) => {\n const period = hours >= 12 ? 'pm' : 'am';\n\n // Convert 24-hour format to 12-hour format\n const adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n // Ensure minutes are two digits\n const adjustedMinutes = String(minutes).padStart(2, '0');\n\n return `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n\n if (isTimeOfDay) {\n return formatTime(hours, remainingMinutes);\n }\n\n const hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n const minutesString = remainingMinutes > 1 ? `${remainingMinutes} minutes` : `${remainingMinutes} minute`;\n\n if (hours && remainingMinutes) {\n return `${hoursString} ${minutesString}`;\n }\n if (hours) {\n return hoursString;\n }\n if (remainingMinutes) {\n return minutesString;\n }\n return '0 minutes';\n};\n\nconst getPluralS = count => {\n return count === 1 ? '' : 's';\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n if (count === 1) {\n return singular;\n }\n return plural;\n};\n\nconst isEmail = email => {\n if (_.isEmpty(email)) {\n return false;\n }\n const atpos = email.indexOf('@');\n const dotpos = email.lastIndexOf('.');\n if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {\n return false;\n }\n return true;\n};\n\nconst randomString = (name = '') => {\n return `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, c => {\n // eslint-disable-next-line\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n\nconst generateImageName = (name, source) => {\n let result = randomString(name);\n if (source) {\n result += `.${_.last(source.split('.'))}`;\n }\n return result;\n};\n\nconst getSite = site => {\n return site === 'plussSpace' || site === 'hq' ? Config.env.preferredSite : site;\n};\n\nconst getTakeoverThumb = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getTakeoverImage = uri => {\n const filename = uri.split('/').pop();\n switch (filename) {\n default:\n return { uri };\n }\n};\n\nconst getImageSource = (uri, isThumb) => {\n if (uri == null) return null;\n if (isThumb) return getTakeoverThumb(uri);\n return getTakeoverImage(uri);\n};\n\nconst getFirstName = name => {\n if (_.isEmpty(name)) {\n return name;\n }\n return name.split(' ')[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n let result = [];\n contacts.forEach(user => {\n result.push({\n displayName: user.displayName,\n id: user.objectID || user.id || user.ID || user.userId || user.Id,\n profilePic: user.profilePic || user.photoURL || null,\n unit: user.unit,\n });\n });\n result = _.reject(result, contact => {\n return _.includes(excludedUserIds, contact.id);\n });\n return result;\n};\n\nconst searchUsers = (source, term) => {\n if (_.isEmpty(term)) {\n return source;\n }\n return _.filter(source, user => {\n const split = user.displayName.split(' ');\n return _.some(split, part => {\n return part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n });\n });\n};\n\nconst getTabSettingsFromState = state => {\n const tabSettings = (state.user && state.user.interface) || getSiteSettingFromState(state, 'TabSettings', null);\n return tabSettings;\n};\n\nconst getEnabledTabsFromState = state => {\n const tabSettings = getTabSettingsFromState(state);\n return tabSettings ? tabSettings.filter(tab => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n return [\n {\n key: 'heart',\n icon: require('./assets/icons/reactions/heart.png'),\n },\n {\n key: 'smile',\n icon: require('./assets/icons/reactions/smile.png'),\n },\n {\n key: 'sad',\n icon: require('./assets/icons/reactions/sad.png'),\n },\n {\n key: 'party',\n icon: require('./assets/icons/reactions/party.png'),\n },\n ];\n};\n\nconst hasReacted = (reactions, userId) => {\n return _.some(reactions, r => {\n return !!r[userId];\n });\n};\n\nconst isTablet = () => {\n return Dimensions.get('screen').width > 600;\n};\n\nconst isVimeo = url => {\n if (_.isEmpty(url)) {\n return false;\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n return true;\n }\n if (url.indexOf('https://player.vimeo.com/video/') === 0) {\n return true;\n }\n};\n\nconst getVimeoEmbed = url => {\n if (_.isEmpty(url)) {\n return '';\n }\n if (url.indexOf('https://vimeo.com/') === 0) {\n const vimeoId = 'lol'; //TODO\n return `https://player.vimeo.com/video/${vimeoId}`;\n }\n return url; //TODO\n};\n\nconst isYoutube = url => {\n if (_.isUndefined(url) || _.isEmpty(url)) {\n return false;\n }\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n if (match && match[2].length === 11) {\n return true;\n }\n return false;\n};\n\nconst getYoutubeEmbed = url => {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = '') => {\n let newUrl = decodeURIComponent(url);\n newUrl = newUrl.trim().replace(/\\s/g, '');\n\n if (/^(:\\/\\/)/.test(newUrl)) {\n return `https${newUrl}`;\n }\n if (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n return `https://${newUrl}`;\n }\n\n return newUrl;\n};\n\nconst getUserPreview = user => {\n return {\n id: user.uid,\n displayName: user.displayName,\n profilePic: user.profilePic || null,\n };\n};\n\nconst allowComments = canComment => {\n if (canComment === false) {\n return false;\n }\n if (canComment === true) {\n return true;\n }\n return Config.env.defaultAllowComments;\n};\n\nconst toParagraphed = (text, style) => {\n if (!text) {\n return text;\n }\n const textSplit = text.split('\\n');\n return _.map(textSplit, (t, i) => {\n return (\n <Text key={`paragraph_${i}`} style={style}>\n {t}\n </Text>\n );\n });\n};\n\nexport {\n TIMESTAMP_FORMAT,\n DATE_FORMAT,\n getUrl,\n getAuthTokenHeader,\n getShadowStyle,\n StatusBarHeight,\n getStatusBarHeight,\n getSiteSettingFromState,\n getValueOrDefault,\n getExtension,\n getFileName,\n isVideo,\n get300,\n getThumb300,\n get1400,\n getMimeType,\n getCompressed,\n imageExists,\n getPluralS,\n getPluralOptions,\n isEmail,\n formatTime,\n minutesToString,\n randomString,\n generateImageName,\n getSite,\n getImageSource,\n getFirstName,\n usersToSearchResult,\n searchUsers,\n getEnabledTabsFromState,\n getReactions,\n hasReacted,\n isTablet,\n isYoutube,\n getYoutubeEmbed,\n getValidUrl,\n getUserPreview,\n allowComments,\n toParagraphed,\n isVideoUrl,\n detectFaces,\n findLandmarkRange,\n getScaledOffset,\n getSiteLevelFromState,\n isTVEnabled,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_","React","Platform","StatusBar","Dimensions","Text","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","isEmail","email","isEmpty","atpos","dotpos","lastIndexOf","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments","toParagraphed","text","style","textSplit","map","t","i","createElement"],"sources":["helper.js"],"sourcesContent":["import _ from \"lodash\";\nimport React from \"react\";\nimport { Platform, StatusBar, Dimensions } from \"react-native\";\nimport { Text } from \"./components\";\nimport Constants from \"expo-constants\";\nimport Config from \"./config\";\nimport { LINEGREY } from \"./colours\";\nimport { getSessionTokenAWS } from \"./session\";\n\n// seperated files to export\nimport detectFaces from \"./js/images/detectFaces\";\nimport findLandmarkRange from \"./js/images/findLandmarkRange\";\nimport getScaledOffset from \"./js/images/getScaledOffset\";\n\nimport getSiteLevelFromState from \"./js/site/getSiteLevelFromState\";\nimport isTVEnabled from \"./js/site/isTVEnabled\";\n\nconst TIMESTAMP_FORMAT = \"D MMM • h:mma\";\nconst DATE_FORMAT = \"D MMM YYYY\";\n\nconst getUrl = (baseAction, action, query) => {\n\tconst { baseAPIUrl, baseStage } = Config.env;\n\tlet queryPart = \"\";\n\tif (query) {\n\t\t_.keys(query).forEach((key, index) => {\n\t\t\tqueryPart += `${index === 0 ? \"?\" : \"&\"}${key}=${encodeURIComponent(query[key])}`;\n\t\t});\n\t}\n\treturn `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n\treturn new Promise((resolve, reject) => {\n\t\tgetSessionTokenAWS().then((idToken) => {\n\t\t\tresolve(`Bearer ${idToken}`);\n\t\t});\n\t});\n};\n\nconst getShadowStyle = () => {\n\tif (Platform.OS === \"ios\") {\n\t\treturn {\n\t\t\tshadowColor: \"#000\",\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 1,\n\t\t\t},\n\t\t\tshadowOpacity: 0.1,\n\t\t\tshadowRadius: 3,\n\t\t\tbackgroundColor: \"#fff\",\n\t\t};\n\t}\n\treturn {\n\t\tborderColor: LINEGREY,\n\t\tbackgroundColor: \"#fff\",\n\t\televation: 8,\n\t};\n};\n\nconst StatusBarHeight = (size) => {\n\treturn getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n\treturn Platform.OS === \"ios\"\n\t\t? Constants.statusBarHeight\n\t\t: StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n\tif (\n\t\tstate &&\n\t\tstate.user &&\n\t\tstate.user.siteSettings &&\n\t\t!_.isUndefined(state.user.siteSettings[key])\n\t) {\n\t\treturn state.user.siteSettings[key];\n\t}\n\treturn defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n\treturn !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = (url) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\".\");\n\treturn fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\"/\");\n\tconst name = fileSplit[fileSplit.length - 1].toLowerCase();\n\tif (!noExtension) {\n\t\treturn name;\n\t}\n\treturn name.split(\".\")[0];\n};\n\nconst isVideo = (url) => {\n\tconst extension = getExtension(url);\n\treturn [\"mov\", \"mp4\"].includes(extension);\n};\n\nconst isVideoUrl = (url) => {\n\tconst urlToCheck = getValidUrl(url);\n\tif (isVideo(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isYoutube(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isVimeo(urlToCheck)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst isStockImage = (url) => {\n\treturn (\n\t\turl.indexOf(\n\t\t\t\"https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library\",\n\t\t) !== -1\n\t);\n};\n\nconst getThumb300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isVideo(url)) {\n\t\treturn \"https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg\";\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general/\", \"/general300/\")\n\t\t\t.replace(\"/uploads1400/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general1400/\", \"/general300/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse\n\t\t\t.replace(\"/1400/\", \"/thumb300/\")\n\t\t\t.replace(\"/uploads/\", \"/thumb300/\");\n\t}\n\treturn url;\n};\n\nconst get1400 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads1400/\")\n\t\t\t.replace(\"/general/\", \"/general1400/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/1400/\");\n\t}\n\treturn url;\n};\n\nconst get300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/300/\").replace(\"/1400/\", \"/300/\");\n\t}\n\treturn url;\n};\n\nconst getMimeType = (url) => {\n\tconst extension = getExtension(url);\n\tswitch (extension) {\n\t\tcase \"mov\":\n\t\t\treturn \"video/quicktime\";\n\t\tcase \"mp4\":\n\t\t\treturn \"video/mp4\";\n\t\tdefault:\n\t\t\treturn \"image/jpeg\";\n\t}\n};\n\nconst getCompressed = (url) => {\n\tif (!url || typeof url !== \"string\") return \"\";\n\treturn url.replace(\"/uploads/\", \"/compressed/\");\n};\n\nconst imageExists = (url) => {\n\treturn new Promise((resolve) => {\n\t\tfetch(url, { method: \"HEAD\", cache: \"no-cache\" })\n\t\t\t.then((response) => {\n\t\t\t\tresolve(response.status === 200);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tresolve(false);\n\t\t\t});\n\t});\n};\n\nconst formatTime = (hours, minutes) => {\n\tconst period = hours >= 12 ? \"pm\" : \"am\";\n\n\t// Convert 24-hour format to 12-hour format\n\tconst adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n\t// Ensure minutes are two digits\n\tconst adjustedMinutes = String(minutes).padStart(2, \"0\");\n\n\treturn `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n\tconst hours = Math.floor(minutes / 60);\n\tconst remainingMinutes = minutes % 60;\n\n\tif (isTimeOfDay) {\n\t\treturn formatTime(hours, remainingMinutes);\n\t}\n\n\tconst hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n\tconst minutesString =\n\t\tremainingMinutes > 1\n\t\t\t? `${remainingMinutes} minutes`\n\t\t\t: `${remainingMinutes} minute`;\n\n\tif (hours && remainingMinutes) {\n\t\treturn `${hoursString} ${minutesString}`;\n\t}\n\tif (hours) {\n\t\treturn hoursString;\n\t}\n\tif (remainingMinutes) {\n\t\treturn minutesString;\n\t}\n\treturn \"0 minutes\";\n};\n\nconst getPluralS = (count) => {\n\treturn count === 1 ? \"\" : \"s\";\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n\tif (count === 1) {\n\t\treturn singular;\n\t}\n\treturn plural;\n};\n\nconst isEmail = (email) => {\n\tif (_.isEmpty(email)) {\n\t\treturn false;\n\t}\n\tconst atpos = email.indexOf(\"@\");\n\tconst dotpos = email.lastIndexOf(\".\");\n\tif (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nconst randomString = (name = \"\") => {\n\treturn `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, (c) => {\n\t\t// eslint-disable-next-line\n\t\tvar r = (Math.random() * 16) | 0,\n\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nconst generateImageName = (name, source) => {\n\tlet result = randomString(name);\n\tif (source) {\n\t\tresult += `.${_.last(source.split(\".\"))}`;\n\t}\n\treturn result;\n};\n\nconst getSite = (site) => {\n\treturn site === \"plussSpace\" || site === \"hq\"\n\t\t? Config.env.preferredSite\n\t\t: site;\n};\n\nconst getTakeoverThumb = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getTakeoverImage = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getImageSource = (uri, isThumb) => {\n\tif (uri == null) return null;\n\tif (isThumb) return getTakeoverThumb(uri);\n\treturn getTakeoverImage(uri);\n};\n\nconst getFirstName = (name) => {\n\tif (_.isEmpty(name)) {\n\t\treturn name;\n\t}\n\treturn name.split(\" \")[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n\tlet result = [];\n\tcontacts.forEach((user) => {\n\t\tresult.push({\n\t\t\tdisplayName: user.displayName,\n\t\t\tid: user.objectID || user.id || user.ID || user.userId || user.Id,\n\t\t\tprofilePic: user.profilePic || user.photoURL || null,\n\t\t\tunit: user.unit,\n\t\t});\n\t});\n\tresult = _.reject(result, (contact) => {\n\t\treturn _.includes(excludedUserIds, contact.id);\n\t});\n\treturn result;\n};\n\nconst searchUsers = (source, term) => {\n\tif (_.isEmpty(term)) {\n\t\treturn source;\n\t}\n\treturn _.filter(source, (user) => {\n\t\tconst split = user.displayName.split(\" \");\n\t\treturn _.some(split, (part) => {\n\t\t\treturn part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n\t\t});\n\t});\n};\n\nconst getTabSettingsFromState = (state) => {\n\tconst tabSettings =\n\t\t(state.user && state.user.interface) ||\n\t\tgetSiteSettingFromState(state, \"TabSettings\", null);\n\treturn tabSettings;\n};\n\nconst getEnabledTabsFromState = (state) => {\n\tconst tabSettings = getTabSettingsFromState(state);\n\treturn tabSettings ? tabSettings.filter((tab) => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n\treturn [\n\t\t{\n\t\t\tkey: \"heart\",\n\t\t\ticon: require(\"./assets/icons/reactions/heart.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"smile\",\n\t\t\ticon: require(\"./assets/icons/reactions/smile.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"sad\",\n\t\t\ticon: require(\"./assets/icons/reactions/sad.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"party\",\n\t\t\ticon: require(\"./assets/icons/reactions/party.png\"),\n\t\t},\n\t];\n};\n\nconst hasReacted = (reactions, userId) => {\n\treturn _.some(reactions, (r) => {\n\t\treturn !!r[userId];\n\t});\n};\n\nconst isTablet = () => {\n\treturn Dimensions.get(\"screen\").width > 600;\n};\n\nconst isVimeo = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\treturn true;\n\t}\n\tif (url.indexOf(\"https://player.vimeo.com/video/\") === 0) {\n\t\treturn true;\n\t}\n};\n\nconst getVimeoEmbed = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn \"\";\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\tconst vimeoId = \"lol\"; //TODO\n\t\treturn `https://player.vimeo.com/video/${vimeoId}`;\n\t}\n\treturn url; //TODO\n};\n\nconst isYoutube = (url) => {\n\tif (_.isUndefined(url) || _.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\tif (match && match[2].length === 11) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst getYoutubeEmbed = (url) => {\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\treturn `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = \"\") => {\n\tlet newUrl = decodeURIComponent(url);\n\tnewUrl = newUrl.trim().replace(/\\s/g, \"\");\n\n\tif (/^(:\\/\\/)/.test(newUrl)) {\n\t\treturn `https${newUrl}`;\n\t}\n\tif (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n\t\treturn `https://${newUrl}`;\n\t}\n\n\treturn newUrl;\n};\n\nconst getUserPreview = (user) => {\n\treturn {\n\t\tid: user.uid,\n\t\tdisplayName: user.displayName,\n\t\tprofilePic: user.profilePic || null,\n\t};\n};\n\nconst allowComments = (canComment) => {\n\tif (canComment === false) {\n\t\treturn false;\n\t}\n\tif (canComment === true) {\n\t\treturn true;\n\t}\n\treturn Config.env.defaultAllowComments;\n};\n\nconst toParagraphed = (text, style) => {\n\tif (!text) {\n\t\treturn text;\n\t}\n\tconst textSplit = text.split(\"\\n\");\n\treturn _.map(textSplit, (t, i) => {\n\t\treturn (\n\t\t\t<Text key={`paragraph_${i}`} style={style}>\n\t\t\t\t{t}\n\t\t\t</Text>\n\t\t);\n\t});\n};\n\nexport {\n\tTIMESTAMP_FORMAT,\n\tDATE_FORMAT,\n\tgetUrl,\n\tgetAuthTokenHeader,\n\tgetShadowStyle,\n\tStatusBarHeight,\n\tgetStatusBarHeight,\n\tgetSiteSettingFromState,\n\tgetValueOrDefault,\n\tgetExtension,\n\tgetFileName,\n\tisVideo,\n\tget300,\n\tgetThumb300,\n\tget1400,\n\tgetMimeType,\n\tgetCompressed,\n\timageExists,\n\tgetPluralS,\n\tgetPluralOptions,\n\tisEmail,\n\tformatTime,\n\tminutesToString,\n\trandomString,\n\tgenerateImageName,\n\tgetSite,\n\tgetImageSource,\n\tgetFirstName,\n\tusersToSearchResult,\n\tsearchUsers,\n\tgetEnabledTabsFromState,\n\tgetReactions,\n\thasReacted,\n\tisTablet,\n\tisYoutube,\n\tgetYoutubeEmbed,\n\tgetValidUrl,\n\tgetUserPreview,\n\tallowComments,\n\ttoParagraphed,\n\tisVideoUrl,\n\tdetectFaces,\n\tfindLandmarkRange,\n\tgetScaledOffset,\n\tgetSiteLevelFromState,\n\tisTVEnabled,\n};\n"],"mappings":"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","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import Config from
|
|
2
|
-
import Styles from
|
|
3
|
-
import * as Session from
|
|
4
|
-
import * as Helper from
|
|
5
|
-
import * as Colours from
|
|
6
|
-
import * as Actions from
|
|
7
|
-
import * as ActionTypes from
|
|
8
|
-
import * as Apis from
|
|
9
|
-
import * as Components from
|
|
10
|
-
import * as
|
|
11
|
-
import
|
|
12
|
-
export { Config, Styles, Session, Helper, Colours, Actions, ActionTypes, Apis, Components,
|
|
1
|
+
import Config from "./config";
|
|
2
|
+
import Styles from "./styles";
|
|
3
|
+
import * as Session from "./session";
|
|
4
|
+
import * as Helper from "./helper";
|
|
5
|
+
import * as Colours from "./colours";
|
|
6
|
+
import * as Actions from "./actions";
|
|
7
|
+
import * as ActionTypes from "./actions/types";
|
|
8
|
+
import * as Apis from "./apis";
|
|
9
|
+
import * as Components from "./components";
|
|
10
|
+
import * as Constants from "./constants";
|
|
11
|
+
import { withNavigationFocus } from "./withNavigationFocus";
|
|
12
|
+
export { Config, Styles, Session, Helper, Colours, Actions, ActionTypes, Apis, Components, Constants, withNavigationFocus };
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Config","Styles","Session","Helper","Colours","Actions","ActionTypes","Apis","Components","
|
|
1
|
+
{"version":3,"names":["Config","Styles","Session","Helper","Colours","Actions","ActionTypes","Apis","Components","Constants","withNavigationFocus"],"sources":["index.js"],"sourcesContent":["import Config from \"./config\";\nimport Styles from \"./styles\";\nimport * as Session from \"./session\";\nimport * as Helper from \"./helper\";\nimport * as Colours from \"./colours\";\nimport * as Actions from \"./actions\";\nimport * as ActionTypes from \"./actions/types\";\nimport * as Apis from \"./apis\";\nimport * as Components from \"./components\";\nimport * as Constants from \"./constants\";\nimport { withNavigationFocus } from \"./withNavigationFocus\";\n\nexport {\n\tConfig,\n\tStyles,\n\tSession,\n\tHelper,\n\tColours,\n\tActions,\n\tActionTypes,\n\tApis,\n\tComponents,\n\tConstants,\n\twithNavigationFocus,\n};\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,UAAU;AAC7B,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,WAAW,MAAM,iBAAiB;AAC9C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,UAAU,MAAM,cAAc;AAC1C,OAAO,KAAKC,SAAS,MAAM,aAAa;AACxC,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,SACCV,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,IAAI,EACJC,UAAU,EACVC,SAAS,EACTC,mBAAmB","ignoreList":[]}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { stringActions } from
|
|
2
|
-
import moment from
|
|
3
|
-
import
|
|
1
|
+
import { stringActions } from "../../apis";
|
|
2
|
+
import moment from "moment";
|
|
3
|
+
import { File, Paths } from "expo-file-system";
|
|
4
4
|
// import * as FaceDetector from 'expo-face-detector';
|
|
5
5
|
|
|
6
6
|
const detectFaces = async remoteUrl => {
|
|
7
|
+
var _parts$;
|
|
7
8
|
// deprecated
|
|
8
9
|
|
|
9
|
-
const parts = remoteUrl.split(
|
|
10
|
+
const parts = remoteUrl.split("/").splice(-2);
|
|
10
11
|
const mediaId = parts[0];
|
|
11
|
-
const extension = parts[1]
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const extension = ((_parts$ = parts[1]) === null || _parts$ === void 0 ? void 0 : _parts$.split(".").splice(-1)[0]) || "jpg";
|
|
13
|
+
const file = await File.downloadFileAsync(remoteUrl, new File(Paths.cache, `${mediaId}.${extension}`), {
|
|
14
|
+
idempotent: true
|
|
15
|
+
});
|
|
16
|
+
const localUrl = file.uri;
|
|
16
17
|
|
|
17
18
|
// const faces = await FaceDetector.detectFacesAsync(localUrl, {
|
|
18
19
|
// mode: FaceDetector.FaceDetectorMode.accurate,
|
|
@@ -23,7 +24,7 @@ const detectFaces = async remoteUrl => {
|
|
|
23
24
|
delete faces.image.uri;
|
|
24
25
|
}
|
|
25
26
|
faces.timestamp = moment().valueOf();
|
|
26
|
-
stringActions.setString(
|
|
27
|
+
stringActions.setString("plussSpace", `imagefaces_${encodeURIComponent(remoteUrl)}`, faces);
|
|
27
28
|
return faces;
|
|
28
29
|
};
|
|
29
30
|
export default detectFaces;
|