diff --git a/package.json b/package.json index dc8ab5b69..d67c94151 100644 --- a/package.json +++ b/package.json @@ -32,10 +32,10 @@ "crypto-js": "^3.1.9-1", "dsteem": "^0.10.1", "moment": "^2.22.2", - "native-base": "^2.8.1", "react": "^16.6.0-alpha.8af6728", "react-intl": "^2.7.2", "react-native": "^0.57.5", + "react-native-actionsheet": "^2.4.2", "react-native-config": "^0.11.5", "react-native-extended-stylesheet": "^0.10.0", "react-native-fast-image": "^4.0.14", diff --git a/src/components/comments/view/commentsView.js b/src/components/comments/view/commentsView.js index c0c756979..fc934cbf3 100644 --- a/src/components/comments/view/commentsView.js +++ b/src/components/comments/view/commentsView.js @@ -67,7 +67,7 @@ class CommentsView extends Component { > - + ( diff --git a/src/styles/logo.styles.js b/src/components/logo/logoStyles.js similarity index 100% rename from src/styles/logo.styles.js rename to src/components/logo/logoStyles.js diff --git a/src/components/markdownEditor/view/markdownEditorView.js b/src/components/markdownEditor/view/markdownEditorView.js index 9085c8e7b..4787d7c44 100644 --- a/src/components/markdownEditor/view/markdownEditorView.js +++ b/src/components/markdownEditor/view/markdownEditorView.js @@ -1,8 +1,9 @@ import React, { Component } from 'react'; import { - View, KeyboardAvoidingView, ScrollView, FlatList, Text, ActionSheetIOS + View, KeyboardAvoidingView, ScrollView, FlatList, Text, } from 'react-native'; import Markdown, { getUniqueID } from 'react-native-markdown-renderer'; +import ActionSheet from 'react-native-actionsheet'; // Components import { DropdownButton } from '../../dropdownButton'; @@ -123,63 +124,49 @@ export default class MarkdownEditorView extends Component { ); - _handleOnImageButtonPress = () => { - const { handleOpenImagePicker } = this.props; - - ActionSheetIOS.showActionSheetWithOptions( - { - options: ['Cancel', 'Take Photo', 'Select From Gallery'], - cancelButtonIndex: 0, - }, - (buttonIndex) => { - handleOpenImagePicker(buttonIndex === 1 ? 'camera' : buttonIndex === 2 && 'image'); - }, - ); - } - - _renderEditorButtons = ({ getState, setState }) => { - return ( - - - index !== 9 && this._renderMarkupButton({ item, getState, setState }) - } - horizontal - /> - - - Formats[9].onPress({ getState, setState })} - /> - this._handleOnImageButtonPress()} - style={styles.rightIcons} - size={20} - iconStyle={styles.icon} - iconType="FontAwesome" - name="image" - /> - - - - ); - }; + _renderEditorButtons = ({ getState, setState }) => ( + + + index !== 9 && this._renderMarkupButton({ item, getState, setState }) + } + horizontal + /> + + + Formats[9].onPress({ getState, setState })} + /> + this.ActionSheet.show()} + style={styles.rightIcons} + size={20} + iconStyle={styles.icon} + iconType="FontAwesome" + name="image" + /> + + + + ); render() { - const { intl, isPreviewActive, isReply } = this.props; + const { + intl, isPreviewActive, isReply, handleOpenImagePicker, + } = this.props; const { text, selection } = this.state; return ( @@ -210,6 +197,14 @@ export default class MarkdownEditorView extends Component { this.setState(state, callback); }, })} + (this.ActionSheet = o)} + options={['Open Gallery', 'Capture a photo', 'Cancel']} + cancelButtonIndex={2} + onPress={(index) => { + handleOpenImagePicker(index === 0 ? 'image' : index === 1 && 'camera'); + }} + /> ); } diff --git a/src/components/postCard/view/postCardView.js b/src/components/postCard/view/postCardView.js index 4f56b64e3..b03d528c6 100644 --- a/src/components/postCard/view/postCardView.js +++ b/src/components/postCard/view/postCardView.js @@ -102,7 +102,7 @@ class PostCard extends Component { - + this._handleOnVotersPress()} diff --git a/src/components/postView/view/postDisplayView.js b/src/components/postView/view/postDisplayView.js index c68824669..2acdd5f97 100644 --- a/src/components/postView/view/postDisplayView.js +++ b/src/components/postView/view/postDisplayView.js @@ -18,9 +18,9 @@ import styles from './postDisplayStyles'; const HEIGHT = Dimensions.get('window').width; class PostDisplayView extends Component { /* Props - * ------------------------------------------------ - * @prop { type } name - Description.... - */ + * ------------------------------------------------ + * @prop { type } name - Description.... + */ constructor(props) { super(props); @@ -62,7 +62,7 @@ class PostDisplayView extends Component { return ( - + - {post - && currentUser - && currentUser.name === post.author && ( - handleOnEditPress && handleOnEditPress()} - /> + {post && currentUser && currentUser.name === post.author && ( + handleOnEditPress && handleOnEditPress()} + /> )} )} - {post - && (isGetComment || isLoadedComments) && ( - + {post && (isGetComment || isLoadedComments) && ( + )} {!isPostEnd && this._getTabBar(true)} diff --git a/src/components/reply/reply.js b/src/components/reply/reply.js deleted file mode 100644 index 28e67f542..000000000 --- a/src/components/reply/reply.js +++ /dev/null @@ -1,176 +0,0 @@ -/* eslint-disable no-unused-vars */ -import React from 'react'; -import { - StyleSheet, - Image, - TouchableOpacity, - Dimensions, - ActivityIndicator, - FlatList, - TextInput, -} from 'react-native'; -import { - Card, - CardItem, - Header, - Left, - Right, - Thumbnail, - Title, - View, - Icon, - Body, - Text, - Button, -} from 'native-base'; -import { Popover, PopoverController } from 'react-native-modal-popover'; -import Slider from 'react-native-slider'; -import Modal from 'react-native-modal'; - -import { - upvote, - upvoteAmount, - postComment, -} from '../../providers/steem/dsteem'; -import { decryptKey } from '../../utils/crypto'; -import { getUserData } from '../../realm/realm'; -import { parsePost } from '../../utils/postParser'; -import { getComments, getPost } from '../../providers/steem/dsteem'; -/* eslint-enable no-unused-vars */ - -class Reply extends React.Component { - constructor(props) { - super(props); - this.state = { - comment: '', - }; - } - - componentDidMount() { - console.log(this.props.navigation.state.params); - } - - postComment = async () => { - this.setState({ isLoading: true }); - const content = this.props.navigation.state.params.content; - const user = this.props.navigation.state.params.user; - let userData; - let postingKey; - - const comment = { - parent_author: content.author, - parent_permlink: content.permlink, - author: user.name, - permlink: this.commentPermlink(content.author, content.permlink), - title: this.commentPermlink(content.author, content.permlink), - body: this.state.comment, - json_metadata: JSON.stringify({ - app: 'esteem/2.0.0-mobile', - community: 'esteem.app', - }), - }; - - await getUserData().then((result) => { - userData = Array.from(result); - postingKey = decryptKey(userData[0].postingKey, 'pinCode'); - }); - - postComment(comment, postingKey) - .then((result) => { - console.log(result); - this.setState({ - isLoading: false, - comment: '', - }); - }) - .catch((error) => { - console.log(error); - this.setState({ isLoading: false }); - }); - }; - - /** - * Method to format permlink for a comment - * @param parent_author - * @param parent_permlink - */ - commentPermlink = (parent_author, parent_permlink) => { - const timeStr = new Date() - .toISOString() - .replace(/[^a-zA-Z0-9]+/g, '') - .toLocaleLowerCase(); - parent_permlink = parent_permlink.replace(/(-\d{8}t\d{9}z)/g, ''); - return `re${parent_author}-${parent_permlink}-${timeStr}`; - }; - - render() { - return ( - -
- - - - - Reply - - -
- - this.setState({ comment })} - value={this.state.comment} - /> - - - - - -
- ); - } -} -const styles = StyleSheet.create({ - reply: {}, -}); - -export default Reply; diff --git a/src/components/search/search.js b/src/components/search/search.js deleted file mode 100644 index f3864fc96..000000000 --- a/src/components/search/search.js +++ /dev/null @@ -1,226 +0,0 @@ -import React, { Component } from 'react'; -import { - Text, - View, - Dimensions, - TextInput, - FlatList, - Image, - ActivityIndicator, -} from 'react-native'; -import Ionicons from 'react-native-vector-icons/Ionicons'; -// import { Navigation } from 'react-native-navigation'; -import { lookupAccounts } from '../../providers/steem/dsteem'; -import search from '../../config/search'; - -export default class Search extends Component { - constructor() { - super(); - this.handleSearch = this.handleSearch.bind(this); - this.state = { - text: '', - scroll_id: '', - posts: [], - users: [], - loading: false, - }; - } - - closeSearch = () => { - // Navigation.dismissOverlay(this.props.componentId); - }; - - handleSearch = async (text) => { - if (text.length < 3) return; - let users; - let posts; - let scroll_id; - - await this.setState({ - loading: true, - text, - }); - - users = await lookupAccounts(text); - - await this.setState({ users }); - - const data = { q: text }; - search - .post('/', JSON.stringify(data)) - .then(result => result.json()) - .then((result) => { - posts = result.results; - scroll_id = result.scroll_id; - }) - .catch((error) => { - console.log(error); - }); - /*await fetch('https://api.search.esteem.app/search', { - method: 'POST', - headers: { - // TODO: Create a config file for authorization - - Authorization: SEARCH_API_TOKEN, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(data), - }) - .then(result => result.json()) - .then((result) => { - posts = result.results; - scroll_id = result.scroll_id; - }) - .catch((error) => { - console.log(error); - });*/ - - await this.setState({ loading: false }); - - await this.setState({ - posts, - scroll_id, - }); - }; - - render() { - return ( - - - - - this.handleSearch(text)} - value={this.state.text} - /> - - - - - - ( - - - - @ - {item} - - - )} - keyExtractor={(post, index) => index.toString()} - removeClippedSubviews - onEndThreshold={0} - /> - - ( - // TODO: Create a component to list search results - - - - - {item.author} - {' '} -( - {item.author_rep} -) - - - - )} - keyExtractor={(post, index) => index.toString()} - removeClippedSubviews - onEndThreshold={0} - initialNumToRender={20} - /> - - - ); - } -} diff --git a/src/components/settingsItem/view/settingsItemStyles.js b/src/components/settingsItem/view/settingsItemStyles.js index b85857c26..503a2782e 100644 --- a/src/components/settingsItem/view/settingsItemStyles.js +++ b/src/components/settingsItem/view/settingsItemStyles.js @@ -20,19 +20,21 @@ export default EStyleSheet.create({ color: '$primaryDarkGray', }, rowTextStyle: { - fontSize: 14, + fontSize: 12, color: '$primaryDarkGray', padding: 5, }, dropdownStyle: { - marginRight: -35, marginTop: 15, + minWidth: 172, + width: 172, }, dropdownButtonStyle: { backgroundColor: '$primaryGray', height: 44, width: 172, borderRadius: 8, + marginHorizontal: 2, }, dropdown: { flexGrow: 1, diff --git a/src/components/settingsItem/view/settingsItemView.js b/src/components/settingsItem/view/settingsItemView.js index efe394a2f..1ccda62fa 100644 --- a/src/components/settingsItem/view/settingsItemView.js +++ b/src/components/settingsItem/view/settingsItemView.js @@ -12,9 +12,9 @@ import styles from './settingsItemStyles'; class SettingsItemView extends Component { /* Props - * ------------------------------------------------ - * @prop { type } name - Description.... - */ + * ------------------------------------------------ + * @prop { type } name - Description.... + */ constructor(props) { super(props); @@ -26,7 +26,13 @@ class SettingsItemView extends Component { // Component Functions _renderItem = () => { const { - type, options, selectedOptionIndex, handleOnChange, text, isOn, actionType + type, + options, + selectedOptionIndex, + handleOnChange, + text, + isOn, + actionType, } = this.props; switch (type) { @@ -47,7 +53,13 @@ class SettingsItemView extends Component { ); case 'toggle': - return handleOnChange(e, type, actionType)} />; + return ( + handleOnChange(e, type, actionType)} + /> + ); default: return ( diff --git a/src/components/sideMenu/view/sideMenuStyles.js b/src/components/sideMenu/view/sideMenuStyles.js index 0788137cc..0013bc80d 100644 --- a/src/components/sideMenu/view/sideMenuStyles.js +++ b/src/components/sideMenu/view/sideMenuStyles.js @@ -27,6 +27,12 @@ export default EStyleSheet.create({ }, otherUserAvatar: { marginLeft: -15, + width: 32, + height: 32, + borderRadius: 32 / 2, + borderWidth: 0.1, + alignSelf: 'center', + borderColor: '$borderColor', }, userInfoView: { alignSelf: 'center', @@ -52,14 +58,10 @@ export default EStyleSheet.create({ }, listItemText: { color: '$primaryDarkGray', - marginLeft: 15, + marginLeft: 12, + alignSelf: 'center', fontWeight: '500', - }, - linearGradient: { - flex: 1, - paddingLeft: 15, - paddingRight: 15, - borderRadius: 5, + fontSize: 14, }, buttonText: { fontSize: 18, @@ -78,4 +80,9 @@ export default EStyleSheet.create({ addAccountIcon: { padding: 10, }, + itemWrapper: { + flexDirection: 'row', + marginVertical: 20, + marginLeft: 48, + }, }); diff --git a/src/components/sideMenu/view/sideMenuView.js b/src/components/sideMenu/view/sideMenuView.js index d0ea71780..631a808a7 100644 --- a/src/components/sideMenu/view/sideMenuView.js +++ b/src/components/sideMenu/view/sideMenuView.js @@ -1,9 +1,8 @@ import React, { Component } from 'react'; -import { View, Text, ImageBackground } from 'react-native'; -import { injectIntl } from 'react-intl'; import { - Thumbnail, List, ListItem, Container, -} from 'native-base'; + View, Text, ImageBackground, FlatList, TouchableHighlight, +} from 'react-native'; +import { injectIntl } from 'react-intl'; import LinearGradient from 'react-native-linear-gradient'; import FastImage from 'react-native-fast-image'; @@ -75,7 +74,7 @@ class SideMenuView extends Component { : DEFAULT_IMAGE; return ( - + - ( - ( + { - if (item.route) { - navigateToRoute(item.route); + if (item.item.route) { + navigateToRoute(item.item.route); } else { - switchAccount(item.name); + switchAccount(item.item.name); } }} > - {item.icon && ( - - )} - {item.image && ( - - )} - - {isAddAccountIconActive - ? menuItems[menuItems.length - 1].id === item.id - ? intl.formatMessage({ id: `side_menu.${item.id}` }) - : item.name - : - intl.formatMessage({ id: `side_menu.${item.id}` }) - } - - + + {item.item.icon && ( + + )} + {item.item.image && ( + + )} + + {isAddAccountIconActive + ? menuItems[menuItems.length - 1].id === item.item.id + ? intl.formatMessage({ id: `side_menu.${item.item.id}` }) + : item.item.name + : intl.formatMessage({ id: `side_menu.${item.item.id}` })} + + + )} /> - +
); } } -export default injectIntl(SideMenuView); \ No newline at end of file +export default injectIntl(SideMenuView); diff --git a/src/components/upvote/container/upvoteContainer.js b/src/components/upvote/container/upvoteContainer.js index 512f4a1e0..125ca5991 100644 --- a/src/components/upvote/container/upvoteContainer.js +++ b/src/components/upvote/container/upvoteContainer.js @@ -36,7 +36,6 @@ class UpvoteContainer extends Component { const mapStateToProps = state => ({ isLoggedIn: state.application.isLoggedIn, - // TODO: Remove users as coming props. pass follow current account currentAccount: state.account.currentAccount, }); diff --git a/src/components/upvote/view/upvoteView.js b/src/components/upvote/view/upvoteView.js index 0c9ba4bba..252d774ac 100644 --- a/src/components/upvote/view/upvoteView.js +++ b/src/components/upvote/view/upvoteView.js @@ -12,7 +12,6 @@ import { Icon } from '../../icon'; // STEEM import { upvote, upvoteAmount } from '../../../providers/steem/dsteem'; import { decryptKey } from '../../../utils/crypto'; -import { getUserData } from '../../../realm/realm'; import { getDigitPinCode } from '../../../providers/steem/auth'; // Styles @@ -27,7 +26,7 @@ class UpvoteView extends Component { constructor(props) { super(props); this.state = { - value: 0.0, + sliderValue: 0.0, isVoting: false, isVoted: props.content ? props.content.is_voted : false, amount: '0.00', @@ -40,59 +39,51 @@ class UpvoteView extends Component { // Component Functions _calculateEstimatedAmount = async () => { - const { user } = this.props; + const { currentAccount } = this.props; // Calculate total vesting shares - if (user) { - const { value } = this.state; - const totalVests = parseFloat(user.vesting_shares) - + parseFloat(user.received_vesting_shares) - - parseFloat(user.delegated_vesting_shares); + if (currentAccount) { + const { sliderValue } = this.state; + const totalVests = parseFloat(currentAccount.vesting_shares) + + parseFloat(currentAccount.received_vesting_shares) + - parseFloat(currentAccount.delegated_vesting_shares); const finalVest = totalVests * 1e6; - const power = (user.voting_power * (value * 10000)) / 10000 / 50; + const power = (currentAccount.voting_power * (sliderValue * 10000)) / 10000 / 50; const rshares = (power * finalVest) / 10000; const estimated = await upvoteAmount(rshares); this.setState({ - amount: estimated.toFixed(3), + amount: estimated.toFixed(5), }); } }; _upvoteContent = async () => { - const { user, content } = this.props; - const { value } = this.state; - - let postingKey; - let userData; + const { currentAccount, content } = this.props; + const { sliderValue } = this.state; this.setState({ isVoting: true, }); const digitPinCode = await getDigitPinCode(); - - await getUserData().then((result) => { - userData = Array.from(result); - - postingKey = decryptKey(userData[0].postingKey, digitPinCode); - }); + const postingKey = decryptKey(currentAccount.realm_object.postingKey, digitPinCode); upvote( { - voter: user && user.name, + voter: currentAccount && currentAccount.username, author: content && content.author, permlink: content && content.permlink, - weight: value ? (value * 100).toFixed(0) * 100 : 0, + weight: sliderValue ? (sliderValue * 100).toFixed(0) * 100 : 0, }, postingKey, ) .then((res) => { this.setState({ - isVoted: !!value, + isVoted: !!sliderValue, isVoting: false, }); }) @@ -108,10 +99,10 @@ class UpvoteView extends Component { render() { const { isLoggedIn, isShowPayoutValue, content } = this.props; const { - isVoting, isModalVisible, amount, value, isVoted, + isVoting, isModalVisible, amount, sliderValue, isVoted, } = this.state; - const _percent = `${(value * 100).toFixed(0)}%`; + const _percent = `${(sliderValue * 100).toFixed(0)}%`; const _amount = `$${amount}`; return ( @@ -184,9 +175,9 @@ class UpvoteView extends Component { trackStyle={styles.track} thumbStyle={styles.thumb} thumbTintColor="#007ee5" - value={value} + value={sliderValue} onValueChange={(value) => { - this.setState({ value }, () => { + this.setState({ sliderValue: value }, () => { this._calculateEstimatedAmount(); }); }} diff --git a/src/constants/options/api.js b/src/constants/options/api.js index 9f630f8ba..e38bb5ee1 100644 --- a/src/constants/options/api.js +++ b/src/constants/options/api.js @@ -1,15 +1,15 @@ export default [ - 'https://api.steemit.com', - 'https://rpc.esteem.app', - 'https://rpc.steemviz.com', - 'https://rpc.buildteam.io', - 'https://api.steem.house' + 'api.steemit.com', + 'rpc.esteem.app', + 'rpc.steemviz.com', + 'rpc.buildteam.io', + 'api.steem.house', ]; export const VALUE = [ - 'https://api.steemit.com', - 'https://rpc.esteem.app', - 'https://rpc.steemviz.com', - 'https://rpc.buildteam.io', - 'https://api.steem.house' + 'api.steemit.com', + 'rpc.esteem.app', + 'rpc.steemviz.com', + 'rpc.buildteam.io', + 'api.steem.house', ]; diff --git a/src/constants/sideMenuItems.js b/src/constants/sideMenuItems.js index d13130d15..c703ff317 100644 --- a/src/constants/sideMenuItems.js +++ b/src/constants/sideMenuItems.js @@ -3,7 +3,7 @@ import { default as ROUTES } from './routeNames'; const authMenuItems = [ { name: 'Profile', - route: 'Profile', + route: 'ProfileTabbar', icon: 'user-o', id: 'profile', }, @@ -43,12 +43,6 @@ const authMenuItems = [ icon: 'gear', id: 'settings', }, - { - name: 'Add Account', - route: ROUTES.SCREENS.LOGIN, - icon: 'plus-square-o', - id: 'add_account', - }, ]; const noAuthMenuItems = [ diff --git a/src/globalStyles.js b/src/globalStyles.js index 8a86bc2cd..2c388575a 100644 --- a/src/globalStyles.js +++ b/src/globalStyles.js @@ -51,7 +51,7 @@ export default EStyleSheet.create({ height: '$deviceHeight', }, settingsContainer: { - marginLeft: 48, + marginLeft: 42, marginRight: 32, }, }); diff --git a/src/providers/steem/dsteem.js b/src/providers/steem/dsteem.js index 1f488f094..de296fe95 100644 --- a/src/providers/steem/dsteem.js +++ b/src/providers/steem/dsteem.js @@ -68,6 +68,7 @@ export const getUser = async (user) => { const rcPower = await client.call('rc_api', 'find_rc_accounts', { accounts: [user] }); const unreadActivityCount = await getUnreadActivityCount({ user }); + account[0].username = account[0].name; account[0].unread_activity_count = unreadActivityCount; account[0].rc_manabar = rcPower.rc_accounts[0].rc_manabar; account[0].steem_power = await vestToSteem( @@ -323,7 +324,12 @@ export const getPostWithComments = async (user, permlink) => { * @param postingKey private posting key */ export const upvote = (vote, postingKey) => { - const key = PrivateKey.fromString(postingKey); + let key; + + try { + key = PrivateKey.fromString(postingKey); + } catch (error) {} + return new Promise((resolve, reject) => { client.broadcast .vote(vote, key) @@ -353,9 +359,9 @@ export const upvoteAmount = async (input) => { }); } - const estimated = (input / parseFloat(rewardFund.recent_claims)) + const estimated = (input / parseFloat(rewardFund.recent_claims)) * parseFloat(rewardFund.reward_balance) - * parseFloat(medianPrice.base); + * (parseFloat(medianPrice.base) / parseFloat(medianPrice.quote)); return estimated; }; diff --git a/src/providers/steem/steemConnect.js b/src/providers/steem/steemConnect.js index ae1770660..33c500d91 100644 --- a/src/providers/steem/steemConnect.js +++ b/src/providers/steem/steemConnect.js @@ -8,7 +8,6 @@ export const vote = vote => new Promise((resolve, reject) => { steemConnect .vote(vote.voter, vote.author, vote.permlink, vote.weight) .then((result) => { - console.log(result); resolve(result); }) .catch((error) => { @@ -32,7 +31,6 @@ export const comment = comment => new Promise((resolve, reject) => { comment.jsonMetadata, ) .then((result) => { - console.log(result); resolve(result); }) .catch((error) => { @@ -67,7 +65,6 @@ export const post = (post) => { steemConnect .broadcast(operations) .then((result) => { - console.log(result); resolve(result); }) .catch((error) => { diff --git a/src/screens/application/container/applicationContainer.js b/src/screens/application/container/applicationContainer.js index e9a84c660..657ebfd86 100644 --- a/src/screens/application/container/applicationContainer.js +++ b/src/screens/application/container/applicationContainer.js @@ -115,13 +115,12 @@ class ApplicationContainer extends Component { const { dispatch } = this.props; getSettings().then((response) => { - console.log('response :', response); if (response) { response.isDarkTheme && dispatch(isDarkTheme(response.isDarkTheme)); response.language && dispatch(setLanguage(response.language)); response.currency && dispatch(setCurrency(response.currency)); response.notification && dispatch(isNotificationOpen(response.notification)); - response.server && dispatch(setApi(response.currency)); + response.server && dispatch(setApi(response.server)); } }); }; @@ -132,7 +131,6 @@ class ApplicationContainer extends Component { ws.onmessage = (e) => { // a message was received - console.log('e.data :', e.data); dispatch(updateUnreadActivityCount(unreadActivityCount + 1)); }; }; diff --git a/src/screens/discover/discover.js b/src/screens/discover/discover.js index 15c10a16c..cab414f30 100644 --- a/src/screens/discover/discover.js +++ b/src/screens/discover/discover.js @@ -1,7 +1,7 @@ // TODO: Add top users from Surfer import React from 'react'; -import { View, Text } from 'native-base'; +import { View, Text } from 'react-native'; class DiscoverPage extends React.Component { constructor(props) { diff --git a/src/screens/pinCode/screen/pinCodeScreen.js b/src/screens/pinCode/screen/pinCodeScreen.js index 5ffa43242..b9a8af4c6 100644 --- a/src/screens/pinCode/screen/pinCodeScreen.js +++ b/src/screens/pinCode/screen/pinCodeScreen.js @@ -1,11 +1,13 @@ import React, { Component } from 'react'; import { Text, TouchableOpacity, View } from 'react-native'; -import { Container, Thumbnail } from 'native-base'; +import FastImage from 'react-native-fast-image'; import { NumericKeyboard, PinAnimatedInput } from '../../../components'; import styles from './pinCodeStyles'; +const DEFAULT_IMAGE = require('../../../assets/avatar_default.png'); + class PinCodeScreen extends Component { constructor(props) { super(props); @@ -52,9 +54,9 @@ class PinCodeScreen extends Component { const { pin } = this.state; return ( - + - + {`@${username}`} @@ -79,7 +81,7 @@ class PinCodeScreen extends Component { ) : ( )} - +
); } } diff --git a/src/screens/pinCode/screen/pinCodeStyles.js b/src/screens/pinCode/screen/pinCodeStyles.js index 326b60e15..f1ac45495 100644 --- a/src/screens/pinCode/screen/pinCodeStyles.js +++ b/src/screens/pinCode/screen/pinCodeStyles.js @@ -50,4 +50,9 @@ export default EStyleSheet.create({ alignSelf: 'center', marginBottom: 25, }, + avatar: { + width: 64, + height: 64, + borderRadius: 64 / 2, + }, }); diff --git a/src/screens/profile/container/profileContainer.js b/src/screens/profile/container/profileContainer.js index 188ce7ed0..508abaf77 100644 --- a/src/screens/profile/container/profileContainer.js +++ b/src/screens/profile/container/profileContainer.js @@ -27,17 +27,15 @@ class ProfileContainer extends Component { constructor(props) { super(props); this.state = { - user: null, comments: [], - replies: [], follows: {}, - isLoggedIn: false, - isLoading: false, - isReverseHeader: false, - isReady: false, isFollowing: false, + isLoading: false, isMuted: false, isProfileLoading: false, + isReady: false, + isReverseHeader: false, + user: null, }; } @@ -75,13 +73,10 @@ class ProfileContainer extends Component { this.setState({ isReady: true, comments: result, - refreshing: false, isLoading: false, }); }) - .catch((err) => { - console.log(err); - }); + .catch((err) => {}); }; _handleFollowUnfollowUser = async (isFollowAction) => { @@ -256,13 +251,12 @@ class ProfileContainer extends Component { isFollowing, isMuted, isLoading, - isLoggedIn, isReady, isReverseHeader, user, username, } = this.state; - const { isDarkTheme } = this.props; + const { isDarkTheme, isLoggedIn } = this.props; return ( @@ -271,19 +265,19 @@ class ProfileContainer extends Component { comments={comments} error={error} follows={follows} - handleOnFollowsPress={this._handleFollowsPress} handleFollowUnfollowUser={this._handleFollowUnfollowUser} handleMuteUnmuteUser={this._handleMuteUnmuteUser} - isProfileLoading={isProfileLoading} + handleOnFollowsPress={this._handleFollowsPress} + isDarkTheme={isDarkTheme} isFollowing={isFollowing} isLoading={isLoading} isLoggedIn={isLoggedIn} - isReady={isReady} isMuted={isMuted} + isProfileLoading={isProfileLoading} + isReady={isReady} isReverseHeader={isReverseHeader} user={user} username={username} - isDarkTheme={isDarkTheme} /> ); diff --git a/src/screens/profile/screen/profileScreen.js b/src/screens/profile/screen/profileScreen.js index 708bcb211..dfe842819 100644 --- a/src/screens/profile/screen/profileScreen.js +++ b/src/screens/profile/screen/profileScreen.js @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import React, { Component, Fragment } from 'react'; import { View, ScrollView } from 'react-native'; import { injectIntl } from 'react-intl'; @@ -17,7 +16,6 @@ import { Wallet } from '../../../components/wallet'; // Utilitites import { getFormatedCreatedDate } from '../../../utils/time'; import { getRcPower, getVotingPower } from '../../../utils/manaBar'; -import parseToken from '../../../utils/parseToken'; // Styles import styles from './profileStyles'; @@ -92,7 +90,6 @@ class ProfileScreen extends Component { // locked={!isLoggedIn} > { - isLoggedIn = res.isLoggedIn; - }); - - if (isLoggedIn) { - await getUserData().then((res) => { - userData = Array.from(res); - }); - - user = await getUser(userData[0].username); - - await this.setState({ - user, - }); - - globalProperties = await globalProps(); - avail = parseFloat(this.state.user.vesting_shares) - - (parseFloat(this.state.user.to_withdraw) - - parseFloat(this.state.user.withdrawn)) - / 1e6 - - parseFloat(this.state.user.delegated_vesting_shares); - vestSteem = parseFloat( - parseFloat(globalProperties.total_vesting_fund_steem) - * (parseFloat(avail) - / parseFloat(globalProperties.total_vesting_shares)), - 6, - ); - - console.log(avail); - console.log(vestSteem); - console.log(globalProperties); - - console.log( - (parseFloat(globalProperties.total_vesting_fund_steem) - / parseFloat(globalProperties.total_vesting_shares)) - * parseFloat(avail * this.state.value), - ); - await this.setState({ - avail, - vestSteem, - globalProps: globalProperties, - }); - } - } - - sendSteem = async () => { - let userData; - let activeKey; - - transferData = { - from: this.state.user.name, - to: this.state.receiver, - amount: `${this.state.amount} ${this.state.asset}`, - memo: this.state.memo, - }; - - await getUserData() - .then((result) => { - userData = Array.from(result); - activeKey = userData[0].activeKey; - console.log(userData); - console.log(activeKey); - }) - .then(() => { - activeKey = decryptKey(activeKey, 'pinCode'); - transferToken(transferData, activeKey); - }) - .catch((error) => { - console.log(error); - }); - }; - - delegateSP = async () => { - let userData; - let activeKey; - - vestSteem = parseFloat( - parseFloat(this.state.globalProps.total_vesting_fund_steem) - * (parseFloat(this.state.avail * this.state.value) - / parseFloat(this.state.globalProps.total_vesting_shares)), - 6, - ); - const toWithdraw = (vestSteem * 1e6) - / (parseFloat(this.state.globalProps.total_vesting_fund_steem) - / (parseFloat(this.state.globalProps.total_vesting_shares) / 1e6)); - console.log(toWithdraw); - data = { - delegator: this.state.user.name, - delegatee: 'demo', - vesting_shares: `${toWithdraw.toFixed(6)} VESTS`, - }; - await getUserData().then((res) => { - userData = Array.from(res); - }); - - activeKey = decryptKey(userData[0].activeKey, 'pinCode'); - - delegate(data, activeKey) - .then((res) => { - console.log(res); - }) - .catch((err) => { - console.log(err); - }); - }; - - powerUpSteem = async () => { - let userData; - let activeKey; - - await getUserData().then((res) => { - userData = Array.from(res); - }); - - activeKey = decryptKey(userData[0].activeKey, 'pinCode'); - - const data = { - from: this.state.user.name, - to: 'hsynterkr', - amount: '001.000 STEEM', - }; - - transferToVesting(data, activeKey) - .then((res) => { - console.log(res); - }) - .catch((error) => { - console.log(error); - }); - }; - - powerDownSteem = async () => { - let userData; - let activeKey; - let avail; - - await getUserData().then((res) => { - userData = Array.from(res); - }); - - activeKey = decryptKey(userData[0].activeKey, 'pinCode'); - - avail = parseFloat(this.state.user.vesting_shares) - - (parseFloat(this.state.user.to_withdraw) - - parseFloat(this.state.user.withdrawn)) - / 1e6 - - parseFloat(this.state.user.delegated_vesting_shares); - const vestSteem = parseFloat( - parseFloat(this.state.globalProps.total_vesting_fund_steem) - * (parseFloat(avail * this.state.value) - / parseFloat(this.state.globalProps.total_vesting_shares)), - 6, - ); - const toWithdraw = (vestSteem * 1e6) - / (parseFloat(this.state.globalProps.total_vesting_fund_steem) - / (parseFloat(this.state.globalProps.total_vesting_shares) / 1e6)); - - const data = { - account: this.state.user.name, - vesting_shares: `${toWithdraw.toFixed(6)} VESTS`, - }; - - withdrawVesting(data, activeKey) - .then((result) => { - console.log(result); - }) - .catch((error) => { - console.log(error); - }); - }; - - render() { - return ( - - - - -STEEM Balance: - {this.state.user.balance} - - - - -SBD Balance: - {this.state.user.sbd_balance} - - - - -STEEM Power: - {this.state.user.steem_power} - {' '} -SP - - - Received STEEM Power: - {' '} - {this.state.user.received_steem_power} - {' '} -SP - - - Delegated Power Power: - {' '} - {this.state.user.delegated_steem_power} - {' '} -SP - - - - -Saving STEEM Balance: - {this.state.user.savings_balance} - - - Saving STEEM Balance: - {' '} - {this.state.user.savings_sbd_balance} - - - - - this.setState({ receiver: user })} - value={this.state.receiver} - /> - this.setState({ amount })} - value={this.state.amount} - /> - this.setState({ memo })} - value={this.state.memo} - /> - - this.setState({ asset: itemValue }) - } - > - - - - - - - - { - this.setState({ - value, - percent: Math.floor(value.toFixed(2) * 100), - }); - }} - /> - - Total: - {' '} - {(parseInt(this.state.vestSteem) * this.state.percent) / 100} - {' '} -SP - - - {Math.floor(this.state.value * 100)} -% - - - - - - - - - - { - this.setState( - { - value, - percent: Math.floor(value.toFixed(2) * 100), - }, - () => { - const avail = parseFloat(this.state.user.vesting_shares) - - (parseFloat(this.state.user.to_withdraw) - - parseFloat(this.state.user.withdrawn)) - / 1e6 - - parseFloat(this.state.user.delegated_vesting_shares); - const vestSteem = parseFloat( - parseFloat( - this.state.globalProps.total_vesting_fund_steem, - ) - * (parseFloat(avail * this.state.value) - / parseFloat( - this.state.globalProps.total_vesting_shares, - )), - 6, - ); - console.log(vestSteem); - console.log( - (vestSteem * 1e6) - / (parseFloat( - this.state.globalProps.total_vesting_fund_steem, - ) - / (parseFloat( - this.state.globalProps.total_vesting_shares, - ) - / 1e6)), - ); - }, - ); - }} - /> - - Total Steem Power: - {' '} - {(parseInt(this.state.vestSteem) * this.state.percent) / 100} - {' '} -SP - - - Estimated Weekly: - {' '} - {Math.floor( - (( - (parseInt(this.state.vestSteem) * this.state.percent) - / 100 - ).toFixed(0) - / 13) - * 100, - ) / 100} - {' '} - SP - - - {Math.floor(this.state.value * 100)} -% - - - - - - - ); - } -} -export default WalletPage; diff --git a/src/styles/formInput.styles.js b/src/styles/formInput.styles.js deleted file mode 100644 index d855a97b8..000000000 --- a/src/styles/formInput.styles.js +++ /dev/null @@ -1,15 +0,0 @@ -import EStyleSheet from 'react-native-extended-stylesheet'; - -export default EStyleSheet.create({ - container: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - }, - input: { - backgroundColor: '$primaryGray', - borderRadius: 5, - padding: 15, - minWidth: '$deviceWidth / 2', - }, -}); diff --git a/yarn.lock b/yarn.lock index 586743e43..358ccdc62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -823,7 +823,7 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-styles@^2.1.0, ansi-styles@^2.2.1: +ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= @@ -1418,11 +1418,6 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -blueimp-md5@^2.5.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.10.0.tgz#02f0843921f90dca14f5b8920a38593201d6964d" - integrity sha512-EkNUOi7tpV68TqjpiUz9D9NcT8um2+qtgntmMbi5UKssVX2m/2PLqotcric0RE63pB3HPN/fjf3cKHN2ufGSUQ== - bn.js@^4.11.3, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1662,17 +1657,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.1.tgz#509afb67066e7499f7eb3535c77445772ae2d019" - integrity sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk= - dependencies: - ansi-styles "^2.1.0" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -1804,7 +1788,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.8.2, color-convert@^1.9.0: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -1816,32 +1800,11 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.4.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/color/-/color-1.0.3.tgz#e48e832d85f14ef694fb468811c2d5cfe729b55d" - integrity sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0= - dependencies: - color-convert "^1.8.2" - color-string "^1.4.0" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" @@ -3277,14 +3240,6 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" - integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -3581,11 +3536,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^1.0.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - integrity sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs= - hoist-non-react-statics@^2.2.0, hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0, hoist-non-react-statics@^2.5.5: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" @@ -3865,11 +3815,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -4421,11 +4366,6 @@ jest-mock@^23.2.0: resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= -jest-react-native@^18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/jest-react-native/-/jest-react-native-18.0.0.tgz#77dd909f069324599f227c58c61c2e62168726ba" - integrity sha1-d92QnwaTJFmfInxYxhwuYhaHJro= - jest-regex-util@^23.3.0: version "23.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" @@ -4956,12 +4896,7 @@ lodash.unescape@4.0.1: resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= -lodash@4.17.10: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg== - -lodash@^4.0.0, lodash@^4.10.1, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.6.1: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -5532,36 +5467,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -native-base-shoutem-theme@0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/native-base-shoutem-theme/-/native-base-shoutem-theme-0.2.2.tgz#5823310455fe391adf72236469c039fd44f56a20" - integrity sha1-WCMxBFX+ORrfciNkacA5/UT1aiA= - dependencies: - hoist-non-react-statics "^1.0.5" - lodash "^4.10.1" - prop-types "^15.5.10" - -native-base@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/native-base/-/native-base-2.8.1.tgz#8004a9dcfb69284137741857c3db880788f65581" - integrity sha512-PCAJ2I8gnUia+HV9deT4CusX8Uk+w52xgPLHuo0OQOgo7cZjw7EAaCGWSFlUk7cBsDjswV5PvLzPMujYh8TkwQ== - dependencies: - blueimp-md5 "^2.5.0" - clamp "^1.0.1" - color "~1.0.3" - fs-extra "^2.0.0" - jest-react-native "^18.0.0" - lodash "4.17.10" - native-base-shoutem-theme "0.2.2" - print-message "^2.1.0" - prop-types "^15.5.10" - react-native-drawer "2.5.0" - react-native-easy-grid "0.2.0" - react-native-keyboard-aware-scroll-view "0.5.0" - react-native-vector-icons "4.6.0" - react-tween-state "^0.1.5" - tween-functions "^1.0.1" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -6215,13 +6120,6 @@ pretty-format@^4.2.1: resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-4.3.1.tgz#530be5c42b3c05b36414a7a2a4337aa80acd0e8d" integrity sha1-UwvlxCs8BbNkFKeipDN6qArNDo0= -print-message@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/print-message/-/print-message-2.1.0.tgz#b5588ed08b0e1bf77ac7bcb5cb78004afaf9a891" - integrity sha1-tViO0IsOG/d6x7y1y3gASvr5qJE= - dependencies: - chalk "1.1.1" - private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -6316,13 +6214,6 @@ querystringify@^2.0.0: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg== -raf@^3.1.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - randomatic@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" @@ -6386,6 +6277,11 @@ react-lifecycles-compat@^3, react-lifecycles-compat@^3.0.0, react-lifecycles-com resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-native-actionsheet@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/react-native-actionsheet/-/react-native-actionsheet-2.4.2.tgz#6a00dd51a75ef2c8974312130e405af73191500f" + integrity sha512-DBoWIvVwuWXuptF4t46pBqkFxaUxS+rsIdHiA05t0n4BdTIDV2R4s9bLEUVOGzb94D7VxIamsXZPA/3mmw+SXg== + react-native-animatable@^1.2.4: version "1.3.0" resolved "https://registry.yarnpkg.com/react-native-animatable/-/react-native-animatable-1.3.0.tgz#b5c3940fc758cfd9b2fe54613a457c4b6962b46e" @@ -6417,21 +6313,6 @@ react-native-drawer-layout@1.3.2: dependencies: react-native-dismiss-keyboard "1.0.0" -react-native-drawer@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/react-native-drawer/-/react-native-drawer-2.5.0.tgz#022cba5c0516126a9fc9cce3185cb46c644b51c4" - integrity sha512-I8rGv0EM6PxRWeq8g463OBt4DYoTri7v9rh98Qpg9q/JToZYTIjavjY0BwchDwyV7J5LdAg7IPbfZUYBkZJsZQ== - dependencies: - prop-types "^15.5.8" - tween-functions "^1.0.1" - -react-native-easy-grid@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/react-native-easy-grid/-/react-native-easy-grid-0.2.0.tgz#4718031aa1baaa2613b829fc807da288eb0d2797" - integrity sha512-ZTi84+nJq2wwov55s1rHez0twk/8bs/AGnA5ERF8eYsMbOhBhOzzclj+TyY+/woB/2REAd9QQmWmIT/L999n6Q== - dependencies: - lodash "^4.11.1" - react-native-extended-stylesheet@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/react-native-extended-stylesheet/-/react-native-extended-stylesheet-0.10.0.tgz#bc77caf7494dcc67f681128dd8cb5e07dacef9dd" @@ -6471,19 +6352,11 @@ react-native-image-crop-picker@^0.21.3: resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.21.3.tgz#04457a3f2a888949f51be4a670dcf2520b9994f8" integrity sha512-qzY8aSYZxH4L9XYRk4V1n8x1gfq+ykNG0Kc0a9ne+JWwAQkf2P8aTKeNd4noNFZEOSJBiD4XXE/pbX55dQ5F3g== -react-native-iphone-x-helper@^1.0.1, react-native-iphone-x-helper@^1.0.3: +react-native-iphone-x-helper@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.0.tgz#9f8a376eb00bc712115abff4420318a0063fa796" integrity sha512-xIeTo4s77wwKgBZLVRIZC9tM9/PkXS46Ul76NXmvmixEb3ZwqGdQesR3zRiLMOoIdfOURB6N9bba9po7+x9Bag== -react-native-keyboard-aware-scroll-view@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.5.0.tgz#57ab933089375bf62f4324797e8be949ad97849d" - integrity sha512-nGXsACZBCiWuwRrZy+UjiSJqb4tZ/6ePHUSY8M+09g4VfNm/ogvvWpwBa6B999NZ6DwhZTKBjVWeZxX9XG8bbQ== - dependencies: - prop-types "^15.6.0" - react-native-iphone-x-helper "^1.0.1" - react-native-keyboard-aware-scroll-view@^0.7.2: version "0.7.4" resolved "https://registry.yarnpkg.com/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.7.4.tgz#80fb4b56f3c5cb399da0c6832ec52729856ac08a" @@ -6576,15 +6449,6 @@ react-native-tab-view@^1.0.0: dependencies: prop-types "^15.6.1" -react-native-vector-icons@4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-4.6.0.tgz#e4014311ffa6de397d914ffc31b7097a874cc8d5" - integrity sha512-rpfhfPiXCK2PX1nrNhdxSMrEGB/Gw/SvKoPM0G2wAkSoqynnes19K0VYI+Up7DqR1rFIpE4hP2erpT1tNx2tfg== - dependencies: - lodash "^4.0.0" - prop-types "^15.5.10" - yargs "^8.0.2" - react-native-vector-icons@^6.0.2: version "6.1.0" resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-6.1.0.tgz#770a3f8ced692d75deb3afbb9829195ceed1eedd" @@ -6756,14 +6620,6 @@ react-transform-hmr@^1.0.4: global "^4.3.0" react-proxy "^1.1.7" -react-tween-state@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/react-tween-state/-/react-tween-state-0.1.5.tgz#e98b066551efb93cb92dd1be14995c2e3deae339" - integrity sha1-6YsGZVHvuTy5LdG+FJlcLj3q4zk= - dependencies: - raf "^3.1.0" - tween-functions "^1.0.1" - react@^16.6.0-alpha.8af6728: version "16.6.3" resolved "https://registry.yarnpkg.com/react/-/react-16.6.3.tgz#25d77c91911d6bbdd23db41e70fb094cc1e0871c" @@ -7416,13 +7272,6 @@ simple-plist@^0.2.1: bplist-parser "0.1.1" plist "2.0.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sisteransi@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" @@ -8012,11 +7861,6 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tween-functions@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tween-functions/-/tween-functions-1.2.0.tgz#1ae3a50e7c60bb3def774eac707acbca73bbc3ff" - integrity sha1-GuOlDnxguz3vd06scHrLynO7w/8= - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"