@plusscommunities/pluss-core-app 6.0.7-auth.0 → 6.0.7-beta.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.map +1 -1
- package/dist/module/actions/MediaActions.js.map +1 -1
- package/dist/module/actions/ResidentActions.js.map +1 -1
- package/dist/module/actions/UserActions.js.map +1 -1
- package/dist/module/actions/UserSettingsActions.js.map +1 -1
- package/dist/module/actions/index.js.map +1 -1
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/analyticsActions.js.map +1 -1
- package/dist/module/apis/contactActions.js.map +1 -1
- package/dist/module/apis/eventActions.js.map +1 -1
- package/dist/module/apis/fileActions.js +28 -21
- package/dist/module/apis/fileActions.js.map +1 -1
- package/dist/module/apis/followerActions.js.map +1 -1
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/apis/notificationActions.js.map +1 -1
- package/dist/module/apis/profileActions.js.map +1 -1
- package/dist/module/apis/reactionActions.js.map +1 -1
- package/dist/module/apis/stringActions.js.map +1 -1
- package/dist/module/apis/typeActions.js.map +1 -1
- package/dist/module/apis/userActions.js.map +1 -1
- package/dist/module/colours.js.map +1 -1
- package/dist/module/components/AddButton.js.map +1 -1
- package/dist/module/components/AddToCalendarButton.js +5 -4
- package/dist/module/components/AddToCalendarButton.js.map +1 -1
- package/dist/module/components/Attachment.js.map +1 -1
- package/dist/module/components/AudienceSelectorLauncher.js +3 -3
- package/dist/module/components/AudienceSelectorLauncher.js.map +1 -1
- package/dist/module/components/AudienceSelectorPage.js +3 -3
- package/dist/module/components/AudienceSelectorPage.js.map +1 -1
- package/dist/module/components/AutoOffsetImage.js +5 -3
- package/dist/module/components/AutoOffsetImage.js.map +1 -1
- package/dist/module/components/BackButton.js.map +1 -1
- package/dist/module/components/CategoryTabs.js.map +1 -1
- package/dist/module/components/CommentReply.js +3 -3
- package/dist/module/components/CommentReply.js.map +1 -1
- package/dist/module/components/CommentSection.js +4 -3
- package/dist/module/components/CommentSection.js.map +1 -1
- package/dist/module/components/ConfirmPopup.js.map +1 -1
- package/dist/module/components/ConfirmationPopup.js.map +1 -1
- package/dist/module/components/DropDownItem.js +3 -3
- package/dist/module/components/DropDownItem.js.map +1 -1
- package/dist/module/components/DropDownMenu.js +3 -3
- package/dist/module/components/DropDownMenu.js.map +1 -1
- package/dist/module/components/EmptyStateMain.js.map +1 -1
- package/dist/module/components/EmptyStateWidget.js.map +1 -1
- package/dist/module/components/FontScaleButton.js.map +1 -1
- package/dist/module/components/FontScalePopup.js.map +1 -1
- package/dist/module/components/Forbidden.js +58 -0
- package/dist/module/components/Forbidden.js.map +1 -0
- package/dist/module/components/FormCard.js.map +1 -1
- package/dist/module/components/FormCardSection.js.map +1 -1
- package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -1
- package/dist/module/components/FormattedText.js +3 -3
- package/dist/module/components/FormattedText.js.map +1 -1
- package/dist/module/components/GenericInput.js.map +1 -1
- package/dist/module/components/GenericInputSection.js +1 -1
- package/dist/module/components/GenericInputSection.js.map +1 -1
- package/dist/module/components/Header.js.map +1 -1
- package/dist/module/components/ImagePopup.js +3 -3
- package/dist/module/components/ImagePopup.js.map +1 -1
- package/dist/module/components/ImageUploadProgress.js +3 -3
- package/dist/module/components/ImageUploadProgress.js.map +1 -1
- package/dist/module/components/ImageUploader.js +32 -20
- package/dist/module/components/ImageUploader.js.map +1 -1
- package/dist/module/components/InlineButton.js.map +1 -1
- package/dist/module/components/Input.js +3 -3
- package/dist/module/components/Input.js.map +1 -1
- package/dist/module/components/LoadingCircles.js +4 -3
- package/dist/module/components/LoadingCircles.js.map +1 -1
- package/dist/module/components/LoadingIndicator.js +3 -3
- package/dist/module/components/LoadingIndicator.js.map +1 -1
- package/dist/module/components/LoadingStateWidget.js.map +1 -1
- package/dist/module/components/MediaPlayer.js +20 -32
- package/dist/module/components/MediaPlayer.js.map +1 -1
- package/dist/module/components/MiddlePopup.js.map +1 -1
- package/dist/module/components/PDFPopup.js +4 -3
- package/dist/module/components/PDFPopup.js.map +1 -1
- package/dist/module/components/PlussChat.js +5 -4
- package/dist/module/components/PlussChat.js.map +1 -1
- package/dist/module/components/PlussChatMessage.js +1 -1
- package/dist/module/components/PlussChatMessage.js.map +1 -1
- package/dist/module/components/PlussChatTime.js.map +1 -1
- package/dist/module/components/Popup.js.map +1 -1
- package/dist/module/components/PopupMenu.js.map +1 -1
- package/dist/module/components/PositionedImage.js +4 -4
- package/dist/module/components/PositionedImage.js.map +1 -1
- package/dist/module/components/ProfilePic.js +1 -0
- package/dist/module/components/ProfilePic.js.map +1 -1
- package/dist/module/components/RadioButton.js.map +1 -1
- package/dist/module/components/Reaction.js +3 -3
- package/dist/module/components/Reaction.js.map +1 -1
- package/dist/module/components/Reactions.js +3 -3
- package/dist/module/components/Reactions.js.map +1 -1
- package/dist/module/components/SharingTools.js +3 -3
- package/dist/module/components/SharingTools.js.map +1 -1
- package/dist/module/components/Spinner.js.map +1 -1
- package/dist/module/components/StickyFooter.js.map +1 -1
- package/dist/module/components/TextStyle.js +1 -1
- package/dist/module/components/TextStyle.js.map +1 -1
- package/dist/module/components/Toggle.js.map +1 -1
- package/dist/module/components/TouchableSearchBar.js +3 -3
- package/dist/module/components/TouchableSearchBar.js.map +1 -1
- package/dist/module/components/UserListPopup.js.map +1 -1
- package/dist/module/components/UserListing.js.map +1 -1
- package/dist/module/components/VideoPopup.js +3 -3
- package/dist/module/components/VideoPopup.js.map +1 -1
- package/dist/module/components/WarningPopup.js.map +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js +3 -3
- package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js.map +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageTile.js.map +1 -1
- package/dist/module/components/index.js +1 -0
- package/dist/module/components/index.js.map +1 -1
- package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js +4 -3
- 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 +4 -4
- package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js.map +1 -1
- package/dist/module/config.js +1 -6
- package/dist/module/config.js.map +1 -1
- package/dist/module/constants.js.map +1 -1
- package/dist/module/fonts/index.js.map +1 -1
- package/dist/module/fonts/pluss60-icons.js.map +1 -1
- package/dist/module/helper.js +19 -2
- package/dist/module/helper.js.map +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/js/images/detectFaces.js.map +1 -1
- 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.map +1 -1
- package/dist/module/js/site/isTVEnabled.js.map +1 -1
- package/dist/module/session.js +2 -2
- package/dist/module/session.js.map +1 -1
- package/dist/module/styles.js.map +1 -1
- package/package.json +1 -4
- package/src/apis/fileActions.js +27 -19
- package/src/components/CommentSection.js +1 -1
- package/src/components/Forbidden.js +54 -0
- package/src/components/ImageUploader.js +29 -18
- package/src/components/MediaPlayer.js +16 -29
- package/src/components/index.js +1 -0
- package/src/config.js +0 -5
- package/src/helper.js +20 -1
- package/src/session.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","_","TouchableOpacity","Text","View","connect","moment","COLOUR_GREEN","TEXT_DARK","TEXT_LIGHT","getMainBrandingColourFromState","getLightBrandingColourFromState","Services","ProfilePic","InlineButton","Spinner","followerActions","addFollower","UserListing","constructor","props","state","pending","onPress","hidden","me","includes","user","isUndefined","key","userId","id","navigation","navigate","onFollowUser","userToSave","profilePic","displayName","setState","myId","then","catch","getTimeText","input","gug","unix","isBefore","local","startOf","format","getProfilePic","profilePicThumb","isEmpty","indexOf","replace","getLastMessage","chat","lastMessage","text","renderFollowButton","privateChat","createElement","style","justifyContent","styles","chatTimeStamp","unread","color","fontFamily","Changed","flexDirection","marginTop","opacity","counter","counterText","showFriendsButton","isFollowing","colourBrandingLight","friendsButton","textStyle","colourBrandingMain","disabled","borderColor","borderWidth","noText","size","bind","renderStatusText","statusText","render","containerStyle","activeOpacity","onPressDisabled","listItem","listItemStyle","Diameter","fill","flexRowReverse","alignCenter","rightContent","listItemTextContainer","contactName","numberOfLines","chatLastMessage","subText","paddingVertical","paddingHorizontal","position","flex","paddingLeft","fontSize","backgroundColor","top","left","alignItems","width","borderRadius","height","minWidth","textAlign","marginRight","mapStateToProps"],"sources":["UserListing.js"],"sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { TouchableOpacity, Text, View } from 'react-native';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { COLOUR_GREEN, TEXT_DARK, TEXT_LIGHT, getMainBrandingColourFromState, getLightBrandingColourFromState } from '../colours';\nimport { Services } from '../config';\nimport { ProfilePic } from './ProfilePic';\nimport { InlineButton } from './InlineButton';\nimport { Spinner } from './Spinner';\nimport { followerActions } from '../apis';\nimport { addFollower } from '../actions';\n\nclass UserListing extends Component {\n constructor(props) {\n super(props);\n this.state = { pending: false };\n }\n\n onPress() {\n const { hidden } = this.props.me;\n if (hidden && _.includes(hidden, 'people')) return;\n\n if (this.props.onPress) {\n this.props.onPress();\n return;\n }\n const user = { ...this.props.user };\n if (_.isUndefined(user.key)) {\n user.key = user.userId;\n }\n if (_.isUndefined(user.id)) {\n user.id = user.userId;\n }\n Services.navigation.navigate('profile', { user });\n }\n\n onFollowUser() {\n const userToSave = {\n profilePic: this.props.user.profilePic,\n displayName: this.props.user.displayName,\n id: this.props.user.id,\n };\n this.setState({ pending: true });\n followerActions\n .addFollower(userToSave, this.props.myId)\n .then(() => {\n this.props.addFollower(userToSave);\n })\n .catch(() => {\n this.setState({ pending: false });\n });\n }\n\n getTimeText(input) {\n const gug = moment.unix(input);\n if (\n gug.isBefore(\n moment()\n .local()\n .startOf('d'),\n )\n ) {\n return gug.format('D MMM');\n }\n return gug.format('h:mma');\n }\n\n getProfilePic() {\n if (this.props.user.profilePic == null) return null;\n let profilePic = this.props.user.profilePic;\n if (!_.isUndefined(this.props.user.profilePicThumb) && !_.isEmpty(this.props.user.profilePicThumb)) {\n profilePic = this.props.user.profilePicThumb;\n } else if (this.props.user.profilePic.indexOf('.amazonaws.com/1400/') > -1) {\n profilePic = profilePic.replace('/1400/', '/300/');\n }\n return profilePic;\n }\n\n getLastMessage(chat) {\n if (typeof chat.lastMessage === 'string') {\n return chat.lastMessage;\n }\n // TODO recognise user name of last message\n return chat.lastMessage.text;\n }\n\n renderFollowButton() {\n if (this.props.user.privateChat) {\n return (\n <View style={{ justifyContent: 'flex-start' }}>\n <Text style={[styles.chatTimeStamp, this.props.user.unread > 0 && { color: TEXT_DARK, fontFamily: 'sf-bold' }]}>\n {this.getTimeText(this.props.user.Changed)}\n </Text>\n <View style={[{ flexDirection: 'row-reverse', marginTop: 2 }, this.props.user.unread === 0 && { opacity: 0 }]}>\n <View style={styles.counter}>\n <Text style={styles.counterText}>{this.props.user.unread}</Text>\n </View>\n </View>\n </View>\n );\n }\n\n if (!this.props.showFriendsButton) {\n return null;\n }\n\n // self\n if (this.props.myId === this.props.user.id) {\n return null;\n }\n\n // already following\n if (this.props.isFollowing) {\n return (\n <InlineButton\n color={this.props.colourBrandingLight}\n style={styles.friendsButton}\n textStyle={{ color: this.props.colourBrandingMain }}\n disabled\n >\n Friends\n </InlineButton>\n );\n }\n\n // in process of following\n if (this.state.pending) {\n return (\n <InlineButton style={[styles.friendsButton, { borderColor: this.props.colourBrandingMain, borderWidth: 1 }]} disabled noText>\n <Spinner size=\"small\" color={this.props.colourBrandingMain} />\n </InlineButton>\n );\n }\n\n // not following yet\n return (\n <InlineButton\n onPress={this.onFollowUser.bind(this)}\n color=\"#fff\"\n style={[styles.friendsButton, { borderColor: this.props.colourBrandingMain, borderWidth: 1 }]}\n textStyle={{ color: this.props.colourBrandingMain }}\n >\n Add friend\n </InlineButton>\n );\n }\n\n renderStatusText() {\n if (!this.props.statusText) {\n return null;\n }\n return <Text style={styles.statusText}>{this.props.statusText}</Text>;\n }\n\n render() {\n return (\n <View style={this.props.containerStyle}>\n <TouchableOpacity activeOpacity={0.9} onPress={this.onPress.bind(this)} disabled={this.props.onPressDisabled}>\n <View style={[styles.listItem, this.props.listItemStyle]}>\n {this.renderStatusText()}\n <ProfilePic ProfilePic={this.getProfilePic()} Diameter={42} />\n <View style={[styles.fill, styles.flexRowReverse, styles.alignCenter]}>\n {this.props.rightContent}\n {this.renderFollowButton()}\n <View style={styles.fill}>\n <View style={styles.listItemTextContainer}>\n <Text style={styles.contactName} numberOfLines={1}>\n {this.props.user.displayName}\n </Text>\n {this.props.user.privateChat && (\n <Text style={styles.chatLastMessage} numberOfLines={1}>\n {this.getLastMessage(this.props.user)}\n </Text>\n )}\n {this.props.subText}\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\nconst styles = {\n listItem: {\n paddingVertical: 8,\n paddingHorizontal: 16,\n justifyContent: 'flex-start',\n flexDirection: 'row',\n position: 'relative',\n },\n listItemTextContainer: {\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-around',\n paddingLeft: 16,\n },\n contactName: {\n fontSize: 15,\n fontFamily: 'sf-semibold',\n backgroundColor: 'rgba(255,255,255,0)',\n color: TEXT_DARK,\n },\n statusText: {\n position: 'absolute',\n top: 0,\n left: 82,\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: TEXT_LIGHT,\n },\n fill: {\n flex: 1,\n },\n alignCenter: {\n alignItems: 'center',\n },\n flexRowReverse: {\n flexDirection: 'row-reverse',\n },\n friendsButton: {\n width: 100,\n },\n counter: {\n borderRadius: 10,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n backgroundColor: COLOUR_GREEN,\n },\n counterText: {\n color: '#fff',\n fontSize: 12,\n fontFamily: 'sf-semibold',\n textAlign: 'center',\n },\n chatTimeStamp: {\n fontSize: 10,\n fontFamily: 'sf-semibold',\n color: TEXT_LIGHT,\n },\n chatLastMessage: {\n fontSize: 13,\n fontFamily: 'sf-medium',\n color: TEXT_LIGHT,\n marginRight: 5,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n me: state.user,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { addFollower })(UserListing);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","_","TouchableOpacity","Text","View","connect","moment","COLOUR_GREEN","TEXT_DARK","TEXT_LIGHT","getMainBrandingColourFromState","getLightBrandingColourFromState","Services","ProfilePic","InlineButton","Spinner","followerActions","addFollower","UserListing","constructor","props","state","pending","onPress","hidden","me","includes","user","isUndefined","key","userId","id","navigation","navigate","onFollowUser","userToSave","profilePic","displayName","setState","myId","then","catch","getTimeText","input","gug","unix","isBefore","local","startOf","format","getProfilePic","profilePicThumb","isEmpty","indexOf","replace","getLastMessage","chat","lastMessage","text","renderFollowButton","privateChat","createElement","style","justifyContent","styles","chatTimeStamp","unread","color","fontFamily","Changed","flexDirection","marginTop","opacity","counter","counterText","showFriendsButton","isFollowing","colourBrandingLight","friendsButton","textStyle","colourBrandingMain","disabled","borderColor","borderWidth","noText","size","bind","renderStatusText","statusText","render","containerStyle","activeOpacity","onPressDisabled","listItem","listItemStyle","Diameter","fill","flexRowReverse","alignCenter","rightContent","listItemTextContainer","contactName","numberOfLines","chatLastMessage","subText","paddingVertical","paddingHorizontal","position","flex","paddingLeft","fontSize","backgroundColor","top","left","alignItems","width","borderRadius","height","minWidth","textAlign","marginRight","mapStateToProps"],"sources":["UserListing.js"],"sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { TouchableOpacity, Text, View } from 'react-native';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { COLOUR_GREEN, TEXT_DARK, TEXT_LIGHT, getMainBrandingColourFromState, getLightBrandingColourFromState } from '../colours';\nimport { Services } from '../config';\nimport { ProfilePic } from './ProfilePic';\nimport { InlineButton } from './InlineButton';\nimport { Spinner } from './Spinner';\nimport { followerActions } from '../apis';\nimport { addFollower } from '../actions';\n\nclass UserListing extends Component {\n constructor(props) {\n super(props);\n this.state = { pending: false };\n }\n\n onPress() {\n const { hidden } = this.props.me;\n if (hidden && _.includes(hidden, 'people')) return;\n\n if (this.props.onPress) {\n this.props.onPress();\n return;\n }\n const user = { ...this.props.user };\n if (_.isUndefined(user.key)) {\n user.key = user.userId;\n }\n if (_.isUndefined(user.id)) {\n user.id = user.userId;\n }\n Services.navigation.navigate('profile', { user });\n }\n\n onFollowUser() {\n const userToSave = {\n profilePic: this.props.user.profilePic,\n displayName: this.props.user.displayName,\n id: this.props.user.id,\n };\n this.setState({ pending: true });\n followerActions\n .addFollower(userToSave, this.props.myId)\n .then(() => {\n this.props.addFollower(userToSave);\n })\n .catch(() => {\n this.setState({ pending: false });\n });\n }\n\n getTimeText(input) {\n const gug = moment.unix(input);\n if (\n gug.isBefore(\n moment()\n .local()\n .startOf('d'),\n )\n ) {\n return gug.format('D MMM');\n }\n return gug.format('h:mma');\n }\n\n getProfilePic() {\n if (this.props.user.profilePic == null) return null;\n let profilePic = this.props.user.profilePic;\n if (!_.isUndefined(this.props.user.profilePicThumb) && !_.isEmpty(this.props.user.profilePicThumb)) {\n profilePic = this.props.user.profilePicThumb;\n } else if (this.props.user.profilePic.indexOf('.amazonaws.com/1400/') > -1) {\n profilePic = profilePic.replace('/1400/', '/300/');\n }\n return profilePic;\n }\n\n getLastMessage(chat) {\n if (typeof chat.lastMessage === 'string') {\n return chat.lastMessage;\n }\n // TODO recognise user name of last message\n return chat.lastMessage.text;\n }\n\n renderFollowButton() {\n if (this.props.user.privateChat) {\n return (\n <View style={{ justifyContent: 'flex-start' }}>\n <Text style={[styles.chatTimeStamp, this.props.user.unread > 0 && { color: TEXT_DARK, fontFamily: 'sf-bold' }]}>\n {this.getTimeText(this.props.user.Changed)}\n </Text>\n <View style={[{ flexDirection: 'row-reverse', marginTop: 2 }, this.props.user.unread === 0 && { opacity: 0 }]}>\n <View style={styles.counter}>\n <Text style={styles.counterText}>{this.props.user.unread}</Text>\n </View>\n </View>\n </View>\n );\n }\n\n if (!this.props.showFriendsButton) {\n return null;\n }\n\n // self\n if (this.props.myId === this.props.user.id) {\n return null;\n }\n\n // already following\n if (this.props.isFollowing) {\n return (\n <InlineButton\n color={this.props.colourBrandingLight}\n style={styles.friendsButton}\n textStyle={{ color: this.props.colourBrandingMain }}\n disabled\n >\n Friends\n </InlineButton>\n );\n }\n\n // in process of following\n if (this.state.pending) {\n return (\n <InlineButton style={[styles.friendsButton, { borderColor: this.props.colourBrandingMain, borderWidth: 1 }]} disabled noText>\n <Spinner size=\"small\" color={this.props.colourBrandingMain} />\n </InlineButton>\n );\n }\n\n // not following yet\n return (\n <InlineButton\n onPress={this.onFollowUser.bind(this)}\n color=\"#fff\"\n style={[styles.friendsButton, { borderColor: this.props.colourBrandingMain, borderWidth: 1 }]}\n textStyle={{ color: this.props.colourBrandingMain }}\n >\n Add friend\n </InlineButton>\n );\n }\n\n renderStatusText() {\n if (!this.props.statusText) {\n return null;\n }\n return <Text style={styles.statusText}>{this.props.statusText}</Text>;\n }\n\n render() {\n return (\n <View style={this.props.containerStyle}>\n <TouchableOpacity activeOpacity={0.9} onPress={this.onPress.bind(this)} disabled={this.props.onPressDisabled}>\n <View style={[styles.listItem, this.props.listItemStyle]}>\n {this.renderStatusText()}\n <ProfilePic ProfilePic={this.getProfilePic()} Diameter={42} />\n <View style={[styles.fill, styles.flexRowReverse, styles.alignCenter]}>\n {this.props.rightContent}\n {this.renderFollowButton()}\n <View style={styles.fill}>\n <View style={styles.listItemTextContainer}>\n <Text style={styles.contactName} numberOfLines={1}>\n {this.props.user.displayName}\n </Text>\n {this.props.user.privateChat && (\n <Text style={styles.chatLastMessage} numberOfLines={1}>\n {this.getLastMessage(this.props.user)}\n </Text>\n )}\n {this.props.subText}\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n}\n\nconst styles = {\n listItem: {\n paddingVertical: 8,\n paddingHorizontal: 16,\n justifyContent: 'flex-start',\n flexDirection: 'row',\n position: 'relative',\n },\n listItemTextContainer: {\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-around',\n paddingLeft: 16,\n },\n contactName: {\n fontSize: 15,\n fontFamily: 'sf-semibold',\n backgroundColor: 'rgba(255,255,255,0)',\n color: TEXT_DARK,\n },\n statusText: {\n position: 'absolute',\n top: 0,\n left: 82,\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: TEXT_LIGHT,\n },\n fill: {\n flex: 1,\n },\n alignCenter: {\n alignItems: 'center',\n },\n flexRowReverse: {\n flexDirection: 'row-reverse',\n },\n friendsButton: {\n width: 100,\n },\n counter: {\n borderRadius: 10,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n backgroundColor: COLOUR_GREEN,\n },\n counterText: {\n color: '#fff',\n fontSize: 12,\n fontFamily: 'sf-semibold',\n textAlign: 'center',\n },\n chatTimeStamp: {\n fontSize: 10,\n fontFamily: 'sf-semibold',\n color: TEXT_LIGHT,\n },\n chatLastMessage: {\n fontSize: 13,\n fontFamily: 'sf-medium',\n color: TEXT_LIGHT,\n marginRight: 5,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n me: state.user,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { addFollower })(UserListing);\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(
|
|
3
|
-
function _toPrimitive(
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
4
|
import React, { Component } from 'react';
|
|
5
5
|
import { Platform, View, Modal, TouchableOpacity, StyleSheet } from 'react-native';
|
|
6
6
|
import * as ScreenOrientation from 'expo-screen-orientation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Platform","View","Modal","TouchableOpacity","StyleSheet","ScreenOrientation","StatusBarHeight","getCompressed","imageExists","Pl60Icon","SharingTools","MediaPlayer","VideoPopup","constructor","props","_defineProperty","checkCompressed","uri","lockAsync","OS","OrientationLock","DEFAULT","ALL","PORTRAIT_UP","url","compressedUri","then","compressedExists","setState","state","isFullScreen","UNSAFE_componentWillReceiveProps","nextProps","renderClose","createElement","style","styles","menuIconContainer","onPress","onClose","activeOpacity","name","menuIcon","renderPlayer","playerContainer","source","useVideoPlayer","autoPlay","orientationChanged","render","visible","animationType","onRequestClose","container","supportedOrientations","create","backgroundColor","position","top","right","width","height","zIndex","fontSize","padding","textAlign","color","flex","alignItems","justifyContent"],"sources":["VideoPopup.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Platform, View, Modal, TouchableOpacity, StyleSheet } from 'react-native';\nimport * as ScreenOrientation from 'expo-screen-orientation';\nimport { StatusBarHeight, getCompressed, imageExists } from '../helper';\nimport { Pl60Icon } from '../fonts';\nimport { SharingTools } from './SharingTools';\nimport MediaPlayer from './MediaPlayer';\n\nclass VideoPopup extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n uri: '',\n isFullScreen: false,\n };\n }\n\n UNSAFE_componentWillMount = async () => {\n this.checkCompressed(this.props.uri);\n await ScreenOrientation.lockAsync(\n Platform.OS === 'ios' ? ScreenOrientation.OrientationLock.DEFAULT : ScreenOrientation.OrientationLock.ALL,\n );\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (this.props.uri === nextProps.uri) return;\n this.checkCompressed(nextProps.uri);\n }\n\n componentWillUnmount = async () => {\n await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);\n };\n\n checkCompressed = url => {\n const compressedUri = getCompressed(url);\n imageExists(compressedUri).then(compressedExists => {\n this.setState({ uri: compressedExists ? compressedUri : url });\n });\n };\n\n renderClose() {\n return (\n <TouchableOpacity style={styles.menuIconContainer} onPress={this.props.onClose} activeOpacity={0.6}>\n <Pl60Icon name=\"close\" style={styles.menuIcon} />\n </TouchableOpacity>\n );\n }\n\n renderPlayer() {\n const { uri } = this.state;\n if (!uri) return null;\n\n return (\n <View style={styles.playerContainer}>\n <MediaPlayer\n source={uri}\n useVideoPlayer={true}\n autoPlay={true}\n orientationChanged={isFullScreen => this.setState({ isFullScreen })}\n />\n </View>\n );\n }\n\n render() {\n const { isFullScreen } = this.state;\n const { visible, onClose, animationType, style } = this.props;\n\n return (\n <Modal\n visible={visible}\n animationType={animationType || 'fade'}\n onRequestClose={onClose}\n style={[styles.container, style]}\n supportedOrientations={['portrait', 'landscape']}\n >\n {this.renderPlayer()}\n {!isFullScreen && this.renderClose()}\n {!isFullScreen && <SharingTools uri={this.props.uri} />}\n </Modal>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#000',\n },\n menuIconContainer: {\n position: 'absolute',\n top: StatusBarHeight(0),\n right: 0,\n width: 55,\n height: 55,\n zIndex: 3,\n },\n menuIcon: {\n fontSize: 25,\n padding: 15,\n width: 55,\n textAlign: 'center',\n color: '#fff',\n zIndex: 3,\n },\n playerContainer: {\n flex: 1,\n backgroundColor: '#000',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport { VideoPopup };\n"],"mappings":"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"
|
|
1
|
+
{"version":3,"names":["React","Component","Platform","View","Modal","TouchableOpacity","StyleSheet","ScreenOrientation","StatusBarHeight","getCompressed","imageExists","Pl60Icon","SharingTools","MediaPlayer","VideoPopup","constructor","props","_defineProperty","checkCompressed","uri","lockAsync","OS","OrientationLock","DEFAULT","ALL","PORTRAIT_UP","url","compressedUri","then","compressedExists","setState","state","isFullScreen","UNSAFE_componentWillReceiveProps","nextProps","renderClose","createElement","style","styles","menuIconContainer","onPress","onClose","activeOpacity","name","menuIcon","renderPlayer","playerContainer","source","useVideoPlayer","autoPlay","orientationChanged","render","visible","animationType","onRequestClose","container","supportedOrientations","create","backgroundColor","position","top","right","width","height","zIndex","fontSize","padding","textAlign","color","flex","alignItems","justifyContent"],"sources":["VideoPopup.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Platform, View, Modal, TouchableOpacity, StyleSheet } from 'react-native';\nimport * as ScreenOrientation from 'expo-screen-orientation';\nimport { StatusBarHeight, getCompressed, imageExists } from '../helper';\nimport { Pl60Icon } from '../fonts';\nimport { SharingTools } from './SharingTools';\nimport MediaPlayer from './MediaPlayer';\n\nclass VideoPopup extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n uri: '',\n isFullScreen: false,\n };\n }\n\n UNSAFE_componentWillMount = async () => {\n this.checkCompressed(this.props.uri);\n await ScreenOrientation.lockAsync(\n Platform.OS === 'ios' ? ScreenOrientation.OrientationLock.DEFAULT : ScreenOrientation.OrientationLock.ALL,\n );\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (this.props.uri === nextProps.uri) return;\n this.checkCompressed(nextProps.uri);\n }\n\n componentWillUnmount = async () => {\n await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);\n };\n\n checkCompressed = url => {\n const compressedUri = getCompressed(url);\n imageExists(compressedUri).then(compressedExists => {\n this.setState({ uri: compressedExists ? compressedUri : url });\n });\n };\n\n renderClose() {\n return (\n <TouchableOpacity style={styles.menuIconContainer} onPress={this.props.onClose} activeOpacity={0.6}>\n <Pl60Icon name=\"close\" style={styles.menuIcon} />\n </TouchableOpacity>\n );\n }\n\n renderPlayer() {\n const { uri } = this.state;\n if (!uri) return null;\n\n return (\n <View style={styles.playerContainer}>\n <MediaPlayer\n source={uri}\n useVideoPlayer={true}\n autoPlay={true}\n orientationChanged={isFullScreen => this.setState({ isFullScreen })}\n />\n </View>\n );\n }\n\n render() {\n const { isFullScreen } = this.state;\n const { visible, onClose, animationType, style } = this.props;\n\n return (\n <Modal\n visible={visible}\n animationType={animationType || 'fade'}\n onRequestClose={onClose}\n style={[styles.container, style]}\n supportedOrientations={['portrait', 'landscape']}\n >\n {this.renderPlayer()}\n {!isFullScreen && this.renderClose()}\n {!isFullScreen && <SharingTools uri={this.props.uri} />}\n </Modal>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#000',\n },\n menuIconContainer: {\n position: 'absolute',\n top: StatusBarHeight(0),\n right: 0,\n width: 55,\n height: 55,\n zIndex: 3,\n },\n menuIcon: {\n fontSize: 25,\n padding: 15,\n width: 55,\n textAlign: 'center',\n color: '#fff',\n zIndex: 3,\n },\n playerContainer: {\n flex: 1,\n backgroundColor: '#000',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport { VideoPopup };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PureComponent","_","View","Text","Dimensions","connect","Pl60Icon","COLOUR_GREEN","TEXT_DARK","getMainBrandingColourFromState","MiddlePopup","InlineButton","SCREEN_WIDTH","get","width","WarningPopup","render","createElement","visible","props","onClose","style","styles","popup","isSuccess","icon","name","text","confirmText","marginTop","paddingHorizontal","infoText","infoTextStyle","onPress","color","ctaButton","colourBrandingMain","button","textStyle","closeText","large","isUndefined","buttonText","maxWidth","paddingVertical","paddingBottom","fontSize","fontFamily","lineHeight","textAlign","mapStateToProps","state","warningPopup"],"sources":["WarningPopup.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport _ from 'lodash';\nimport { View, Text, Dimensions } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Pl60Icon } from '../fonts';\nimport { COLOUR_GREEN, TEXT_DARK, getMainBrandingColourFromState } from '../colours';\nimport { MiddlePopup } from './MiddlePopup';\nimport { InlineButton } from './InlineButton';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\n\nclass WarningPopup extends PureComponent {\n render() {\n return (\n <MiddlePopup visible={this.props.visible} onClose={this.props.onClose} style={styles.popup}>\n {this.props.isSuccess && <Pl60Icon style={styles.icon} name=\"circleoutlined\" />}\n <Text style={styles.text}>{this.props.confirmText}</Text>\n <View style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <Text style={[styles.infoText, this.props.infoTextStyle]}>{this.props.infoText}</Text>\n </View>\n <InlineButton\n onPress={this.props.onClose}\n color={this.props.ctaButton ? this.props.colourBrandingMain : '#fff'}\n style={styles.button}\n textStyle={[styles.closeText, { color: this.props.ctaButton ? '#fff' : this.props.colourBrandingMain }]}\n large\n >\n {!_.isUndefined(this.props.buttonText) ? this.props.buttonText : 'Close'}\n </InlineButton>\n </MiddlePopup>\n );\n }\n}\n\nconst styles = {\n popup: {\n width: 'auto',\n maxWidth: SCREEN_WIDTH - 34,\n paddingVertical: 16,\n },\n icon: {\n marginTop: 20,\n paddingBottom: 16,\n fontSize: 52,\n color: COLOUR_GREEN,\n },\n text: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n lineHeight: 24,\n color: TEXT_DARK,\n textAlign: 'center',\n marginTop: 8,\n },\n infoText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n lineHeight: 22,\n color: TEXT_DARK,\n textAlign: 'left',\n },\n button: {\n width: 130,\n marginTop: 20,\n },\n closeText: {\n fontFamily: 'sf-medium',\n fontSize: 15,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nconst warningPopup = connect(mapStateToProps, {})(WarningPopup);\nexport { warningPopup as WarningPopup };\n"],"mappings":"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"
|
|
1
|
+
{"version":3,"names":["React","PureComponent","_","View","Text","Dimensions","connect","Pl60Icon","COLOUR_GREEN","TEXT_DARK","getMainBrandingColourFromState","MiddlePopup","InlineButton","SCREEN_WIDTH","get","width","WarningPopup","render","createElement","visible","props","onClose","style","styles","popup","isSuccess","icon","name","text","confirmText","marginTop","paddingHorizontal","infoText","infoTextStyle","onPress","color","ctaButton","colourBrandingMain","button","textStyle","closeText","large","isUndefined","buttonText","maxWidth","paddingVertical","paddingBottom","fontSize","fontFamily","lineHeight","textAlign","mapStateToProps","state","warningPopup"],"sources":["WarningPopup.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport _ from 'lodash';\nimport { View, Text, Dimensions } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Pl60Icon } from '../fonts';\nimport { COLOUR_GREEN, TEXT_DARK, getMainBrandingColourFromState } from '../colours';\nimport { MiddlePopup } from './MiddlePopup';\nimport { InlineButton } from './InlineButton';\n\nconst SCREEN_WIDTH = Dimensions.get('window').width;\n\nclass WarningPopup extends PureComponent {\n render() {\n return (\n <MiddlePopup visible={this.props.visible} onClose={this.props.onClose} style={styles.popup}>\n {this.props.isSuccess && <Pl60Icon style={styles.icon} name=\"circleoutlined\" />}\n <Text style={styles.text}>{this.props.confirmText}</Text>\n <View style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <Text style={[styles.infoText, this.props.infoTextStyle]}>{this.props.infoText}</Text>\n </View>\n <InlineButton\n onPress={this.props.onClose}\n color={this.props.ctaButton ? this.props.colourBrandingMain : '#fff'}\n style={styles.button}\n textStyle={[styles.closeText, { color: this.props.ctaButton ? '#fff' : this.props.colourBrandingMain }]}\n large\n >\n {!_.isUndefined(this.props.buttonText) ? this.props.buttonText : 'Close'}\n </InlineButton>\n </MiddlePopup>\n );\n }\n}\n\nconst styles = {\n popup: {\n width: 'auto',\n maxWidth: SCREEN_WIDTH - 34,\n paddingVertical: 16,\n },\n icon: {\n marginTop: 20,\n paddingBottom: 16,\n fontSize: 52,\n color: COLOUR_GREEN,\n },\n text: {\n fontFamily: 'sf-bold',\n fontSize: 24,\n lineHeight: 24,\n color: TEXT_DARK,\n textAlign: 'center',\n marginTop: 8,\n },\n infoText: {\n fontFamily: 'sf-regular',\n fontSize: 16,\n lineHeight: 22,\n color: TEXT_DARK,\n textAlign: 'left',\n },\n button: {\n width: 130,\n marginTop: 20,\n },\n closeText: {\n fontFamily: 'sf-medium',\n fontSize: 15,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nconst warningPopup = connect(mapStateToProps, {})(WarningPopup);\nexport { warningPopup as WarningPopup };\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(
|
|
3
|
-
function _toPrimitive(
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { StyleSheet, View, FlatList, Dimensions, ActivityIndicator, Platform } from 'react-native';
|
|
6
6
|
import _ from 'lodash';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","FlatList","Dimensions","ActivityIndicator","Platform","_","ScreenOrientation","MediaLibrary","Camera","isVideo","ImageTile","width","get","defaultSelectionLimit","defaultLoadCount","ImageBrowser","Component","constructor","props","_defineProperty","isNil","remoteAlbums","status","camera","requestCameraPermissionsAsync","cameraRoll","requestPermissionsAsync","setState","hasCameraPermission","hasCameraRollPermission","orientationInfo","removeOrientationChangeListeners","addOrientationChangeListener","onOrientationChange","numColumns","getNumColumns","orientation","Orientation","PORTRAIT_UP","PORTRAIT_DOWN","state","selected","find","uri","photo","photos","mediaType","MediaType","video","item","videoSelected","isVideoSelected","newSelected","length","selectionLimit","max","indexOf","isFull","checkSelection","push","deleteIndex","splice","onChange","prepareCallback","reset","allowVideo","loadCount","album","isLocal","params","first","undefined","sortBy","OS","after","hasNextPage","getAssetsAsync","then","processPhotos","_selectedAlbum$images","selectedAlbum","id","images","ordered","orderBy","map","image","isEmpty","data","totalCount","endCursor","uris","assets","index","itemWidth","offset","selectedIndex","createElement","selectedItemNumber","selectImage","renderSelectedComponent","style","itemStyle","height","itemHeight","isRemote","preloaderComponent","size","emptyStateComponent","componentDidMount","getPermissionsAsync","getOrientationAsync","getPhotos","componentDidUpdate","prevProps","isEqual","selectedPhotos","p","assetsInfo","Promise","all","getAssetInfoAsync","callback","renderImages","key","renderItem","renderImageTile","keyExtractor","onEndReached","onEndReachedThreshold","ListEmptyComponent","renderEmptyState","renderPreloader","initialNumToRender","getItemLayout","render","noCameraPermissionComponent","styles","container","create","flex"],"sources":["ImageBrowser.js"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View, FlatList, Dimensions, ActivityIndicator, Platform } from 'react-native';\nimport _ from 'lodash';\nimport * as ScreenOrientation from 'expo-screen-orientation';\nimport * as MediaLibrary from 'expo-media-library';\nimport { Camera } from 'expo-camera';\nimport { isVideo } from '../../helper';\nimport ImageTile from './ImageTile';\n\nconst { width } = Dimensions.get('window');\nconst defaultSelectionLimit = 10;\nconst defaultLoadCount = 50;\n\nexport default class ImageBrowser extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n hasCameraPermission: null,\n hasCameraRollPermission: null,\n numColumns: null,\n photos: [],\n selected: [],\n isEmpty: false,\n after: null,\n hasNextPage: true,\n };\n }\n\n async componentDidMount() {\n if (this.isLocal()) await this.getPermissionsAsync();\n\n ScreenOrientation.addOrientationChangeListener(this.onOrientationChange);\n const orientation = await ScreenOrientation.getOrientationAsync();\n const numColumns = this.getNumColumns(orientation);\n this.setState({ numColumns }, () => {\n this.getPhotos();\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.album !== this.props.album) this.getPhotos(true);\n if (!_.isEqual(prevProps.selected, this.props.selected)) {\n this.setState({ selected: this.props.selected });\n }\n }\n\n isLocal = () => {\n return _.isNil(this.props.remoteAlbums);\n };\n\n getPermissionsAsync = async () => {\n const { status: camera } = await Camera.requestCameraPermissionsAsync();\n const { status: cameraRoll } = await MediaLibrary.requestPermissionsAsync();\n this.setState({\n hasCameraPermission: camera === 'granted',\n hasCameraRollPermission: cameraRoll === 'granted',\n });\n };\n\n onOrientationChange = ({ orientationInfo }) => {\n ScreenOrientation.removeOrientationChangeListeners();\n ScreenOrientation.addOrientationChangeListener(this.onOrientationChange);\n const numColumns = this.getNumColumns(orientationInfo.orientation);\n this.setState({ numColumns });\n };\n\n getNumColumns = orientation =>\n orientation === ScreenOrientation.Orientation.PORTRAIT_UP || orientation === ScreenOrientation.Orientation.PORTRAIT_DOWN ? 4 : 7;\n\n isVideoSelected = () => {\n return this.state.selected.find(uri => {\n const photo = this.state.photos.find(photo => photo.uri === uri);\n return photo && photo.mediaType === MediaLibrary.MediaType.video;\n });\n };\n\n checkSelection = item => {\n let videoSelected = this.isVideoSelected();\n let newSelected = [...this.state.selected];\n\n // Check video/photo selection\n if (item.mediaType === MediaLibrary.MediaType.video) {\n if (videoSelected && videoSelected !== item.uri) {\n // If different video is already selected, reset\n videoSelected = null;\n newSelected = [];\n } else if (!videoSelected && newSelected.length > 0) {\n // If photos selected, don't allow selecting video\n videoSelected = null;\n newSelected = [];\n }\n // Toggle video selected\n videoSelected = videoSelected !== item.uri ? item.uri : null;\n } else if (videoSelected) {\n // If video selected, reset\n videoSelected = null;\n newSelected = [];\n }\n\n // Check multiple selection\n const selectionLimit = this.props.max || defaultSelectionLimit;\n if (selectionLimit && selectionLimit > 1) {\n // Limit selection\n if (newSelected.length === selectionLimit && newSelected.indexOf(item.uri) === -1) return { isFull: true };\n } else {\n // Force single selection\n if (newSelected.length > 0 && newSelected[0] !== item.uri) newSelected = [];\n }\n\n return { newSelected, videoSelected };\n };\n\n selectImage = item => {\n const { newSelected, videoSelected, isFull } = this.checkSelection(item);\n if (isFull) return;\n\n if (newSelected.indexOf(item.uri) === -1) {\n newSelected.push(item.uri);\n } else {\n const deleteIndex = newSelected.indexOf(item.uri);\n newSelected.splice(deleteIndex, 1);\n }\n if (newSelected.length > this.props.max) return;\n if (!newSelected) newSelected = [];\n this.setState({ selected: newSelected });\n this.props.onChange(newSelected, videoSelected, () => this.prepareCallback());\n };\n\n getPhotos = (reset = false) => {\n const { remoteAlbums, allowVideo, loadCount, album } = this.props;\n\n if (this.isLocal()) {\n // Retrieve local photos\n const mediaType = [MediaLibrary.MediaType.photo];\n if (allowVideo) mediaType.push(MediaLibrary.MediaType.video);\n\n const params = {\n first: loadCount || defaultLoadCount,\n mediaType,\n album: album || undefined,\n sortBy: [Platform.OS === 'android' ? 'modificationTime' : 'creationTime'],\n };\n if (reset) {\n this.setState({ photos: [], after: null, hasNextPage: true });\n } else {\n if (this.state.after) params.after = this.state.after;\n if (!this.state.hasNextPage) return;\n }\n MediaLibrary.getAssetsAsync(params).then(this.processPhotos);\n } else {\n // Use remote albums\n const selectedAlbum = remoteAlbums.find(item => item.id === album);\n if (selectedAlbum && selectedAlbum.images?.length > 0) {\n const ordered = _.orderBy(selectedAlbum.images, 'date', 'desc');\n this.setState({\n photos: ordered.map(image => {\n return {\n uri: image.uri,\n mediaType: isVideo(image.uri) ? MediaLibrary.MediaType.video : MediaLibrary.MediaType.photo,\n };\n }),\n isEmpty: false,\n });\n } else {\n this.setState({ photos: [], isEmpty: true });\n }\n }\n };\n\n processPhotos = data => {\n if (data.totalCount) {\n if (this.state.after === data.endCursor) return;\n const uris = data.assets;\n this.setState({\n photos: [...this.state.photos, ...uris],\n after: data.endCursor,\n hasNextPage: data.hasNextPage,\n });\n } else {\n this.setState({ isEmpty: true });\n }\n };\n\n getItemLayout = (data, index) => {\n const length = this.props.itemWidth || width / 4;\n return { length, offset: length * index, index };\n };\n\n prepareCallback() {\n const { selected, photos } = this.state;\n const selectedPhotos = selected.map(uri => photos.find(p => p.uri === uri));\n if (this.isLocal()) {\n const assetsInfo = Promise.all(selectedPhotos.map(p => MediaLibrary.getAssetInfoAsync(p)));\n this.props.callback(assetsInfo);\n } else {\n // No need to retrieve local assets\n this.props.callback(selectedPhotos);\n }\n }\n\n renderImageTile = ({ item, index }) => {\n if (!item) return null;\n\n const selectedIndex = this.state.selected.indexOf(item.uri);\n const selected = selectedIndex !== -1;\n\n return (\n <ImageTile\n selectedItemNumber={selectedIndex + 1}\n item={item}\n index={index}\n selected={selected}\n selectImage={this.selectImage}\n renderSelectedComponent={this.props.renderSelectedComponent}\n style={this.props.itemStyle}\n width={this.props.itemWidth}\n height={this.props.itemHeight}\n isRemote={!this.isLocal()}\n />\n );\n };\n\n renderPreloader = () => this.props.preloaderComponent || <ActivityIndicator size=\"large\" />;\n\n renderEmptyState = () => this.props.emptyStateComponent || null;\n\n renderImages() {\n if (_.isEmpty(this.state.photos) && !this.state.isEmpty) {\n return null;\n }\n return (\n <FlatList\n data={this.state.photos}\n numColumns={this.state.numColumns}\n key={this.state.numColumns}\n renderItem={this.renderImageTile}\n keyExtractor={(_, index) => index}\n onEndReached={() => {\n if (this.isLocal()) this.getPhotos();\n }}\n onEndReachedThreshold={0.5}\n ListEmptyComponent={this.state.isEmpty ? this.renderEmptyState() : this.renderPreloader()}\n initialNumToRender={24}\n getItemLayout={this.getItemLayout}\n />\n );\n }\n\n render() {\n const { hasCameraPermission } = this.state;\n\n if (this.isLocal() && !hasCameraPermission) {\n return this.props.noCameraPermissionComponent || null;\n }\n\n return <View style={[styles.container, this.props.style]}>{this.renderImages()}</View>;\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","FlatList","Dimensions","ActivityIndicator","Platform","_","ScreenOrientation","MediaLibrary","Camera","isVideo","ImageTile","width","get","defaultSelectionLimit","defaultLoadCount","ImageBrowser","Component","constructor","props","_defineProperty","isNil","remoteAlbums","status","camera","requestCameraPermissionsAsync","cameraRoll","requestPermissionsAsync","setState","hasCameraPermission","hasCameraRollPermission","orientationInfo","removeOrientationChangeListeners","addOrientationChangeListener","onOrientationChange","numColumns","getNumColumns","orientation","Orientation","PORTRAIT_UP","PORTRAIT_DOWN","state","selected","find","uri","photo","photos","mediaType","MediaType","video","item","videoSelected","isVideoSelected","newSelected","length","selectionLimit","max","indexOf","isFull","checkSelection","push","deleteIndex","splice","onChange","prepareCallback","reset","allowVideo","loadCount","album","isLocal","params","first","undefined","sortBy","OS","after","hasNextPage","getAssetsAsync","then","processPhotos","_selectedAlbum$images","selectedAlbum","id","images","ordered","orderBy","map","image","isEmpty","data","totalCount","endCursor","uris","assets","index","itemWidth","offset","selectedIndex","createElement","selectedItemNumber","selectImage","renderSelectedComponent","style","itemStyle","height","itemHeight","isRemote","preloaderComponent","size","emptyStateComponent","componentDidMount","getPermissionsAsync","getOrientationAsync","getPhotos","componentDidUpdate","prevProps","isEqual","selectedPhotos","p","assetsInfo","Promise","all","getAssetInfoAsync","callback","renderImages","key","renderItem","renderImageTile","keyExtractor","onEndReached","onEndReachedThreshold","ListEmptyComponent","renderEmptyState","renderPreloader","initialNumToRender","getItemLayout","render","noCameraPermissionComponent","styles","container","create","flex"],"sources":["ImageBrowser.js"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View, FlatList, Dimensions, ActivityIndicator, Platform } from 'react-native';\nimport _ from 'lodash';\nimport * as ScreenOrientation from 'expo-screen-orientation';\nimport * as MediaLibrary from 'expo-media-library';\nimport { Camera } from 'expo-camera';\nimport { isVideo } from '../../helper';\nimport ImageTile from './ImageTile';\n\nconst { width } = Dimensions.get('window');\nconst defaultSelectionLimit = 10;\nconst defaultLoadCount = 50;\n\nexport default class ImageBrowser extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n hasCameraPermission: null,\n hasCameraRollPermission: null,\n numColumns: null,\n photos: [],\n selected: [],\n isEmpty: false,\n after: null,\n hasNextPage: true,\n };\n }\n\n async componentDidMount() {\n if (this.isLocal()) await this.getPermissionsAsync();\n\n ScreenOrientation.addOrientationChangeListener(this.onOrientationChange);\n const orientation = await ScreenOrientation.getOrientationAsync();\n const numColumns = this.getNumColumns(orientation);\n this.setState({ numColumns }, () => {\n this.getPhotos();\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.album !== this.props.album) this.getPhotos(true);\n if (!_.isEqual(prevProps.selected, this.props.selected)) {\n this.setState({ selected: this.props.selected });\n }\n }\n\n isLocal = () => {\n return _.isNil(this.props.remoteAlbums);\n };\n\n getPermissionsAsync = async () => {\n const { status: camera } = await Camera.requestCameraPermissionsAsync();\n const { status: cameraRoll } = await MediaLibrary.requestPermissionsAsync();\n this.setState({\n hasCameraPermission: camera === 'granted',\n hasCameraRollPermission: cameraRoll === 'granted',\n });\n };\n\n onOrientationChange = ({ orientationInfo }) => {\n ScreenOrientation.removeOrientationChangeListeners();\n ScreenOrientation.addOrientationChangeListener(this.onOrientationChange);\n const numColumns = this.getNumColumns(orientationInfo.orientation);\n this.setState({ numColumns });\n };\n\n getNumColumns = orientation =>\n orientation === ScreenOrientation.Orientation.PORTRAIT_UP || orientation === ScreenOrientation.Orientation.PORTRAIT_DOWN ? 4 : 7;\n\n isVideoSelected = () => {\n return this.state.selected.find(uri => {\n const photo = this.state.photos.find(photo => photo.uri === uri);\n return photo && photo.mediaType === MediaLibrary.MediaType.video;\n });\n };\n\n checkSelection = item => {\n let videoSelected = this.isVideoSelected();\n let newSelected = [...this.state.selected];\n\n // Check video/photo selection\n if (item.mediaType === MediaLibrary.MediaType.video) {\n if (videoSelected && videoSelected !== item.uri) {\n // If different video is already selected, reset\n videoSelected = null;\n newSelected = [];\n } else if (!videoSelected && newSelected.length > 0) {\n // If photos selected, don't allow selecting video\n videoSelected = null;\n newSelected = [];\n }\n // Toggle video selected\n videoSelected = videoSelected !== item.uri ? item.uri : null;\n } else if (videoSelected) {\n // If video selected, reset\n videoSelected = null;\n newSelected = [];\n }\n\n // Check multiple selection\n const selectionLimit = this.props.max || defaultSelectionLimit;\n if (selectionLimit && selectionLimit > 1) {\n // Limit selection\n if (newSelected.length === selectionLimit && newSelected.indexOf(item.uri) === -1) return { isFull: true };\n } else {\n // Force single selection\n if (newSelected.length > 0 && newSelected[0] !== item.uri) newSelected = [];\n }\n\n return { newSelected, videoSelected };\n };\n\n selectImage = item => {\n const { newSelected, videoSelected, isFull } = this.checkSelection(item);\n if (isFull) return;\n\n if (newSelected.indexOf(item.uri) === -1) {\n newSelected.push(item.uri);\n } else {\n const deleteIndex = newSelected.indexOf(item.uri);\n newSelected.splice(deleteIndex, 1);\n }\n if (newSelected.length > this.props.max) return;\n if (!newSelected) newSelected = [];\n this.setState({ selected: newSelected });\n this.props.onChange(newSelected, videoSelected, () => this.prepareCallback());\n };\n\n getPhotos = (reset = false) => {\n const { remoteAlbums, allowVideo, loadCount, album } = this.props;\n\n if (this.isLocal()) {\n // Retrieve local photos\n const mediaType = [MediaLibrary.MediaType.photo];\n if (allowVideo) mediaType.push(MediaLibrary.MediaType.video);\n\n const params = {\n first: loadCount || defaultLoadCount,\n mediaType,\n album: album || undefined,\n sortBy: [Platform.OS === 'android' ? 'modificationTime' : 'creationTime'],\n };\n if (reset) {\n this.setState({ photos: [], after: null, hasNextPage: true });\n } else {\n if (this.state.after) params.after = this.state.after;\n if (!this.state.hasNextPage) return;\n }\n MediaLibrary.getAssetsAsync(params).then(this.processPhotos);\n } else {\n // Use remote albums\n const selectedAlbum = remoteAlbums.find(item => item.id === album);\n if (selectedAlbum && selectedAlbum.images?.length > 0) {\n const ordered = _.orderBy(selectedAlbum.images, 'date', 'desc');\n this.setState({\n photos: ordered.map(image => {\n return {\n uri: image.uri,\n mediaType: isVideo(image.uri) ? MediaLibrary.MediaType.video : MediaLibrary.MediaType.photo,\n };\n }),\n isEmpty: false,\n });\n } else {\n this.setState({ photos: [], isEmpty: true });\n }\n }\n };\n\n processPhotos = data => {\n if (data.totalCount) {\n if (this.state.after === data.endCursor) return;\n const uris = data.assets;\n this.setState({\n photos: [...this.state.photos, ...uris],\n after: data.endCursor,\n hasNextPage: data.hasNextPage,\n });\n } else {\n this.setState({ isEmpty: true });\n }\n };\n\n getItemLayout = (data, index) => {\n const length = this.props.itemWidth || width / 4;\n return { length, offset: length * index, index };\n };\n\n prepareCallback() {\n const { selected, photos } = this.state;\n const selectedPhotos = selected.map(uri => photos.find(p => p.uri === uri));\n if (this.isLocal()) {\n const assetsInfo = Promise.all(selectedPhotos.map(p => MediaLibrary.getAssetInfoAsync(p)));\n this.props.callback(assetsInfo);\n } else {\n // No need to retrieve local assets\n this.props.callback(selectedPhotos);\n }\n }\n\n renderImageTile = ({ item, index }) => {\n if (!item) return null;\n\n const selectedIndex = this.state.selected.indexOf(item.uri);\n const selected = selectedIndex !== -1;\n\n return (\n <ImageTile\n selectedItemNumber={selectedIndex + 1}\n item={item}\n index={index}\n selected={selected}\n selectImage={this.selectImage}\n renderSelectedComponent={this.props.renderSelectedComponent}\n style={this.props.itemStyle}\n width={this.props.itemWidth}\n height={this.props.itemHeight}\n isRemote={!this.isLocal()}\n />\n );\n };\n\n renderPreloader = () => this.props.preloaderComponent || <ActivityIndicator size=\"large\" />;\n\n renderEmptyState = () => this.props.emptyStateComponent || null;\n\n renderImages() {\n if (_.isEmpty(this.state.photos) && !this.state.isEmpty) {\n return null;\n }\n return (\n <FlatList\n data={this.state.photos}\n numColumns={this.state.numColumns}\n key={this.state.numColumns}\n renderItem={this.renderImageTile}\n keyExtractor={(_, index) => index}\n onEndReached={() => {\n if (this.isLocal()) this.getPhotos();\n }}\n onEndReachedThreshold={0.5}\n ListEmptyComponent={this.state.isEmpty ? this.renderEmptyState() : this.renderPreloader()}\n initialNumToRender={24}\n getItemLayout={this.getItemLayout}\n />\n );\n }\n\n render() {\n const { hasCameraPermission } = this.state;\n\n if (this.isLocal() && !hasCameraPermission) {\n return this.props.noCameraPermissionComponent || null;\n }\n\n return <View style={[styles.container, this.props.style]}>{this.renderImages()}</View>;\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Dimensions","ImageBackground","TouchableHighlight","View","Text","StyleSheet","MediaLibrary","Icon","moment","getThumb300","screenWidth","get","width","ImageTile","PureComponent","renderVideoOverlay","item","props","mediaType","MediaType","video","durationText","duration","asMilliseconds","utc","format","createElement","style","styles","defaultVideoOverlay","name","type","iconStyle","videoIcon","videoIconContainer","videoDurationText","renderSelectedOverlay","selected","selectedItemNumber","renderSelectedComponent","defaultSelectedOverlay","opacity","render","index","selectImage","height","isRemote","actualWidth","actualHeight","uri","underlayColor","onPress","imageContainer","imageBackground","source","create","flex","alignItems","justifyContent","backgroundColor","position","left","bottom","right","flexDirection","paddingRight","paddingBottom","fontSize","color","textAlign","fontFamily"],"sources":["ImageTile.js"],"sourcesContent":["import React from 'react';\nimport { Dimensions, ImageBackground, TouchableHighlight, View, Text, StyleSheet } from 'react-native';\nimport * as MediaLibrary from 'expo-media-library';\nimport { Icon } from 'react-native-elements';\nimport moment from 'moment';\nimport { getThumb300 } from '../../helper';\n\nconst screenWidth = Dimensions.get('window').width;\n\nclass ImageTile extends React.PureComponent {\n renderVideoOverlay() {\n const { item } = this.props;\n if (item.mediaType !== MediaLibrary.MediaType.video) return null;\n\n let durationText = '';\n if (item.duration) {\n const duration = moment.duration(item.duration, 'seconds').asMilliseconds();\n durationText = moment.utc(duration).format('HH:mm:ss');\n }\n return (\n <View style={styles.defaultVideoOverlay}>\n <Icon name=\"video-camera\" type=\"font-awesome\" iconStyle={styles.videoIcon} style={styles.videoIconContainer} />\n <Text style={styles.videoDurationText}>{durationText}</Text>\n </View>\n );\n }\n\n renderSelectedOverlay() {\n const { selected, selectedItemNumber, renderSelectedComponent } = this.props;\n if (!selected) return null;\n if (renderSelectedComponent) return renderSelectedComponent(selectedItemNumber);\n return <View style={[styles.defaultSelectedOverlay, { opacity: selected ? 0.5 : 1 }]} />;\n }\n\n render() {\n const { item, index, selectImage, width, height, style, isRemote } = this.props;\n if (!item) return null;\n\n const actualWidth = width || screenWidth / 4;\n const actualHeight = height || screenWidth / 4;\n const uri = isRemote ? getThumb300(item.uri) : item.uri;\n\n return (\n <TouchableHighlight underlayColor=\"transparent\" onPress={() => selectImage(item, index)}>\n <View style={[{ width: actualWidth, height: actualHeight }, style]}>\n <View style={styles.imageContainer}>\n <ImageBackground style={styles.imageBackground} source={{ uri }}>\n {this.renderVideoOverlay()}\n {this.renderSelectedOverlay()}\n </ImageBackground>\n </View>\n </View>\n </TouchableHighlight>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n imageContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageBackground: {\n width: '100%',\n height: '100%',\n },\n defaultSelectedOverlay: {\n flex: 1,\n backgroundColor: '#000',\n },\n defaultVideoOverlay: {\n position: 'absolute',\n left: 3,\n bottom: 3,\n right: 3,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n videoIconContainer: {\n flex: 1,\n paddingRight: 8,\n paddingBottom: 1,\n },\n videoIcon: {\n fontSize: 12,\n color: '#fff',\n textAlign: 'right',\n },\n videoDurationText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: '#fff',\n },\n});\n\nexport default ImageTile;\n"],"mappings":"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"
|
|
1
|
+
{"version":3,"names":["React","Dimensions","ImageBackground","TouchableHighlight","View","Text","StyleSheet","MediaLibrary","Icon","moment","getThumb300","screenWidth","get","width","ImageTile","PureComponent","renderVideoOverlay","item","props","mediaType","MediaType","video","durationText","duration","asMilliseconds","utc","format","createElement","style","styles","defaultVideoOverlay","name","type","iconStyle","videoIcon","videoIconContainer","videoDurationText","renderSelectedOverlay","selected","selectedItemNumber","renderSelectedComponent","defaultSelectedOverlay","opacity","render","index","selectImage","height","isRemote","actualWidth","actualHeight","uri","underlayColor","onPress","imageContainer","imageBackground","source","create","flex","alignItems","justifyContent","backgroundColor","position","left","bottom","right","flexDirection","paddingRight","paddingBottom","fontSize","color","textAlign","fontFamily"],"sources":["ImageTile.js"],"sourcesContent":["import React from 'react';\nimport { Dimensions, ImageBackground, TouchableHighlight, View, Text, StyleSheet } from 'react-native';\nimport * as MediaLibrary from 'expo-media-library';\nimport { Icon } from 'react-native-elements';\nimport moment from 'moment';\nimport { getThumb300 } from '../../helper';\n\nconst screenWidth = Dimensions.get('window').width;\n\nclass ImageTile extends React.PureComponent {\n renderVideoOverlay() {\n const { item } = this.props;\n if (item.mediaType !== MediaLibrary.MediaType.video) return null;\n\n let durationText = '';\n if (item.duration) {\n const duration = moment.duration(item.duration, 'seconds').asMilliseconds();\n durationText = moment.utc(duration).format('HH:mm:ss');\n }\n return (\n <View style={styles.defaultVideoOverlay}>\n <Icon name=\"video-camera\" type=\"font-awesome\" iconStyle={styles.videoIcon} style={styles.videoIconContainer} />\n <Text style={styles.videoDurationText}>{durationText}</Text>\n </View>\n );\n }\n\n renderSelectedOverlay() {\n const { selected, selectedItemNumber, renderSelectedComponent } = this.props;\n if (!selected) return null;\n if (renderSelectedComponent) return renderSelectedComponent(selectedItemNumber);\n return <View style={[styles.defaultSelectedOverlay, { opacity: selected ? 0.5 : 1 }]} />;\n }\n\n render() {\n const { item, index, selectImage, width, height, style, isRemote } = this.props;\n if (!item) return null;\n\n const actualWidth = width || screenWidth / 4;\n const actualHeight = height || screenWidth / 4;\n const uri = isRemote ? getThumb300(item.uri) : item.uri;\n\n return (\n <TouchableHighlight underlayColor=\"transparent\" onPress={() => selectImage(item, index)}>\n <View style={[{ width: actualWidth, height: actualHeight }, style]}>\n <View style={styles.imageContainer}>\n <ImageBackground style={styles.imageBackground} source={{ uri }}>\n {this.renderVideoOverlay()}\n {this.renderSelectedOverlay()}\n </ImageBackground>\n </View>\n </View>\n </TouchableHighlight>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n imageContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageBackground: {\n width: '100%',\n height: '100%',\n },\n defaultSelectedOverlay: {\n flex: 1,\n backgroundColor: '#000',\n },\n defaultVideoOverlay: {\n position: 'absolute',\n left: 3,\n bottom: 3,\n right: 3,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n videoIconContainer: {\n flex: 1,\n paddingRight: 8,\n paddingBottom: 1,\n },\n videoIcon: {\n fontSize: 12,\n color: '#fff',\n textAlign: 'right',\n },\n videoDurationText: {\n fontFamily: 'sf-semibold',\n fontSize: 12,\n color: '#fff',\n },\n});\n\nexport default ImageTile;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","EmptyStateWidget","EmptyStateMain","LoadingStateWidget","Header","LoadingIndicator","ImageUploader","ImageUploadProgress","UserListing","PlussChat","PositionedImage","FormattedText","MediaPlayer","AudienceSelectorPage"],"sources":["index.js"],"sourcesContent":["export * from './InlineButton';\nexport * from './AddToCalendarButton';\nexport * from './FormCard';\nexport * from './FormCardSection';\nexport * from './FormCardSectionOptionLauncher';\nexport * from './ProfilePic';\nexport * from './Spinner';\nexport * from './LoadingCircles';\nexport * from './Popup';\nexport * from './ImagePopup';\nexport * from './VideoPopup';\nexport * from './SharingTools';\nexport * from './MiddlePopup';\nexport * from './ConfirmPopup';\nexport * from './ConfirmationPopup';\nexport * from './CommentSection';\nexport * from './CommentReply';\nexport * from './PopupMenu';\nexport * from './AddButton';\nexport * from './Attachment';\nexport * from './GenericInputSection';\nexport * from './GenericInput';\nexport * from './RadioButton';\nexport * from './PDFPopup';\nexport * from './TextStyle';\nexport * from './Toggle';\nexport * from './Input';\nexport * from './StickyFooter';\nexport * from './CategoryTabs';\nexport * from './DropDownMenu';\nexport * from './DropDownItem';\nexport * from './BackButton';\nexport * from './Reaction';\nexport * from './TouchableSearchBar';\nexport * from './WarningPopup';\nexport * from './FontScalePopup';\nexport * from './FontScaleButton';\nexport * from './UserListPopup';\nexport * from './Reactions';\nexport * from './AudienceSelectorLauncher';\nexport { default as EmptyStateWidget } from './EmptyStateWidget';\nexport { default as EmptyStateMain } from './EmptyStateMain';\nexport { default as LoadingStateWidget } from './LoadingStateWidget';\nexport { default as Header } from './Header';\nexport { default as LoadingIndicator } from './LoadingIndicator';\nexport { default as ImageUploader } from './ImageUploader';\nexport { default as ImageUploadProgress } from './ImageUploadProgress';\nexport { default as UserListing } from './UserListing';\nexport { default as PlussChat } from './PlussChat';\nexport { default as PositionedImage } from './PositionedImage';\nexport * from './AutoOffsetImage';\nexport { default as FormattedText } from './FormattedText';\nexport { default as MediaPlayer } from './MediaPlayer';\nexport { default as AudienceSelectorPage } from './AudienceSelectorPage';\n"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,YAAY;AAC1B,cAAc,mBAAmB;AACjC,cAAc,iCAAiC;AAC/C,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,kBAAkB;AAChC,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,gBAAgB;AAC9B,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,sBAAsB;AACpC,cAAc,gBAAgB;AAC9B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,iBAAiB;AAC/B,cAAc,aAAa;AAC3B,cAAc,4BAA4B;AAC1C,SAASA,OAAO,IAAIC,gBAAgB,QAAQ,oBAAoB;AAChE,SAASD,OAAO,IAAIE,cAAc,QAAQ,kBAAkB;AAC5D,SAASF,OAAO,IAAIG,kBAAkB,QAAQ,sBAAsB;AACpE,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,gBAAgB,QAAQ,oBAAoB;AAChE,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,mBAAmB,QAAQ,uBAAuB;AACtE,SAASP,OAAO,IAAIQ,WAAW,QAAQ,eAAe;AACtD,SAASR,OAAO,IAAIS,SAAS,QAAQ,aAAa;AAClD,SAAST,OAAO,IAAIU,eAAe,QAAQ,mBAAmB;AAC9D,cAAc,mBAAmB;AACjC,SAASV,OAAO,IAAIW,aAAa,QAAQ,iBAAiB;AAC1D,SAASX,OAAO,IAAIY,WAAW,QAAQ,eAAe;AACtD,SAASZ,OAAO,IAAIa,oBAAoB,QAAQ,wBAAwB"
|
|
1
|
+
{"version":3,"names":["default","EmptyStateWidget","EmptyStateMain","LoadingStateWidget","Header","LoadingIndicator","ImageUploader","ImageUploadProgress","UserListing","PlussChat","PositionedImage","FormattedText","MediaPlayer","AudienceSelectorPage"],"sources":["index.js"],"sourcesContent":["export * from './InlineButton';\nexport * from './AddToCalendarButton';\nexport * from './Forbidden';\nexport * from './FormCard';\nexport * from './FormCardSection';\nexport * from './FormCardSectionOptionLauncher';\nexport * from './ProfilePic';\nexport * from './Spinner';\nexport * from './LoadingCircles';\nexport * from './Popup';\nexport * from './ImagePopup';\nexport * from './VideoPopup';\nexport * from './SharingTools';\nexport * from './MiddlePopup';\nexport * from './ConfirmPopup';\nexport * from './ConfirmationPopup';\nexport * from './CommentSection';\nexport * from './CommentReply';\nexport * from './PopupMenu';\nexport * from './AddButton';\nexport * from './Attachment';\nexport * from './GenericInputSection';\nexport * from './GenericInput';\nexport * from './RadioButton';\nexport * from './PDFPopup';\nexport * from './TextStyle';\nexport * from './Toggle';\nexport * from './Input';\nexport * from './StickyFooter';\nexport * from './CategoryTabs';\nexport * from './DropDownMenu';\nexport * from './DropDownItem';\nexport * from './BackButton';\nexport * from './Reaction';\nexport * from './TouchableSearchBar';\nexport * from './WarningPopup';\nexport * from './FontScalePopup';\nexport * from './FontScaleButton';\nexport * from './UserListPopup';\nexport * from './Reactions';\nexport * from './AudienceSelectorLauncher';\nexport { default as EmptyStateWidget } from './EmptyStateWidget';\nexport { default as EmptyStateMain } from './EmptyStateMain';\nexport { default as LoadingStateWidget } from './LoadingStateWidget';\nexport { default as Header } from './Header';\nexport { default as LoadingIndicator } from './LoadingIndicator';\nexport { default as ImageUploader } from './ImageUploader';\nexport { default as ImageUploadProgress } from './ImageUploadProgress';\nexport { default as UserListing } from './UserListing';\nexport { default as PlussChat } from './PlussChat';\nexport { default as PositionedImage } from './PositionedImage';\nexport * from './AutoOffsetImage';\nexport { default as FormattedText } from './FormattedText';\nexport { default as MediaPlayer } from './MediaPlayer';\nexport { default as AudienceSelectorPage } from './AudienceSelectorPage';\n"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,aAAa;AAC3B,cAAc,YAAY;AAC1B,cAAc,mBAAmB;AACjC,cAAc,iCAAiC;AAC/C,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,kBAAkB;AAChC,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,gBAAgB;AAC9B,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,sBAAsB;AACpC,cAAc,gBAAgB;AAC9B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,iBAAiB;AAC/B,cAAc,aAAa;AAC3B,cAAc,4BAA4B;AAC1C,SAASA,OAAO,IAAIC,gBAAgB,QAAQ,oBAAoB;AAChE,SAASD,OAAO,IAAIE,cAAc,QAAQ,kBAAkB;AAC5D,SAASF,OAAO,IAAIG,kBAAkB,QAAQ,sBAAsB;AACpE,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,gBAAgB,QAAQ,oBAAoB;AAChE,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,mBAAmB,QAAQ,uBAAuB;AACtE,SAASP,OAAO,IAAIQ,WAAW,QAAQ,eAAe;AACtD,SAASR,OAAO,IAAIS,SAAS,QAAQ,aAAa;AAClD,SAAST,OAAO,IAAIU,eAAe,QAAQ,mBAAmB;AAC9D,cAAc,mBAAmB;AACjC,SAASV,OAAO,IAAIW,aAAa,QAAQ,iBAAiB;AAC1D,SAASX,OAAO,IAAIY,WAAW,QAAQ,eAAe;AACtD,SAASZ,OAAO,IAAIa,oBAAoB,QAAQ,wBAAwB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(
|
|
3
|
-
function _toPrimitive(
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
4
|
import React, { Component } from 'react';
|
|
5
5
|
import { Dimensions, Image, ScrollView, Modal, View, Text, SafeAreaView, TouchableOpacity, StyleSheet, Platform, LogBox } from 'react-native';
|
|
6
6
|
import * as ImageManipulator from 'expo-image-manipulator';
|
|
@@ -319,6 +319,7 @@ class ExpoImageManipulator extends Component {
|
|
|
319
319
|
// }
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
+
|
|
322
323
|
const styles = StyleSheet.create({
|
|
323
324
|
headerContainer: {
|
|
324
325
|
flexDirection: 'row',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","Dimensions","Image","ScrollView","Modal","View","Text","SafeAreaView","TouchableOpacity","StyleSheet","Platform","LogBox","ImageManipulator","PropTypes","AutoHeightImage","isIphoneX","getStatusBarHeight","ImageCropOverlay","width","get","topMargin","OS","ignoreLogs","ExpoImageManipulator","constructor","props","_defineProperty","onToggleModal","setState","cropMode","callback","processing","uri","state","getSize","actualWidth","actualHeight","cropObj","getCropBounds","height","uriToCrop","uriCroped","base64","croppedWidth","croppedHeight","crop","actualSize","event","scrollOffset","nativeEvent","contentOffset","y","imageRatio","originalHeight","renderedImageWidth","renderedImageHeight","renderedImageY","renderedImageX","renderImageObj","left","top","cropOverlayObj","currentPos","currentSize","intersectAreaObj","x","Math","max","num1","min","num2","originX","originY","saveOptions","manipResult","manipulateAsync","w1","layout","h1","squareAspect","maxSizes","componentDidMount","onConvertImageToEditableSize","photo","rawUri","resize","UNSAFE_componentWillReceiveProps","render","isVisible","onPictureChoosed","cropRatio","cropWidth","cropHeight","cropInitialTop","cropInitialLeft","createElement","animationType","transparent","visible","hardwareAccelerated","onRequestClose","undefined","style","styles","container","headerContainer","headerButtonContainer","justifyContent","onPress","headerButton","headerButtonText","onCropImage","contentContainer","position","flex","contentContainerStyle","backgroundColor","maximumZoomScale","minimumZoomScale","onScroll","onHandleScroll","bounces","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","ref","c","scrollView","scrollEventThrottle","scrollEnabled","pinchGestureEnabled","source","resizeMode","onLayout","calculateMaxSizes","onLayoutChanged","initialWidth","initialHeight","initialTop","initialLeft","minHeight","minWidth","prepareMessageText","create","flexDirection","marginHorizontal","alignItems","fontWeight","color","fontSize","fontFamily","defaultProps","console","log","dragVelocity","resizeVelocity","compress","format","SaveFormat","PNG","propTypes","bool","isRequired","func","object","number"],"sources":["ExpoImageManipulator.js"],"sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Image,\n ScrollView,\n Modal,\n View,\n Text,\n SafeAreaView,\n TouchableOpacity,\n StyleSheet,\n Platform,\n LogBox,\n} from 'react-native';\nimport * as ImageManipulator from 'expo-image-manipulator';\nimport PropTypes from 'prop-types';\nimport AutoHeightImage from 'react-native-auto-height-image';\nimport { isIphoneX, getStatusBarHeight } from 'react-native-iphone-x-helper';\nimport ImageCropOverlay from './ImageCropOverlay';\n\nconst { width } = Dimensions.get('window');\nconst topMargin = getStatusBarHeight() + (Platform.OS === 'ios' ? 50 : 20);\n\nLogBox.ignoreLogs(['componentWillReceiveProps', 'componentWillUpdate', 'componentWillMount']);\nLogBox.ignoreLogs([\n 'Warning: componentWillMount is deprecated',\n 'Warning: componentWillReceiveProps is deprecated',\n 'Module RCTImageLoader requires',\n]);\n\nclass ExpoImageManipulator extends Component {\n constructor(props) {\n super(props);\n const { squareAspect } = this.props;\n this.state = {\n cropMode: false,\n processing: false,\n squareAspect,\n };\n\n this.scrollOffset = 0;\n this.currentPos = { left: 0, top: 0 };\n this.currentSize = { width: 0, height: 0 };\n this.maxSizes = { width: 0, height: 0 };\n this.actualSize = { width: 0, height: 0 };\n }\n\n async componentDidMount() {\n await this.onConvertImageToEditableSize();\n\n // Set cropping by default\n this.setState({ cropMode: true });\n }\n\n async onConvertImageToEditableSize() {\n const {\n photo: { uri: rawUri },\n } = this.props;\n const { uri, width, height } = await ImageManipulator.manipulateAsync(rawUri, [{ resize: { width: 1080 } }]);\n this.setState({ uri });\n this.actualSize.width = width;\n this.actualSize.height = height;\n }\n\n onToggleModal = () => {\n this.props.onToggleModal();\n this.setState({ cropMode: false });\n };\n\n onCropImage = (callback = null) => {\n this.setState({ processing: true });\n const { uri } = this.state;\n Image.getSize(uri, async (actualWidth, actualHeight) => {\n let cropObj = this.getCropBounds(actualWidth, actualHeight);\n if (cropObj.height > 0 && cropObj.width > 0) {\n let uriToCrop = uri;\n const { uri: uriCroped, base64, width: croppedWidth, height: croppedHeight } = await this.crop(cropObj, uriToCrop);\n\n this.actualSize.width = croppedWidth;\n this.actualSize.height = croppedHeight;\n\n this.setState(\n {\n uri: uriCroped,\n base64,\n cropMode: false,\n processing: false,\n },\n () => {\n if (callback) callback();\n },\n );\n } else {\n this.setState({ cropMode: false, processing: false }, () => {\n if (callback) callback();\n });\n }\n });\n };\n\n onHandleScroll = event => {\n this.scrollOffset = event.nativeEvent.contentOffset.y;\n };\n\n getCropBounds = (actualWidth, actualHeight) => {\n let imageRatio = actualHeight / actualWidth;\n var originalHeight = Dimensions.get('window').height - 64;\n if (isIphoneX()) {\n originalHeight = Dimensions.get('window').height - 122;\n }\n let renderedImageWidth = imageRatio < originalHeight / width ? width : originalHeight / imageRatio;\n let renderedImageHeight = imageRatio < originalHeight / width ? width * imageRatio : originalHeight;\n\n let renderedImageY = (originalHeight - renderedImageHeight) / 2.0;\n let renderedImageX = (width - renderedImageWidth) / 2.0;\n\n const renderImageObj = {\n left: renderedImageX,\n top: renderedImageY,\n width: renderedImageWidth,\n height: renderedImageHeight,\n };\n const cropOverlayObj = {\n left: this.currentPos.left,\n top: this.currentPos.top,\n width: this.currentSize.width,\n height: this.currentSize.height,\n };\n\n var intersectAreaObj = {};\n\n let x = Math.max(renderImageObj.left, cropOverlayObj.left);\n let num1 = Math.min(renderImageObj.left + renderImageObj.width, cropOverlayObj.left + cropOverlayObj.width);\n let y = Math.max(renderImageObj.top, cropOverlayObj.top);\n let num2 = Math.min(renderImageObj.top + renderImageObj.height, cropOverlayObj.top + cropOverlayObj.height);\n if (num1 >= x && num2 >= y)\n intersectAreaObj = {\n originX: (x - renderedImageX) * (actualWidth / renderedImageWidth),\n originY: (y - renderedImageY) * (actualWidth / renderedImageWidth),\n width: (num1 - x) * (actualWidth / renderedImageWidth),\n height: (num2 - y) * (actualWidth / renderedImageWidth),\n };\n else {\n intersectAreaObj = {\n originX: x - renderedImageX,\n originY: y - renderedImageY,\n width: 0,\n height: 0,\n };\n }\n return intersectAreaObj;\n };\n\n crop = async (cropObj, uri) => {\n const { saveOptions } = this.props;\n if (cropObj.height > 0 && cropObj.width > 0) {\n const manipResult = await ImageManipulator.manipulateAsync(\n uri,\n [\n {\n crop: cropObj,\n },\n ],\n saveOptions,\n );\n return manipResult;\n }\n return {\n uri: null,\n base64: null,\n };\n };\n\n calculateMaxSizes = event => {\n let w1 = event.nativeEvent.layout.width || 100;\n let h1 = event.nativeEvent.layout.height || 100;\n if (this.state.squareAspect) {\n if (w1 < h1) h1 = w1;\n else w1 = h1;\n }\n this.maxSizes.width = w1;\n this.maxSizes.height = h1;\n };\n\n // eslint-disable-next-line camelcase\n async UNSAFE_componentWillReceiveProps() {\n await this.onConvertImageToEditableSize();\n }\n\n render() {\n const { isVisible, onPictureChoosed } = this.props;\n const { uri, base64, cropMode, processing } = this.state;\n\n let imageRatio = this.actualSize.height / this.actualSize.width;\n var originalHeight = Dimensions.get('window').height - 64;\n if (isIphoneX()) {\n originalHeight = Dimensions.get('window').height - 122;\n }\n\n let cropRatio = originalHeight / width;\n\n let cropWidth = imageRatio < cropRatio ? width : originalHeight / imageRatio;\n let cropHeight = imageRatio < cropRatio ? width * imageRatio : originalHeight;\n\n let cropInitialTop = (originalHeight - cropHeight) / 2.0;\n let cropInitialLeft = (width - cropWidth) / 2.0;\n\n if (this.currentSize.width == 0 && cropMode) {\n this.currentSize.width = cropWidth;\n this.currentSize.height = cropHeight;\n\n this.currentPos.top = cropInitialTop;\n this.currentPos.left = cropInitialLeft;\n }\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={true}\n visible={isVisible}\n hardwareAccelerated\n onRequestClose={() => {\n this.onToggleModal();\n }}\n >\n {uri !== undefined ? (\n <View style={styles.container}>\n <SafeAreaView style={[{ width }, styles.headerContainer]}>\n {!cropMode ? (\n <View style={[styles.headerButtonContainer, { justifyContent: 'flex-end' }]}>\n <TouchableOpacity\n onPress={() => {\n onPictureChoosed({ uri, base64 });\n this.onToggleModal();\n }}\n style={styles.headerButton}\n >\n <Text style={styles.headerButtonText}>{'Done'}</Text>\n </TouchableOpacity>\n </View>\n ) : (\n <View style={styles.headerButtonContainer}>\n <TouchableOpacity onPress={this.onToggleModal} style={styles.headerButton}>\n <Text style={styles.headerButtonText}>{'Cancel'}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n this.onCropImage(() => {\n onPictureChoosed({ uri: this.state.uri, base64: this.state.base64 });\n this.onToggleModal();\n });\n }}\n style={styles.headerButton}\n >\n <Text style={styles.headerButtonText}>{processing ? 'Processing' : 'Done'}</Text>\n </TouchableOpacity>\n </View>\n )}\n </SafeAreaView>\n <View style={[styles.contentContainer, { width: Dimensions.get('window').width }]}>\n <ScrollView\n style={{ position: 'relative', flex: 1 }}\n contentContainerStyle={{ backgroundColor: 'black' }}\n maximumZoomScale={5}\n minimumZoomScale={0.5}\n onScroll={this.onHandleScroll}\n bounces={false}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n ref={c => (this.scrollView = c)}\n scrollEventThrottle={16}\n scrollEnabled={false}\n pinchGestureEnabled={false}\n >\n <AutoHeightImage\n style={{ backgroundColor: 'black' }}\n source={{ uri }}\n resizeMode={imageRatio >= 1 ? 'contain' : 'contain'}\n width={width}\n height={originalHeight}\n onLayout={this.calculateMaxSizes}\n />\n {!!cropMode && (\n <ImageCropOverlay\n onLayoutChanged={(top, left, width, height) => {\n this.currentSize.width = width;\n this.currentSize.height = height;\n this.currentPos.top = top;\n this.currentPos.left = left;\n }}\n initialWidth={cropWidth}\n initialHeight={cropHeight}\n initialTop={cropInitialTop}\n initialLeft={cropInitialLeft}\n minHeight={100}\n minWidth={100}\n topMargin={topMargin}\n />\n )}\n </ScrollView>\n </View>\n </View>\n ) : (\n <View style={styles.container}>\n <Text style={styles.prepareMessageText}>Preparing...</Text>\n </View>\n )}\n </Modal>\n );\n // }\n }\n}\n\nconst styles = StyleSheet.create({\n headerContainer: {\n flexDirection: 'row',\n backgroundColor: 'black',\n justifyContent: 'space-between',\n },\n headerButtonContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n headerButton: {\n marginHorizontal: 10,\n width: 60,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n headerButtonText: {\n fontWeight: '500',\n color: 'white',\n fontSize: 18,\n },\n contentContainer: {\n flex: 1,\n backgroundColor: 'black',\n },\n container: {\n flex: 1,\n backgroundColor: '#000d',\n alignItems: 'center',\n justifyContent: 'center',\n },\n prepareMessageText: {\n fontFamily: 'sf-bold',\n fontSize: 20,\n color: '#fff',\n },\n});\n\nexport default ExpoImageManipulator;\n\nExpoImageManipulator.defaultProps = {\n onPictureChoosed: ({ uri, base64 }) => console.log('URI:', uri, base64),\n dragVelocity: 100,\n resizeVelocity: 50,\n saveOptions: {\n compress: 1,\n format: ImageManipulator.SaveFormat.PNG,\n base64: false,\n },\n};\n\nExpoImageManipulator.propTypes = {\n isVisible: PropTypes.bool.isRequired,\n onPictureChoosed: PropTypes.func,\n saveOptions: PropTypes.object,\n photo: PropTypes.object.isRequired,\n onToggleModal: PropTypes.func.isRequired,\n dragVelocity: PropTypes.number,\n resizeVelocity: PropTypes.number,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","Dimensions","Image","ScrollView","Modal","View","Text","SafeAreaView","TouchableOpacity","StyleSheet","Platform","LogBox","ImageManipulator","PropTypes","AutoHeightImage","isIphoneX","getStatusBarHeight","ImageCropOverlay","width","get","topMargin","OS","ignoreLogs","ExpoImageManipulator","constructor","props","_defineProperty","onToggleModal","setState","cropMode","callback","processing","uri","state","getSize","actualWidth","actualHeight","cropObj","getCropBounds","height","uriToCrop","uriCroped","base64","croppedWidth","croppedHeight","crop","actualSize","event","scrollOffset","nativeEvent","contentOffset","y","imageRatio","originalHeight","renderedImageWidth","renderedImageHeight","renderedImageY","renderedImageX","renderImageObj","left","top","cropOverlayObj","currentPos","currentSize","intersectAreaObj","x","Math","max","num1","min","num2","originX","originY","saveOptions","manipResult","manipulateAsync","w1","layout","h1","squareAspect","maxSizes","componentDidMount","onConvertImageToEditableSize","photo","rawUri","resize","UNSAFE_componentWillReceiveProps","render","isVisible","onPictureChoosed","cropRatio","cropWidth","cropHeight","cropInitialTop","cropInitialLeft","createElement","animationType","transparent","visible","hardwareAccelerated","onRequestClose","undefined","style","styles","container","headerContainer","headerButtonContainer","justifyContent","onPress","headerButton","headerButtonText","onCropImage","contentContainer","position","flex","contentContainerStyle","backgroundColor","maximumZoomScale","minimumZoomScale","onScroll","onHandleScroll","bounces","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","ref","c","scrollView","scrollEventThrottle","scrollEnabled","pinchGestureEnabled","source","resizeMode","onLayout","calculateMaxSizes","onLayoutChanged","initialWidth","initialHeight","initialTop","initialLeft","minHeight","minWidth","prepareMessageText","create","flexDirection","marginHorizontal","alignItems","fontWeight","color","fontSize","fontFamily","defaultProps","console","log","dragVelocity","resizeVelocity","compress","format","SaveFormat","PNG","propTypes","bool","isRequired","func","object","number"],"sources":["ExpoImageManipulator.js"],"sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Image,\n ScrollView,\n Modal,\n View,\n Text,\n SafeAreaView,\n TouchableOpacity,\n StyleSheet,\n Platform,\n LogBox,\n} from 'react-native';\nimport * as ImageManipulator from 'expo-image-manipulator';\nimport PropTypes from 'prop-types';\nimport AutoHeightImage from 'react-native-auto-height-image';\nimport { isIphoneX, getStatusBarHeight } from 'react-native-iphone-x-helper';\nimport ImageCropOverlay from './ImageCropOverlay';\n\nconst { width } = Dimensions.get('window');\nconst topMargin = getStatusBarHeight() + (Platform.OS === 'ios' ? 50 : 20);\n\nLogBox.ignoreLogs(['componentWillReceiveProps', 'componentWillUpdate', 'componentWillMount']);\nLogBox.ignoreLogs([\n 'Warning: componentWillMount is deprecated',\n 'Warning: componentWillReceiveProps is deprecated',\n 'Module RCTImageLoader requires',\n]);\n\nclass ExpoImageManipulator extends Component {\n constructor(props) {\n super(props);\n const { squareAspect } = this.props;\n this.state = {\n cropMode: false,\n processing: false,\n squareAspect,\n };\n\n this.scrollOffset = 0;\n this.currentPos = { left: 0, top: 0 };\n this.currentSize = { width: 0, height: 0 };\n this.maxSizes = { width: 0, height: 0 };\n this.actualSize = { width: 0, height: 0 };\n }\n\n async componentDidMount() {\n await this.onConvertImageToEditableSize();\n\n // Set cropping by default\n this.setState({ cropMode: true });\n }\n\n async onConvertImageToEditableSize() {\n const {\n photo: { uri: rawUri },\n } = this.props;\n const { uri, width, height } = await ImageManipulator.manipulateAsync(rawUri, [{ resize: { width: 1080 } }]);\n this.setState({ uri });\n this.actualSize.width = width;\n this.actualSize.height = height;\n }\n\n onToggleModal = () => {\n this.props.onToggleModal();\n this.setState({ cropMode: false });\n };\n\n onCropImage = (callback = null) => {\n this.setState({ processing: true });\n const { uri } = this.state;\n Image.getSize(uri, async (actualWidth, actualHeight) => {\n let cropObj = this.getCropBounds(actualWidth, actualHeight);\n if (cropObj.height > 0 && cropObj.width > 0) {\n let uriToCrop = uri;\n const { uri: uriCroped, base64, width: croppedWidth, height: croppedHeight } = await this.crop(cropObj, uriToCrop);\n\n this.actualSize.width = croppedWidth;\n this.actualSize.height = croppedHeight;\n\n this.setState(\n {\n uri: uriCroped,\n base64,\n cropMode: false,\n processing: false,\n },\n () => {\n if (callback) callback();\n },\n );\n } else {\n this.setState({ cropMode: false, processing: false }, () => {\n if (callback) callback();\n });\n }\n });\n };\n\n onHandleScroll = event => {\n this.scrollOffset = event.nativeEvent.contentOffset.y;\n };\n\n getCropBounds = (actualWidth, actualHeight) => {\n let imageRatio = actualHeight / actualWidth;\n var originalHeight = Dimensions.get('window').height - 64;\n if (isIphoneX()) {\n originalHeight = Dimensions.get('window').height - 122;\n }\n let renderedImageWidth = imageRatio < originalHeight / width ? width : originalHeight / imageRatio;\n let renderedImageHeight = imageRatio < originalHeight / width ? width * imageRatio : originalHeight;\n\n let renderedImageY = (originalHeight - renderedImageHeight) / 2.0;\n let renderedImageX = (width - renderedImageWidth) / 2.0;\n\n const renderImageObj = {\n left: renderedImageX,\n top: renderedImageY,\n width: renderedImageWidth,\n height: renderedImageHeight,\n };\n const cropOverlayObj = {\n left: this.currentPos.left,\n top: this.currentPos.top,\n width: this.currentSize.width,\n height: this.currentSize.height,\n };\n\n var intersectAreaObj = {};\n\n let x = Math.max(renderImageObj.left, cropOverlayObj.left);\n let num1 = Math.min(renderImageObj.left + renderImageObj.width, cropOverlayObj.left + cropOverlayObj.width);\n let y = Math.max(renderImageObj.top, cropOverlayObj.top);\n let num2 = Math.min(renderImageObj.top + renderImageObj.height, cropOverlayObj.top + cropOverlayObj.height);\n if (num1 >= x && num2 >= y)\n intersectAreaObj = {\n originX: (x - renderedImageX) * (actualWidth / renderedImageWidth),\n originY: (y - renderedImageY) * (actualWidth / renderedImageWidth),\n width: (num1 - x) * (actualWidth / renderedImageWidth),\n height: (num2 - y) * (actualWidth / renderedImageWidth),\n };\n else {\n intersectAreaObj = {\n originX: x - renderedImageX,\n originY: y - renderedImageY,\n width: 0,\n height: 0,\n };\n }\n return intersectAreaObj;\n };\n\n crop = async (cropObj, uri) => {\n const { saveOptions } = this.props;\n if (cropObj.height > 0 && cropObj.width > 0) {\n const manipResult = await ImageManipulator.manipulateAsync(\n uri,\n [\n {\n crop: cropObj,\n },\n ],\n saveOptions,\n );\n return manipResult;\n }\n return {\n uri: null,\n base64: null,\n };\n };\n\n calculateMaxSizes = event => {\n let w1 = event.nativeEvent.layout.width || 100;\n let h1 = event.nativeEvent.layout.height || 100;\n if (this.state.squareAspect) {\n if (w1 < h1) h1 = w1;\n else w1 = h1;\n }\n this.maxSizes.width = w1;\n this.maxSizes.height = h1;\n };\n\n // eslint-disable-next-line camelcase\n async UNSAFE_componentWillReceiveProps() {\n await this.onConvertImageToEditableSize();\n }\n\n render() {\n const { isVisible, onPictureChoosed } = this.props;\n const { uri, base64, cropMode, processing } = this.state;\n\n let imageRatio = this.actualSize.height / this.actualSize.width;\n var originalHeight = Dimensions.get('window').height - 64;\n if (isIphoneX()) {\n originalHeight = Dimensions.get('window').height - 122;\n }\n\n let cropRatio = originalHeight / width;\n\n let cropWidth = imageRatio < cropRatio ? width : originalHeight / imageRatio;\n let cropHeight = imageRatio < cropRatio ? width * imageRatio : originalHeight;\n\n let cropInitialTop = (originalHeight - cropHeight) / 2.0;\n let cropInitialLeft = (width - cropWidth) / 2.0;\n\n if (this.currentSize.width == 0 && cropMode) {\n this.currentSize.width = cropWidth;\n this.currentSize.height = cropHeight;\n\n this.currentPos.top = cropInitialTop;\n this.currentPos.left = cropInitialLeft;\n }\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={true}\n visible={isVisible}\n hardwareAccelerated\n onRequestClose={() => {\n this.onToggleModal();\n }}\n >\n {uri !== undefined ? (\n <View style={styles.container}>\n <SafeAreaView style={[{ width }, styles.headerContainer]}>\n {!cropMode ? (\n <View style={[styles.headerButtonContainer, { justifyContent: 'flex-end' }]}>\n <TouchableOpacity\n onPress={() => {\n onPictureChoosed({ uri, base64 });\n this.onToggleModal();\n }}\n style={styles.headerButton}\n >\n <Text style={styles.headerButtonText}>{'Done'}</Text>\n </TouchableOpacity>\n </View>\n ) : (\n <View style={styles.headerButtonContainer}>\n <TouchableOpacity onPress={this.onToggleModal} style={styles.headerButton}>\n <Text style={styles.headerButtonText}>{'Cancel'}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n this.onCropImage(() => {\n onPictureChoosed({ uri: this.state.uri, base64: this.state.base64 });\n this.onToggleModal();\n });\n }}\n style={styles.headerButton}\n >\n <Text style={styles.headerButtonText}>{processing ? 'Processing' : 'Done'}</Text>\n </TouchableOpacity>\n </View>\n )}\n </SafeAreaView>\n <View style={[styles.contentContainer, { width: Dimensions.get('window').width }]}>\n <ScrollView\n style={{ position: 'relative', flex: 1 }}\n contentContainerStyle={{ backgroundColor: 'black' }}\n maximumZoomScale={5}\n minimumZoomScale={0.5}\n onScroll={this.onHandleScroll}\n bounces={false}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n ref={c => (this.scrollView = c)}\n scrollEventThrottle={16}\n scrollEnabled={false}\n pinchGestureEnabled={false}\n >\n <AutoHeightImage\n style={{ backgroundColor: 'black' }}\n source={{ uri }}\n resizeMode={imageRatio >= 1 ? 'contain' : 'contain'}\n width={width}\n height={originalHeight}\n onLayout={this.calculateMaxSizes}\n />\n {!!cropMode && (\n <ImageCropOverlay\n onLayoutChanged={(top, left, width, height) => {\n this.currentSize.width = width;\n this.currentSize.height = height;\n this.currentPos.top = top;\n this.currentPos.left = left;\n }}\n initialWidth={cropWidth}\n initialHeight={cropHeight}\n initialTop={cropInitialTop}\n initialLeft={cropInitialLeft}\n minHeight={100}\n minWidth={100}\n topMargin={topMargin}\n />\n )}\n </ScrollView>\n </View>\n </View>\n ) : (\n <View style={styles.container}>\n <Text style={styles.prepareMessageText}>Preparing...</Text>\n </View>\n )}\n </Modal>\n );\n // }\n }\n}\n\nconst styles = StyleSheet.create({\n headerContainer: {\n flexDirection: 'row',\n backgroundColor: 'black',\n justifyContent: 'space-between',\n },\n headerButtonContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n headerButton: {\n marginHorizontal: 10,\n width: 60,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n headerButtonText: {\n fontWeight: '500',\n color: 'white',\n fontSize: 18,\n },\n contentContainer: {\n flex: 1,\n backgroundColor: 'black',\n },\n container: {\n flex: 1,\n backgroundColor: '#000d',\n alignItems: 'center',\n justifyContent: 'center',\n },\n prepareMessageText: {\n fontFamily: 'sf-bold',\n fontSize: 20,\n color: '#fff',\n },\n});\n\nexport default ExpoImageManipulator;\n\nExpoImageManipulator.defaultProps = {\n onPictureChoosed: ({ uri, base64 }) => console.log('URI:', uri, base64),\n dragVelocity: 100,\n resizeVelocity: 50,\n saveOptions: {\n compress: 1,\n format: ImageManipulator.SaveFormat.PNG,\n base64: false,\n },\n};\n\nExpoImageManipulator.propTypes = {\n isVisible: PropTypes.bool.isRequired,\n onPictureChoosed: PropTypes.func,\n saveOptions: PropTypes.object,\n photo: PropTypes.object.isRequired,\n onToggleModal: PropTypes.func.isRequired,\n dragVelocity: PropTypes.number,\n resizeVelocity: PropTypes.number,\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
function _extends() {
|
|
2
|
-
function _defineProperty(
|
|
3
|
-
function _toPropertyKey(
|
|
4
|
-
function _toPrimitive(
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
4
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
5
5
|
import React, { Component } from 'react';
|
|
6
6
|
import { View, PanResponder } from 'react-native';
|
|
7
7
|
class ImageCropOverlay extends Component {
|