diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 40c6dcd05..000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
- root: true,
- extends: '@react-native-community',
-};
diff --git a/.eslintrc.json b/.eslintrc.json
index 6444a3273..b076ff36a 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -5,14 +5,18 @@
"prettier",
"plugin:prettier/recommended",
"plugin:eslint-comments/recommended",
+ "eslint:recommended",
"plugin:import/errors",
"plugin:import/warnings",
- "plugin:jest/recommended"
+ "plugin:jest/recommended",
+ "@react-native-community",
+ "plugin:import/typescript"
],
"env": {
"browser": true,
"jest": true,
- "react-native/react-native": true
+ "react-native/react-native": true,
+ "node": true
},
"plugins": [
"react",
@@ -31,7 +35,7 @@
"extensions": [".js", ".jsx"]
}
],
- "max-len": ["error", 100],
+ "max-len": ["warn", 100],
"react/forbid-prop-types": [0],
"no-underscore-dangle": 0,
"react/require-default-props": [0],
@@ -44,14 +48,16 @@
"import/no-named-default": "off",
"no-param-reassign": "off",
"no-case-declarations": "off",
- "no-cycle": "off",
+ "import/no-cycle": "off",
"react-hooks/rules-of-hooks": "error",
- "react-hooks/exhaustive-deps": "warn",
+ "react-hooks/exhaustive-deps": "off",
+ "react/destructuring-assignment": [1, "always"],
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": true
}
- ]
+ ],
+ "import/no-unresolved": "off"
}
}
diff --git a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate
index 1009512d5..be467cd64 100644
Binary files a/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate and b/ios/eSteem.xcworkspace/xcuserdata/f.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/package.json b/package.json
index b5750a5e2..012b3ec44 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
"react-native-navigation-bar-color": "^0.1.0",
"react-native-reanimated": "^1.3.0",
"react-native-render-html": "^4.1.2",
- "react-native-screens": "^2.0.0-alpha.15",
+ "react-native-screens": "^2.0.0-alpha.16",
"react-native-scrollable-tab-view": "esteemapp/react-native-scrollable-tab-view",
"react-native-slider": "^0.11.0",
"react-native-snap-carousel": "^3.8.0",
@@ -80,7 +80,7 @@
"react-navigation-drawer": "^2.2.2",
"react-navigation-redux-helpers": "^2.0.8",
"react-navigation-stack": "^1.9.3",
- "react-navigation-tabs": "^2.5.5",
+ "react-navigation-tabs": "^2.6.2",
"react-redux": "^7.1.1",
"redux": "^4.0.4",
"redux-persist": "^6.0.0",
diff --git a/src/_EXAMPLES FOR DEVELOPERS/components/statefull/view/exampleView.js b/src/_EXAMPLES FOR DEVELOPERS/components/statefull/view/exampleView.js
index affc9b005..c785f5692 100644
--- a/src/_EXAMPLES FOR DEVELOPERS/components/statefull/view/exampleView.js
+++ b/src/_EXAMPLES FOR DEVELOPERS/components/statefull/view/exampleView.js
@@ -32,3 +32,4 @@ class ExampleView extends Component {
}
export default ExampleView;
+/* eslint-enable */
diff --git a/src/components/animations/pulse/pulseAnimation.js b/src/components/animations/pulse/pulseAnimation.js
index 9c0275ffb..d7fbf65e5 100644
--- a/src/components/animations/pulse/pulseAnimation.js
+++ b/src/components/animations/pulse/pulseAnimation.js
@@ -15,6 +15,8 @@ const styles = StyleSheet.create({
});
class PulseAnimation extends Component {
+ mounted = true;
+
static defaultProps = {
color: 'blue',
diameter: 400,
@@ -33,8 +35,6 @@ class PulseAnimation extends Component {
},
};
- mounted = true;
-
constructor(props) {
super(props);
@@ -97,6 +97,7 @@ class PulseAnimation extends Component {
updatePulse = () => {
if (this.mounted) {
+ // eslint-disable-next-line react/no-access-state-in-setstate
const pulses = this.state.pulses.map((p, i) => {
const { maxDiameter } = this.state;
const newDiameter = p.diameter > maxDiameter ? 0 : p.diameter + 2;
diff --git a/src/components/basicUIElements/view/placeHolder/boostPlaceHolderView.js b/src/components/basicUIElements/view/placeHolder/boostPlaceHolderView.js
index 2bf401d72..ff90a6442 100644
--- a/src/components/basicUIElements/view/placeHolder/boostPlaceHolderView.js
+++ b/src/components/basicUIElements/view/placeHolder/boostPlaceHolderView.js
@@ -51,3 +51,4 @@ const BoostPlaceHolder = () => {
};
export default BoostPlaceHolder;
+/* eslint-enable */
diff --git a/src/components/basicUIElements/view/placeHolder/listPlaceHolderView.js b/src/components/basicUIElements/view/placeHolder/listPlaceHolderView.js
index 66478b5d0..9fc9038d6 100644
--- a/src/components/basicUIElements/view/placeHolder/listPlaceHolderView.js
+++ b/src/components/basicUIElements/view/placeHolder/listPlaceHolderView.js
@@ -18,3 +18,4 @@ const ListPlaceHolderView = () => {
return {listElements};
};
export default ListPlaceHolderView;
+/* eslint-enable */
diff --git a/src/components/basicUIElements/view/placeHolder/walletDetailsPlaceHolder.js b/src/components/basicUIElements/view/placeHolder/walletDetailsPlaceHolder.js
index 7f8c6d69c..462c69934 100644
--- a/src/components/basicUIElements/view/placeHolder/walletDetailsPlaceHolder.js
+++ b/src/components/basicUIElements/view/placeHolder/walletDetailsPlaceHolder.js
@@ -43,3 +43,4 @@ const WalletDetailsPlaceHolder = () => (
);
export default WalletDetailsPlaceHolder;
+/* eslint-enable */
diff --git a/src/components/basicUIElements/view/tag/tagStyles.js b/src/components/basicUIElements/view/tag/tagStyles.js
index 46a2aee25..9b25ae209 100644
--- a/src/components/basicUIElements/view/tag/tagStyles.js
+++ b/src/components/basicUIElements/view/tag/tagStyles.js
@@ -17,6 +17,7 @@ export default EStyleSheet.create({
paddingHorizontal: Platform.OS === 'android' ? 20 : 10,
justifyContent: 'center',
marginRight: 8,
+ marginLeft: 8,
height: 22,
backgroundColor: '$iconColor',
borderRadius: 50,
@@ -26,9 +27,9 @@ export default EStyleSheet.create({
},
isFilterTextUnPin: {
color: '$primaryDarkGray',
- fontSize: 14,
+ fontSize: 12,
},
isFilterTextPin: {
- fontSize: 14,
+ fontSize: 12,
},
});
diff --git a/src/components/bottomTabBar/view/tabbar.js b/src/components/bottomTabBar/view/tabbar.js
index a797f77dc..b5457d25d 100644
--- a/src/components/bottomTabBar/view/tabbar.js
+++ b/src/components/bottomTabBar/view/tabbar.js
@@ -3,12 +3,12 @@ import { View, TouchableHighlight, Animated } from 'react-native';
import Svg, { Circle, Path } from 'react-native-svg';
import scalePx from '../../../utils/scalePx';
+import styles from './bottomTabBarStyles';
+
const AnimatedCircle = Animated.createAnimatedComponent(Circle);
const AnimatedPath = Animated.createAnimatedComponent(Path);
-import styles from './bottomTabBarStyles';
-
export default class TabBar extends Component {
constructor(props) {
super(props);
@@ -34,7 +34,7 @@ export default class TabBar extends Component {
}
this.state = {
- selectedIndex: selectedIndex,
+ selectedIndex,
circleRadius: new Animated.Value(91 + selectedIndex * value),
pathD: new Animated.Value(selectedIndex * value),
pathX: selectedIndex * value,
@@ -104,6 +104,7 @@ export default class TabBar extends Component {
return React.cloneElement(route, {
selected: selectedIndex === i,
onPress: this._onPress,
+ // eslint-disable-next-line react/no-array-index-key
key: i,
index: i,
showIcon: true,
@@ -134,6 +135,7 @@ export default class TabBar extends Component {
pathX}.941653,71.4462087 ${31 + pathX}.454074,80.6628108 Z`}
/>
(this._myCircle = ref)}
fill={circleBackgroundColor}
cx={circleRadius}
@@ -162,7 +164,12 @@ const TabBarItem = ({
}
if (showIcon) {
return (
-
+
{selectedIcon || icon}
);
@@ -173,7 +180,7 @@ const TabBarItem = ({
return (
onPress(index, disabled)}
>
diff --git a/src/components/collapsibleCard/view/collapsibleCardView.js b/src/components/collapsibleCard/view/collapsibleCardView.js
index 981a5e9d5..812de17fa 100644
--- a/src/components/collapsibleCard/view/collapsibleCardView.js
+++ b/src/components/collapsibleCard/view/collapsibleCardView.js
@@ -32,23 +32,6 @@ class CollapsibleCardView extends PureComponent {
};
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isExpanded, moreHeight, locked } = this.props;
- const { expanded } = this.state;
-
- if (
- (locked || !nextProps.isExpanded) &&
- isExpanded !== nextProps.isExpanded &&
- expanded !== nextProps.isExpanded
- ) {
- this._toggleOnPress();
- }
-
- if (moreHeight !== nextProps.moreHeight) {
- this.anime.height.setValue(this._getMaxValue() + nextProps.moreHeight);
- }
- }
-
// Component Functions
_initContentHeight = event => {
if (this.anime.contentHeight > 0) {
@@ -79,6 +62,23 @@ class CollapsibleCardView extends PureComponent {
}
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isExpanded, moreHeight, locked } = this.props;
+ const { expanded } = this.state;
+
+ if (
+ (locked || !nextProps.isExpanded) &&
+ isExpanded !== nextProps.isExpanded &&
+ expanded !== nextProps.isExpanded
+ ) {
+ this._toggleOnPress();
+ }
+
+ if (moreHeight !== nextProps.moreHeight) {
+ this.anime.height.setValue(this._getMaxValue() + nextProps.moreHeight);
+ }
+ }
+
render() {
const {
title,
diff --git a/src/components/comments/container/commentsContainer.js b/src/components/comments/container/commentsContainer.js
index 17607b756..26ccbd75d 100644
--- a/src/components/comments/container/commentsContainer.js
+++ b/src/components/comments/container/commentsContainer.js
@@ -36,19 +36,6 @@ class CommentsContainer extends Component {
this._getComments();
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { commentCount, selectedFilter } = this.props;
-
- if (nextProps.commentCount > commentCount) {
- this._getComments();
- }
-
- if (selectedFilter !== get(nextProps, 'selectedFilter') && get(nextProps, 'selectedFilter')) {
- const shortedComments = this._shortComments(get(nextProps, 'selectedFilter'));
- this.setState({ comments: shortedComments });
- }
- }
-
// Component Functions
_shortComments = (sortOrder, comments) => {
@@ -244,6 +231,19 @@ class CommentsContainer extends Component {
}
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { commentCount, selectedFilter } = this.props;
+
+ if (nextProps.commentCount > commentCount) {
+ this._getComments();
+ }
+
+ if (selectedFilter !== get(nextProps, 'selectedFilter') && get(nextProps, 'selectedFilter')) {
+ const shortedComments = this._shortComments(get(nextProps, 'selectedFilter'));
+ this.setState({ comments: shortedComments });
+ }
+ }
+
render() {
const { comments: _comments, selectedPermlink } = this.state;
const {
diff --git a/src/components/dateTimePicker/view/dateTimePickerView.js b/src/components/dateTimePicker/view/dateTimePickerView.js
index 6f9675498..00950b77d 100644
--- a/src/components/dateTimePicker/view/dateTimePickerView.js
+++ b/src/components/dateTimePicker/view/dateTimePickerView.js
@@ -105,3 +105,4 @@ DateTimePickerView.defaultProps = {
};
export default injectIntl(DateTimePickerView);
+/* eslint-enable */
diff --git a/src/components/editorElements/tagArea/view/tagAreaView.js b/src/components/editorElements/tagArea/view/tagAreaView.js
index c483ab277..4fc24a0f9 100644
--- a/src/components/editorElements/tagArea/view/tagAreaView.js
+++ b/src/components/editorElements/tagArea/view/tagAreaView.js
@@ -24,22 +24,6 @@ export default class TagAreaView extends Component {
};
}
- // Component Life Cycles
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { draftChips, isRemoveTag } = this.props;
-
- if (nextProps.draftChips && nextProps.draftChips !== draftChips) {
- const _chips = [...nextProps.draftChips, ' '];
- this.setState({
- chips: _chips,
- });
- }
-
- if (isRemoveTag !== nextProps.isRemoveTag && nextProps.isRemoveTag) {
- this.setState({ chips: [' '], currentText: '' });
- }
- }
-
// Component Functions
_handleOnChange = (text, i) => {
this.setState({ currentText: text.replace(/\s/g, '').replace(/,/g, '') });
@@ -96,6 +80,22 @@ export default class TagAreaView extends Component {
}
};
+ // Component Life Cycles
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { draftChips, isRemoveTag } = this.props;
+
+ if (nextProps.draftChips && nextProps.draftChips !== draftChips) {
+ const _chips = [...nextProps.draftChips, ' '];
+ this.setState({
+ chips: _chips,
+ });
+ }
+
+ if (isRemoveTag !== nextProps.isRemoveTag && nextProps.isRemoveTag) {
+ this.setState({ chips: [' '], currentText: '' });
+ }
+ }
+
render() {
const { isPreviewActive } = this.props;
const { chips, activeChip, currentText } = this.state;
@@ -107,6 +107,7 @@ export default class TagAreaView extends Component {
(chip, i) =>
i < 7 && (
{
this.inputs[i] = input;
diff --git a/src/components/filterBar/view/filterBarStyles.js b/src/components/filterBar/view/filterBarStyles.js
index 04c3d10fc..1cdaf3e3f 100644
--- a/src/components/filterBar/view/filterBarStyles.js
+++ b/src/components/filterBar/view/filterBarStyles.js
@@ -1,4 +1,7 @@
import EStyleSheet from 'react-native-extended-stylesheet';
+import { Dimensions } from 'react-native';
+
+const deviceWidth = Dimensions.get('window').width;
export default EStyleSheet.create({
container: {
@@ -14,9 +17,10 @@ export default EStyleSheet.create({
},
dropdownWrapper: {
flexDirection: 'row',
- justifyContent: 'center',
+ justifyContent: 'space-around',
alignItems: 'center',
- left: 15,
+ left: 5,
+ flex: 6,
},
filterBarWrapper: {
flexDirection: 'row',
@@ -24,7 +28,8 @@ export default EStyleSheet.create({
justifyContent: 'space-between',
},
rightIconWrapper: {
- marginRight: 16,
+ flex: 1,
+ marginRight: 5,
alignSelf: 'center',
},
rightIcon: {
diff --git a/src/components/formInput/view/formInputView.js b/src/components/formInput/view/formInputView.js
index 1925bf366..5c4f431a8 100644
--- a/src/components/formInput/view/formInputView.js
+++ b/src/components/formInput/view/formInputView.js
@@ -33,15 +33,6 @@ class FormInputView extends Component {
};
}
- // Component Life Cycles
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isValid } = this.props;
-
- if (nextProps.isValid !== isValid) {
- this.setState({ isValid: nextProps.isValid });
- }
- }
-
// Component Functions
_handleOnChange = value => {
const { onChange } = this.props;
@@ -56,6 +47,15 @@ class FormInputView extends Component {
this.setState({ inputBorderColor: '#357ce6' });
};
+ // Component Life Cycles
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isValid } = this.props;
+
+ if (nextProps.isValid !== isValid) {
+ this.setState({ isValid: nextProps.isValid });
+ }
+ }
+
render() {
const { inputBorderColor, isValid, value } = this.state;
const {
diff --git a/src/components/formatedElements/formattedCurrency/formattedCurrencyView.js b/src/components/formatedElements/formattedCurrency/formattedCurrencyView.js
index da56c4a72..11128eb63 100644
--- a/src/components/formatedElements/formattedCurrency/formattedCurrencyView.js
+++ b/src/components/formatedElements/formattedCurrency/formattedCurrencyView.js
@@ -7,9 +7,9 @@ const FormattedCurrency = ({ value, fixAt = 3, currency, isApproximate = false }
const toFixedValue = valueInCurrency.toFixed(fixAt);
return (
- {`${
- isApproximate ? '~' : ''
- }${currencySymbol} ${toFixedValue}`}
+
+ {`${isApproximate ? '~' : ''}${currencySymbol} ${toFixedValue}`}
+
);
};
diff --git a/src/components/icon/view/iconStyles.js b/src/components/icon/view/iconStyles.js
index 3a03f1a76..e06b1a6e9 100644
--- a/src/components/icon/view/iconStyles.js
+++ b/src/components/icon/view/iconStyles.js
@@ -12,8 +12,7 @@ export default EStyleSheet.create({
right: 10,
top: 13,
backgroundColor: '$primaryRed',
- borderColor: '$white',
- borderWidth: 2,
+ borderWidth: 0,
justifyContent: 'center',
alignItems: 'center',
zIndex: 99,
diff --git a/src/components/index.js b/src/components/index.js
index a4002f7c9..8bf7cd499 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -1,6 +1,6 @@
import { AvatarHeader } from './avatarHeader';
import { BasicHeader } from './basicHeader';
-import { BoostIndicatorAnimation } from './animations';
+import { BoostIndicatorAnimation, PulseAnimation, SpinIndicator } from './animations';
import { BottomTabBar } from './bottomTabBar';
import { CheckBox } from './checkbox';
import { CircularButton, TextButton, SquareButton } from './buttons';
@@ -32,13 +32,13 @@ import { PostForm } from './postForm';
import { PostHeaderDescription, PostBody, Tags } from './postElements';
import { PostListItem } from './postListItem';
import { ProfileSummary } from './profileSummary';
-import { PulseAnimation } from './animations';
+
import { SearchInput } from './searchInput';
import { SearchModal } from './searchModal';
import { SettingsItem } from './settingsItem';
import { SideMenu } from './sideMenu';
-import { SpinIndicator } from './animations';
-import { SummaryArea, TagArea, TextArea, TitleArea } from './editorElements';
+
+import { SummaryArea, TagArea, TitleArea } from './editorElements';
import { TabBar } from './tabBar';
import { TextInput } from './textInput';
import { ToastNotification } from './toastNotification';
@@ -171,7 +171,6 @@ export {
Tag,
TagArea,
Tags,
- TextArea,
TextButton,
TextInput,
TextWithIcon,
diff --git a/src/components/mainButton/view/mainButtonView.js b/src/components/mainButton/view/mainButtonView.js
index cd395fdcc..0133af266 100644
--- a/src/components/mainButton/view/mainButtonView.js
+++ b/src/components/mainButton/view/mainButtonView.js
@@ -27,16 +27,6 @@ class MainButton extends Component {
};
}
- // Component Life Cycles
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isLoading, isDisable } = this.props;
- if (nextProps.isLoading !== isLoading || nextProps.isDisable !== isDisable) {
- this.setState({
- isDisable: !nextProps.isLoading && nextProps.isDisable,
- });
- }
- }
-
// Component Functions
_handleOnPress = () => {
const { onPress } = this.props;
@@ -88,6 +78,16 @@ class MainButton extends Component {
_getIndicator = () => ;
+ // Component Life Cycles
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isLoading, isDisable } = this.props;
+ if (nextProps.isLoading !== isLoading || nextProps.isDisable !== isDisable) {
+ this.setState({
+ isDisable: !nextProps.isLoading && nextProps.isDisable,
+ });
+ }
+ }
+
render() {
const { wrapperStyle, children, height, style, isLoading } = this.props;
const { isDisable } = this.state;
diff --git a/src/components/markdownEditor/view/markdownEditorView.js b/src/components/markdownEditor/view/markdownEditorView.js
index 9c9dbe29e..a798cf199 100644
--- a/src/components/markdownEditor/view/markdownEditorView.js
+++ b/src/components/markdownEditor/view/markdownEditorView.js
@@ -45,13 +45,13 @@ const MarkdownEditorView = ({
if (!isPreviewActive) {
_setTextAndSelection({ selection: { start: 0, end: 0 }, text });
}
- }, [_setTextAndSelection, isPreviewActive, text]);
+ }, [isPreviewActive]);
useEffect(() => {
if (text === '' && draftBody !== '') {
_setTextAndSelection({ selection: { start: 0, end: 0 }, text: draftBody });
}
- }, [_setTextAndSelection, draftBody, text]);
+ }, [draftBody]);
useEffect(() => {
if (editable === null) {
@@ -63,7 +63,7 @@ const MarkdownEditorView = ({
} else {
setEditable(!isLoading);
}
- }, [editable, isLoading]);
+ }, [isLoading]);
useEffect(() => {
if (uploadedImage && uploadedImage.url) {
@@ -75,7 +75,7 @@ const MarkdownEditorView = ({
isImage: !!uploadedImage,
});
}
- }, [_setTextAndSelection, selection, text, uploadedImage]);
+ }, [uploadedImage]);
useEffect(() => {
setText(draftBody);
@@ -91,7 +91,7 @@ const MarkdownEditorView = ({
handleIsFormValid(text);
}
}
- }, [_changeText, handleIsFormValid, text]);
+ }, [text]);
// eslint-disable-next-line react-hooks/exhaustive-deps
const _changeText = useCallback(input => {
diff --git a/src/components/notification/view/notificationView.js b/src/components/notification/view/notificationView.js
index 2c142f968..033cd5bda 100644
--- a/src/components/notification/view/notificationView.js
+++ b/src/components/notification/view/notificationView.js
@@ -169,7 +169,7 @@ class NotificationView extends PureComponent {
options={filters.map(item => item.value)}
defaultText="ALL"
onDropdownSelect={this._handleOnDropdownSelect}
- rightIconName="check"
+ rightIconName="playlist-add-check"
rightIconType="MaterialIcons"
selectedOptionIndex={selectedIndex}
onRightIconPress={readAllNotification}
@@ -214,3 +214,4 @@ class NotificationView extends PureComponent {
}
export default injectIntl(NotificationView);
+/* eslint-enable */
diff --git a/src/components/notificationLine/view/notificationLineView.js b/src/components/notificationLine/view/notificationLineView.js
index 96ff3e7ef..421aea7dd 100644
--- a/src/components/notificationLine/view/notificationLineView.js
+++ b/src/components/notificationLine/view/notificationLineView.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/jsx-one-expression-per-line */
import React, { useState, useEffect } from 'react';
import { View, Text, Image, TouchableHighlight } from 'react-native';
import { useIntl } from 'react-intl';
@@ -75,3 +76,4 @@ const NotificationLineView = ({ notification, handleOnPressNotification }) => {
};
export default NotificationLineView;
+/* eslint-enable */
diff --git a/src/components/pinAnimatedInput/views/pinAnimatedInputView.js b/src/components/pinAnimatedInput/views/pinAnimatedInputView.js
index 77dc98e9f..86e3e8464 100644
--- a/src/components/pinAnimatedInput/views/pinAnimatedInputView.js
+++ b/src/components/pinAnimatedInput/views/pinAnimatedInputView.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/no-array-index-key */
import React, { Component } from 'react';
import { Animated, Easing, View } from 'react-native';
@@ -22,17 +23,6 @@ class PinAnimatedInput extends Component {
this.dots[3] = new Animated.Value(0);
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { loading } = this.props;
- if (loading !== nextProps.loading) {
- if (nextProps.loading) {
- this._startLoadingAnimation();
- } else {
- this._stopLoadingAnimation();
- }
- }
- }
-
_startLoadingAnimation = () => {
[...Array(4)].map((item, index) => {
this.dots[index].setValue(0);
@@ -58,6 +48,17 @@ class PinAnimatedInput extends Component {
});
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { loading } = this.props;
+ if (loading !== nextProps.loading) {
+ if (nextProps.loading) {
+ this._startLoadingAnimation();
+ } else {
+ this._stopLoadingAnimation();
+ }
+ }
+ }
+
render() {
const { pin } = this.props;
const marginBottom = [];
@@ -88,3 +89,4 @@ class PinAnimatedInput extends Component {
}
export default PinAnimatedInput;
+/* eslint-enable */
diff --git a/src/components/postBoost/postBoostView.js b/src/components/postBoost/postBoostView.js
index e2b611075..eb085b326 100644
--- a/src/components/postBoost/postBoostView.js
+++ b/src/components/postBoost/postBoostView.js
@@ -145,11 +145,9 @@ class BoostPostScreen extends PureComponent {
{`${balance || _balance} ESTM`}
- {
-
- {intl.formatMessage({ id: 'promote.permlink' })}
-
- }
+
+ {intl.formatMessage({ id: 'promote.permlink' })}
+
{
const { navigation, currentAccount, content } = this.props;
if (content && get(currentAccount, 'name') !== get(content, 'author')) {
@@ -94,6 +88,12 @@ class PostCardContainer extends PureComponent {
.catch(() => {});
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ if (get(nextProps, 'isRefresh')) {
+ this._fetchPost();
+ }
+ }
+
render() {
const { content, isHideImage, nsfw } = this.props;
const { _content } = this.state;
diff --git a/src/components/postCard/view/postCardView.js b/src/components/postCard/view/postCardView.js
index 759a5370f..6565edbb3 100644
--- a/src/components/postCard/view/postCardView.js
+++ b/src/components/postCard/view/postCardView.js
@@ -36,17 +36,6 @@ class PostCardView extends Component {
};
}
- // Component Lifecycle Functions
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { content } = this.props;
- const rebloggedBy = get(content, 'reblogged_by[0]', null);
- const _rebloggedBy = get(nextProps.content, 'reblogged_by[0]', null);
-
- if (rebloggedBy !== _rebloggedBy && !_rebloggedBy) {
- this.setState({ rebloggedBy });
- }
- }
-
// Component Functions
_handleOnUserPress = () => {
@@ -87,6 +76,17 @@ class PostCardView extends Component {
return DEFAULT_IMAGE;
};
+ // Component Lifecycle Functions
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { content } = this.props;
+ const rebloggedBy = get(content, 'reblogged_by[0]', null);
+ const _rebloggedBy = get(nextProps.content, 'reblogged_by[0]', null);
+
+ if (rebloggedBy !== _rebloggedBy && !_rebloggedBy) {
+ this.setState({ rebloggedBy });
+ }
+ }
+
render() {
const { content, isHideImage, fetchPost, isNsfwPost, intl } = this.props;
const { rebloggedBy } = this.state;
diff --git a/src/components/postElements/body/view/postBodyView.js b/src/components/postElements/body/view/postBodyView.js
index 6d33b4ab2..e2a9bda94 100644
--- a/src/components/postElements/body/view/postBodyView.js
+++ b/src/components/postElements/body/view/postBodyView.js
@@ -6,7 +6,7 @@ import AutoHeightWebView from 'react-native-autoheight-webview';
import EStyleSheet from 'react-native-extended-stylesheet';
import get from 'lodash/get';
-import script from './config.js';
+import script from './config';
import { PostPlaceHolder, CommentPlaceHolder } from '../../../basicUIElements';
// Constants
diff --git a/src/components/postView/container/postDisplayContainer.js b/src/components/postView/container/postDisplayContainer.js
index 128b7b14a..ebbaa8f9e 100644
--- a/src/components/postView/container/postDisplayContainer.js
+++ b/src/components/postView/container/postDisplayContainer.js
@@ -29,14 +29,6 @@ class PostDisplayContainer extends Component {
this.state = {};
}
- // Component Life Cycle Functions
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isFetchPost } = this.props;
- if (isFetchPost !== nextProps.isFetchPost && nextProps.isFetchPost) {
- this._fetchPost();
- }
- }
-
// Component Functions
_handleOnVotersPress = activeVotes => {
const { navigation, post } = this.props;
@@ -119,6 +111,14 @@ class PostDisplayContainer extends Component {
}
};
+ // Component Life Cycle Functions
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isFetchPost } = this.props;
+ if (isFetchPost !== nextProps.isFetchPost && nextProps.isFetchPost) {
+ this._fetchPost();
+ }
+ }
+
render() {
const {
currentAccount,
diff --git a/src/components/posts/container/postsContainer.js b/src/components/posts/container/postsContainer.js
index 638a44b70..9221385c5 100644
--- a/src/components/posts/container/postsContainer.js
+++ b/src/components/posts/container/postsContainer.js
@@ -25,6 +25,7 @@ const PostsContainer = ({
tag,
nsfw,
filterOptionsValue,
+ feedUsername,
}) => {
const dispatch = useDispatch();
@@ -59,6 +60,7 @@ const PostsContainer = ({
setFeedPosts={_setFeedPosts}
tag={tag}
filterOptionsValue={filterOptionsValue}
+ feedUsername={feedUsername}
/>
)}
diff --git a/src/components/posts/view/postsView.js b/src/components/posts/view/postsView.js
index 8dd98c903..c366d6562 100644
--- a/src/components/posts/view/postsView.js
+++ b/src/components/posts/view/postsView.js
@@ -39,6 +39,7 @@ const PostsView = ({
changeForceLoadPostState,
forceLoadPost,
filterOptionsValue,
+ feedUsername,
}) => {
const [posts, setPosts] = useState(isConnected ? [] : feedPosts);
const [startAuthor, setStartAuthor] = useState('');
@@ -167,11 +168,12 @@ const PostsView = ({
if (filter === 'feed' || filter === 'blog' || getFor === 'blog' || filter === 'reblogs') {
options = {
- tag,
+ tag: feedUsername,
limit,
};
} else {
options = {
+ tag,
limit,
};
}
@@ -395,3 +397,4 @@ const PostsView = ({
};
export default withNavigation(PostsView);
+/* eslint-enable */
diff --git a/src/components/profile/profileView.js b/src/components/profile/profileView.js
index fb75b8c36..b61780202 100644
--- a/src/components/profile/profileView.js
+++ b/src/components/profile/profileView.js
@@ -177,7 +177,7 @@ class ProfileView extends PureComponent {
selectedOptionIndex={0}
pageType="profiles"
getFor="blog"
- tag={username}
+ feedUsername={username}
key={username}
handleOnScroll={isSummaryOpen ? this._handleOnScroll : null}
forceLoadPost={forceLoadPost}
diff --git a/src/components/promote/promoteView.js b/src/components/promote/promoteView.js
index 817ede2d8..bec772d79 100644
--- a/src/components/promote/promoteView.js
+++ b/src/components/promote/promoteView.js
@@ -143,11 +143,9 @@ class PromoteView extends PureComponent {
- {
-
- {intl.formatMessage({ id: 'promote.permlink' })}
-
- }
+
+ {intl.formatMessage({ id: 'promote.permlink' })}
+
0) {
- result.image = metadata.image[0];
+ [result.image] = metadata.image;
} else {
result.image = getResizedAvatar(author);
}
diff --git a/src/components/sideMenu/container/sideMenuContainer.js b/src/components/sideMenu/container/sideMenuContainer.js
index 7b6f85dcd..43679985e 100644
--- a/src/components/sideMenu/container/sideMenuContainer.js
+++ b/src/components/sideMenu/container/sideMenuContainer.js
@@ -30,14 +30,6 @@ class SideMenuContainer extends Component {
// Component Life Cycle Functions
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isLoggedIn } = this.props;
-
- if (isLoggedIn) {
- this._createUserList(nextProps.otherAccounts);
- }
- }
-
_createUserList = otherAccounts => {
const { currentAccount } = this.props;
@@ -92,6 +84,14 @@ class SideMenuContainer extends Component {
dispatch(logout());
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isLoggedIn } = this.props;
+
+ if (isLoggedIn) {
+ this._createUserList(nextProps.otherAccounts);
+ }
+ }
+
render() {
const { currentAccount, isLoggedIn } = this.props;
const { accounts } = this.state;
diff --git a/src/components/sideMenu/view/sideMenuView.js b/src/components/sideMenu/view/sideMenuView.js
index b867e0050..55bbac04c 100644
--- a/src/components/sideMenu/view/sideMenuView.js
+++ b/src/components/sideMenu/view/sideMenuView.js
@@ -42,19 +42,6 @@ class SideMenuView extends Component {
});
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isLoggedIn, accounts } = this.props;
- const { isAddAccountIconActive } = this.state;
-
- if (isLoggedIn !== nextProps.isLoggedIn) {
- this._setMenuItems(nextProps.isLoggedIn);
- }
-
- if (accounts !== nextProps.accounts && isAddAccountIconActive) {
- this.setState({ menuItems: nextProps.accounts });
- }
- }
-
// Component Functions
_handleOnPressAddAccountIcon = () => {
@@ -91,6 +78,19 @@ class SideMenuView extends Component {
}
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isLoggedIn, accounts } = this.props;
+ const { isAddAccountIconActive } = this.state;
+
+ if (isLoggedIn !== nextProps.isLoggedIn) {
+ this._setMenuItems(nextProps.isLoggedIn);
+ }
+
+ if (accounts !== nextProps.accounts && isAddAccountIconActive) {
+ this.setState({ menuItems: nextProps.accounts });
+ }
+ }
+
render() {
const { currentAccount, isLoggedIn, intl, handleLogout } = this.props;
const { menuItems, isAddAccountIconActive, storageT } = this.state;
diff --git a/src/components/spinGame/spinGameView.js b/src/components/spinGame/spinGameView.js
index 065b2896b..ac55cc032 100644
--- a/src/components/spinGame/spinGameView.js
+++ b/src/components/spinGame/spinGameView.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/no-this-in-sfc */
import React, { useState, Fragment } from 'react';
import { Image, Text, View } from 'react-native';
import moment from 'moment';
@@ -82,9 +83,11 @@ const SpinGameView = ({
handleOnButtonPress={id => buyItem(id)}
/>
))}
- {`${intl.formatMessage({
- id: 'free_estm.timer_text',
- })} ${moment.utc(moment(nextDate).diff(new Date())).format('H:m')}`}
+
+ {`${intl.formatMessage({
+ id: 'free_estm.timer_text',
+ })} ${moment.utc(moment(nextDate).diff(new Date())).format('H:m')}`}
+
)}
@@ -96,3 +99,4 @@ const SpinGameView = ({
};
export { SpinGameView as SpinGame };
+/* eslint-enable */
diff --git a/src/components/toastNotification/view/toastNotificaitonView.js b/src/components/toastNotification/view/toastNotificaitonView.js
index d3df2531c..4606ed037 100644
--- a/src/components/toastNotification/view/toastNotificaitonView.js
+++ b/src/components/toastNotification/view/toastNotificaitonView.js
@@ -17,11 +17,6 @@ class ToastNotification extends Component {
};
}
- // Component Life Cycles
- componentWillMount() {
- this._showToast();
- }
-
// Component Functions
_showToast() {
const { duration } = this.props;
@@ -53,6 +48,11 @@ class ToastNotification extends Component {
}
}
+ // Component Life Cycles
+ UNSAFE_componentWillMount() {
+ this._showToast();
+ }
+
render() {
const { text, textStyle, style, onPress, isTop } = this.props;
const { animatedValue } = this.state;
diff --git a/src/components/toggleSwitch/view/toggleSwitchView.js b/src/components/toggleSwitch/view/toggleSwitchView.js
index 76d1d761b..1c4158b62 100644
--- a/src/components/toggleSwitch/view/toggleSwitchView.js
+++ b/src/components/toggleSwitch/view/toggleSwitchView.js
@@ -28,9 +28,6 @@ class ToggleSwitchView extends PureComponent {
}
// Component Life Cycles
- componentWillMount() {
- this.setState({ duration: 0 });
- }
componentDidMount() {
this.setState({ duration: 300 });
@@ -96,6 +93,10 @@ class ToggleSwitchView extends PureComponent {
}).start();
};
+ UNSAFE_componentWillMount() {
+ this.setState({ duration: 0 });
+ }
+
render() {
this._triggerAnimation();
diff --git a/src/components/transaction/transactionView.js b/src/components/transaction/transactionView.js
index 968acded5..066835b3f 100644
--- a/src/components/transaction/transactionView.js
+++ b/src/components/transaction/transactionView.js
@@ -94,3 +94,4 @@ const TransactionView = ({ transactions, type, refreshing, setRefreshing, isLoad
};
export default TransactionView;
+/* eslint-enable */
diff --git a/src/components/upvote/view/upvoteView.js b/src/components/upvote/view/upvoteView.js
index f15ac1080..9a1e1b8c6 100644
--- a/src/components/upvote/view/upvoteView.js
+++ b/src/components/upvote/view/upvoteView.js
@@ -48,24 +48,6 @@ class UpvoteView extends Component {
this._calculateEstimatedAmount();
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { isVoted, upvotePercent } = this.props;
- const { isVoted: localIsVoted } = this.state;
-
- if (isVoted !== get(nextProps, 'isVoted') && localIsVoted !== get(nextProps, 'isVoted')) {
- this.setState({ isVoted: get(nextProps, 'isVoted') });
- }
-
- if (upvotePercent !== get(nextProps, 'upvotePercent')) {
- this.setState({
- sliderValue:
- get(nextProps, 'isVoted', false) ||
- get(nextProps, 'isDownVoted', 1) ||
- get(nextProps, 'upvotePercent', 1),
- });
- }
- }
-
// Component Functions
_calculateEstimatedAmount = async () => {
const { currentAccount, globalProps } = this.props;
@@ -187,6 +169,24 @@ class UpvoteView extends Component {
}, 300);
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { isVoted, upvotePercent } = this.props;
+ const { isVoted: localIsVoted } = this.state;
+
+ if (isVoted !== get(nextProps, 'isVoted') && localIsVoted !== get(nextProps, 'isVoted')) {
+ this.setState({ isVoted: get(nextProps, 'isVoted') });
+ }
+
+ if (upvotePercent !== get(nextProps, 'upvotePercent')) {
+ this.setState({
+ sliderValue:
+ get(nextProps, 'isVoted', false) ||
+ get(nextProps, 'isDownVoted', 1) ||
+ get(nextProps, 'upvotePercent', 1),
+ });
+ }
+ }
+
render() {
const {
isDecinedPayout,
@@ -204,7 +204,7 @@ class UpvoteView extends Component {
const { isVoting, amount, sliderValue, isVoted, isShowDetails, downvote } = this.state;
let iconName = 'upcircleo';
- let iconType = 'AntDesign';
+ const iconType = 'AntDesign';
let downVoteIconName = 'downcircleo';
if (isVoted) {
diff --git a/src/components/userAvatar/view/userAvatarView.js b/src/components/userAvatar/view/userAvatarView.js
index 00320b86d..6669b9583 100644
--- a/src/components/userAvatar/view/userAvatarView.js
+++ b/src/components/userAvatar/view/userAvatarView.js
@@ -36,7 +36,7 @@ class UserAvatarView extends Component {
const routeName = name === username ? ROUTES.TABBAR.PROFILE : ROUTES.SCREENS.PROFILE;
navigate({
- routeName: routeName,
+ routeName,
params: {
username,
},
diff --git a/src/components/wallet/view/walletView.js b/src/components/wallet/view/walletView.js
index e71f9768c..8a1b09e23 100644
--- a/src/components/wallet/view/walletView.js
+++ b/src/components/wallet/view/walletView.js
@@ -131,3 +131,4 @@ const WalletView = ({ setEstimatedWalletValue, selectedUser, handleOnScroll }) =
};
export default WalletView;
+/* eslint-enable */
diff --git a/src/components/walletHeader/view/walletHeaderView.js b/src/components/walletHeader/view/walletHeaderView.js
index 8d099bfdb..42a51632c 100644
--- a/src/components/walletHeader/view/walletHeaderView.js
+++ b/src/components/walletHeader/view/walletHeaderView.js
@@ -81,9 +81,7 @@ const WalletHeaderView = ({
>
- {unclaimedBalance
- ? unclaimedBalance
- : intl.formatMessage({ id: `wallet.${type}.buy` })}
+ {unclaimedBalance || intl.formatMessage({ id: `wallet.${type}.buy` })}
@@ -115,3 +113,4 @@ const WalletHeaderView = ({
};
export default withNavigation(WalletHeaderView);
+/* eslint-enable */
diff --git a/src/constants/options/filters.js b/src/constants/options/filters.js
index 8189b7fef..6dfe4de3a 100644
--- a/src/constants/options/filters.js
+++ b/src/constants/options/filters.js
@@ -1,6 +1,9 @@
export const POPULAR_FILTERS = ['FEED', 'TOP', 'HOT', 'NEW'];
export const POPULAR_FILTERS_VALUE = ['feed', 'trending', 'hot', 'created'];
+export const GLOBAL_POST_FILTERS = ['TOP', 'HOT', 'NEW'];
+export const GLOBAL_POST_FILTERS_VALUE = ['trending', 'hot', 'created'];
+
export const PROFILE_FILTERS = ['BLOG', 'FEED'];
export const PROFILE_FILTERS_VALUE = ['blog', 'feed'];
diff --git a/src/containers/accountContainer.js b/src/containers/accountContainer.js
index dc3d6711a..cf3c8c2fe 100644
--- a/src/containers/accountContainer.js
+++ b/src/containers/accountContainer.js
@@ -31,3 +31,4 @@ const mapStateToProps = state => ({
});
export default connect(mapStateToProps)(AccountContainer);
+/* eslint-enable */
diff --git a/src/containers/accountListContainer.js b/src/containers/accountListContainer.js
index 4d83cefad..4ce8d6c38 100644
--- a/src/containers/accountListContainer.js
+++ b/src/containers/accountListContainer.js
@@ -15,7 +15,7 @@ class AccountListContainer extends Component {
this.state = {
data: props.data,
filterResult: null,
- filterIndex: '0',
+ filterIndex: 0,
};
}
@@ -33,7 +33,7 @@ class AccountListContainer extends Component {
return itemName.indexOf(_text) > -1;
});
- if (filterIndex !== '0') {
+ if (filterIndex !== 0) {
this._handleOnVotersDropdownSelect(filterIndex, '', newData);
} else {
this.setState({ filterResult: newData });
@@ -45,13 +45,13 @@ class AccountListContainer extends Component {
const _data = Object.assign([], oldData || data);
switch (index) {
- case '0':
+ case 0:
_data.sort((a, b) => Number(b.value) - Number(a.value));
break;
- case '1':
+ case 1:
_data.sort((a, b) => b.percent - a.percent);
break;
- case '2':
+ case 2:
_data.sort((a, b) => (isBefore(a.time, b.time) ? 1 : -1));
break;
default:
@@ -74,7 +74,7 @@ class AccountListContainer extends Component {
};
render() {
- const { data, filterResult } = this.state;
+ const { data, filterResult, filterIndex } = this.state;
const { children } = this.props;
return (
@@ -82,6 +82,7 @@ class AccountListContainer extends Component {
children({
data,
filterResult,
+ filterIndex,
handleOnVotersDropdownSelect: this._handleOnVotersDropdownSelect,
handleSearch: this._handleSearch,
handleOnUserPress: this._handleOnUserPress,
diff --git a/src/containers/inAppPurchaseContainer.js b/src/containers/inAppPurchaseContainer.js
index 852c8367e..56097adb8 100644
--- a/src/containers/inAppPurchaseContainer.js
+++ b/src/containers/inAppPurchaseContainer.js
@@ -173,3 +173,4 @@ const mapStateToProps = state => ({
});
export default withNavigation(injectIntl(connect(mapStateToProps)(InAppPurchaseContainer)));
+/* eslint-enable */
diff --git a/src/containers/loggedInContainer.js b/src/containers/loggedInContainer.js
index 9024fb494..c673e3d19 100644
--- a/src/containers/loggedInContainer.js
+++ b/src/containers/loggedInContainer.js
@@ -38,3 +38,4 @@ const mapStateToProps = state => ({
});
export default connect(mapStateToProps)(LoggedInContainer);
+/* eslint-enable */
diff --git a/src/containers/profileContainer.js b/src/containers/profileContainer.js
index 7e9b077c7..4a1b0bdb6 100644
--- a/src/containers/profileContainer.js
+++ b/src/containers/profileContainer.js
@@ -76,36 +76,6 @@ class ProfileContainer extends Component {
this._loadProfile(targetUsername);
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- if (!nextProps.isConnected) {
- return;
- }
-
- const { isLoggedIn, navigation } = this.props;
- const { isOwnProfile } = this.state;
-
- if (isLoggedIn && !nextProps.isLoggedIn) {
- navigation.navigate(ROUTES.SCREENS.LOGIN);
- return;
- }
-
- if (isOwnProfile) {
- const { user } = this.state;
- const { activeBottomTab, currentAccount } = this.props;
-
- const currentUsername =
- get(currentAccount, 'name') !== get(nextProps, 'currentAccount.name') &&
- get(nextProps, 'currentAccount.name');
- const isActiveTabChanged =
- activeBottomTab !== get(nextProps, 'activeBottomTab') &&
- get(nextProps, 'activeBottomTab') === ROUTES.TABBAR.PROFILE;
-
- if ((isActiveTabChanged && user) || currentUsername) {
- this._loadProfile(get(nextProps, 'currentAccount.name'));
- }
- }
- }
-
_getReplies = async user => {
const { isOwnProfile } = this.state;
let repliesAction;
@@ -318,6 +288,36 @@ class ProfileContainer extends Component {
});
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ if (!nextProps.isConnected) {
+ return;
+ }
+
+ const { isLoggedIn, navigation } = this.props;
+ const { isOwnProfile } = this.state;
+
+ if (isLoggedIn && !nextProps.isLoggedIn) {
+ navigation.navigate(ROUTES.SCREENS.LOGIN);
+ return;
+ }
+
+ if (isOwnProfile) {
+ const { user } = this.state;
+ const { activeBottomTab, currentAccount } = this.props;
+
+ const currentUsername =
+ get(currentAccount, 'name') !== get(nextProps, 'currentAccount.name') &&
+ get(nextProps, 'currentAccount.name');
+ const isActiveTabChanged =
+ activeBottomTab !== get(nextProps, 'activeBottomTab') &&
+ get(nextProps, 'activeBottomTab') === ROUTES.TABBAR.PROFILE;
+
+ if ((isActiveTabChanged && user) || currentUsername) {
+ this._loadProfile(get(nextProps, 'currentAccount.name'));
+ }
+ }
+ }
+
render() {
const {
avatar,
@@ -399,3 +399,4 @@ const mapStateToProps = state => ({
});
export default connect(mapStateToProps)(withNavigation(ProfileContainer));
+/* eslint-enable */
diff --git a/src/containers/steemWalletContainer.js b/src/containers/steemWalletContainer.js
index ef3cb84a6..76050f1d1 100644
--- a/src/containers/steemWalletContainer.js
+++ b/src/containers/steemWalletContainer.js
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
-import { connect } from 'react-redux';
+import { connect, useDispatch } from 'react-redux';
import { useIntl } from 'react-intl';
-import { useDispatch } from 'react-redux';
+
import get from 'lodash/get';
import { toastNotification } from '../redux/actions/uiAction';
@@ -239,8 +239,8 @@ const WalletContainer = ({
claimRewardBalance: _claimRewardBalance,
currentAccountUsername: currentAccount.name,
handleOnWalletRefresh: _handleOnWalletRefresh,
- isClaiming: isClaiming,
- refreshing: refreshing,
+ isClaiming,
+ refreshing,
selectedUsername: get(selectedUser, 'name', ''),
isLoading,
walletData,
diff --git a/src/containers/themeContainer.js b/src/containers/themeContainer.js
index 22a24adff..cd40a3a83 100644
--- a/src/containers/themeContainer.js
+++ b/src/containers/themeContainer.js
@@ -16,3 +16,4 @@ const mapStateToProps = state => ({
});
export default connect(mapStateToProps)(ThemeContainer);
+/* eslint-enable */
diff --git a/src/providers/esteem/esteem.js b/src/providers/esteem/esteem.js
index 5abdfd4dc..6a44187dc 100644
--- a/src/providers/esteem/esteem.js
+++ b/src/providers/esteem/esteem.js
@@ -4,7 +4,7 @@ import imageApi from '../../config/imageApi';
import serverList from '../../config/serverListApi';
import { jsonStringify } from '../../utils/jsonUtils';
import bugsnag from '../../config/bugsnag';
-//market-data/currency-rate/USD/estm
+// market-data/currency-rate/USD/estm
export const getCurrencyRate = currency =>
api
.get(`/market-data/currency-rate/${currency.toUpperCase()}/steem`)
@@ -347,8 +347,6 @@ export const getNodes = () =>
'https://rpc.buildteam.io',
'https://rpc.steemviz.com',
'https://api.steem.house',
- 'https://steemd.pevo.science',
- 'https://steemd.minnowsupportproject.org',
],
);
diff --git a/src/providers/steem/dsteem.js b/src/providers/steem/dsteem.js
index 1d2bfdaa8..f6329593a 100644
--- a/src/providers/steem/dsteem.js
+++ b/src/providers/steem/dsteem.js
@@ -1249,3 +1249,4 @@ const getActiveKey = (local, pin) => {
return false;
};
+/* eslint-enable */
diff --git a/src/screens/application/container/applicationContainer.js b/src/screens/application/container/applicationContainer.js
index 116d3ed00..4b0934d27 100644
--- a/src/screens/application/container/applicationContainer.js
+++ b/src/screens/application/container/applicationContainer.js
@@ -96,11 +96,6 @@ class ApplicationContainer extends Component {
};
}
- componentWillMount() {
- const { isDarkTheme: _isDarkTheme } = this.props;
- EStyleSheet.build(_isDarkTheme ? darkTheme : lightTheme);
- }
-
componentDidMount = () => {
const { isIos } = this.state;
this._setNetworkListener();
@@ -127,38 +122,6 @@ class ApplicationContainer extends Component {
}
};
- UNSAFE_componentWillReceiveProps(nextProps) {
- const {
- isDarkTheme: _isDarkTheme,
- selectedLanguage,
- isLogingOut,
- isConnected,
- api,
- } = this.props;
-
- if (
- _isDarkTheme !== nextProps.isDarkTheme ||
- selectedLanguage !== nextProps.selectedLanguage ||
- (api !== nextProps.api && nextProps.api)
- ) {
- this.setState({ isRenderRequire: false }, () => this.setState({ isRenderRequire: true }));
- if (nextProps.isDarkTheme) {
- changeNavigationBarColor('#1e2835');
- } else {
- changeNavigationBarColor('#FFFFFF', true);
- }
- }
-
- if (isLogingOut !== nextProps.isLogingOut && nextProps.isLogingOut) {
- this._logout();
- }
-
- if (isConnected !== null && isConnected !== nextProps.isConnected && nextProps.isConnected) {
- this._fetchApp();
- this.globalInterval = setInterval(this._refreshGlobalProps, 180000);
- }
- }
-
componentWillUnmount() {
const { isIos } = this.state;
const { isPinCodeOpen: _isPinCodeOpen } = this.props;
@@ -531,7 +494,7 @@ class ApplicationContainer extends Component {
};
_connectNotificationServer = username => {
- /*eslint no-undef: "warn"*/
+ /* eslint no-undef: "warn" */
const ws = new WebSocket(`${Config.ACTIVITY_WEBSOCKET_URL}?user=${username}`);
ws.onmessage = () => {
@@ -613,6 +576,43 @@ class ApplicationContainer extends Component {
dispatch(updateCurrentAccount(_currentAccount));
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const {
+ isDarkTheme: _isDarkTheme,
+ selectedLanguage,
+ isLogingOut,
+ isConnected,
+ api,
+ } = this.props;
+
+ if (
+ _isDarkTheme !== nextProps.isDarkTheme ||
+ selectedLanguage !== nextProps.selectedLanguage ||
+ (api !== nextProps.api && nextProps.api)
+ ) {
+ this.setState({ isRenderRequire: false }, () => this.setState({ isRenderRequire: true }));
+ if (nextProps.isDarkTheme) {
+ changeNavigationBarColor('#1e2835');
+ } else {
+ changeNavigationBarColor('#FFFFFF', true);
+ }
+ }
+
+ if (isLogingOut !== nextProps.isLogingOut && nextProps.isLogingOut) {
+ this._logout();
+ }
+
+ if (isConnected !== null && isConnected !== nextProps.isConnected && nextProps.isConnected) {
+ this._fetchApp();
+ this.globalInterval = setInterval(this._refreshGlobalProps, 180000);
+ }
+ }
+
+ UNSAFE_componentWillMount() {
+ const { isDarkTheme: _isDarkTheme } = this.props;
+ EStyleSheet.build(_isDarkTheme ? darkTheme : lightTheme);
+ }
+
render() {
const {
selectedLanguage,
@@ -672,3 +672,4 @@ export default connect(
},
}),
)(injectIntl(ApplicationContainer));
+/* eslint-enable */
diff --git a/src/screens/application/screen/applicationScreen.js b/src/screens/application/screen/applicationScreen.js
index f9efef068..736372bdc 100644
--- a/src/screens/application/screen/applicationScreen.js
+++ b/src/screens/application/screen/applicationScreen.js
@@ -27,7 +27,13 @@ class ApplicationScreen extends Component {
};
}
- componentWillMount() {
+ _handleOnHideToastNotification = () => {
+ const { dispatch } = this.props;
+ dispatch(toastNotificationAction(''));
+ this.setState({ isShowToastNotification: false });
+ };
+
+ UNSAFE_componentWillMount() {
const { isDarkTheme } = this.props;
EStyleSheet.build(isDarkTheme ? darkTheme : lightTheme);
}
@@ -39,12 +45,6 @@ class ApplicationScreen extends Component {
}
}
- _handleOnHideToastNotification = () => {
- const { dispatch } = this.props;
- dispatch(toastNotificationAction(''));
- this.setState({ isShowToastNotification: false });
- };
-
render() {
const { isConnected, isDarkTheme, toastNotification, isReady } = this.props;
const { isShowToastNotification } = this.state;
diff --git a/src/screens/drafts/screen/draftsScreen.js b/src/screens/drafts/screen/draftsScreen.js
index 4f2d18817..e93dfa8fe 100644
--- a/src/screens/drafts/screen/draftsScreen.js
+++ b/src/screens/drafts/screen/draftsScreen.js
@@ -161,3 +161,4 @@ class DraftsScreen extends Component {
}
export default injectIntl(DraftsScreen);
+/* eslint-enable */
diff --git a/src/screens/editor/container/editorContainer.js b/src/screens/editor/container/editorContainer.js
index 29b97b4b8..3fb07d47f 100644
--- a/src/screens/editor/container/editorContainer.js
+++ b/src/screens/editor/container/editorContainer.js
@@ -54,67 +54,6 @@ class EditorContainer extends Component {
};
}
- // Component Life Cycle Functions
-
- componentWillMount() {
- const { currentAccount, navigation } = this.props;
- const username = currentAccount && currentAccount.name ? currentAccount.name : '';
- let isReply;
- let isEdit;
- let post;
- let _draft;
-
- if (navigation.state && navigation.state.params) {
- const navigationParams = navigation.state.params;
-
- if (navigationParams.draft) {
- _draft = navigationParams.draft;
-
- this.setState({
- draftPost: {
- title: _draft.title,
- body: _draft.body,
- tags: _draft.tags.includes(' ') ? _draft.tags.split(' ') : _draft.tags.split(','),
- },
- draftId: _draft._id,
- isDraft: true,
- });
- }
-
- if (navigationParams.post) {
- ({ post } = navigationParams);
- this.setState({ post });
- }
-
- if (navigationParams.isReply) {
- ({ isReply } = navigationParams);
- this.setState({ isReply });
- }
-
- if (navigationParams.isEdit) {
- ({ isEdit } = navigationParams);
- this.setState({
- isEdit,
- draftPost: {
- title: get(post, 'title', ''),
- body: get(post, 'markdownBody', ''),
- tags: get(post, 'json_metadata.tags', []),
- },
- });
- }
-
- if (navigationParams.action) {
- this._handleRoutingAction(navigationParams.action);
- }
- } else {
- this.setState({ autoFocusText: true });
- }
-
- if (!isEdit && !_draft) {
- this._getDraft(username, isReply);
- }
- }
-
_getDraft = async (username, isReply) => {
if (isReply) {
const draftReply = await AsyncStorage.getItem('temp-reply');
@@ -311,7 +250,7 @@ class EditorContainer extends Component {
const author = currentAccount.name;
const options = makeOptions(author, permlink);
- const parentPermlink = fields.tags[0];
+ const parentPermlink = fields.tags[0] || 'hive-125125';
if (scheduleDate) {
await this._setScheduledPost({
@@ -553,6 +492,66 @@ class EditorContainer extends Component {
this.setState({ uploadedImage: null });
};
+ // Component Life Cycle Functions
+ UNSAFE_componentWillMount() {
+ const { currentAccount, navigation } = this.props;
+ const username = currentAccount && currentAccount.name ? currentAccount.name : '';
+ let isReply;
+ let isEdit;
+ let post;
+ let _draft;
+
+ if (navigation.state && navigation.state.params) {
+ const navigationParams = navigation.state.params;
+
+ if (navigationParams.draft) {
+ _draft = navigationParams.draft;
+
+ this.setState({
+ draftPost: {
+ title: _draft.title,
+ body: _draft.body,
+ tags: _draft.tags.includes(' ') ? _draft.tags.split(' ') : _draft.tags.split(','),
+ },
+ draftId: _draft._id,
+ isDraft: true,
+ });
+ }
+
+ if (navigationParams.post) {
+ ({ post } = navigationParams);
+ this.setState({ post });
+ }
+
+ if (navigationParams.isReply) {
+ ({ isReply } = navigationParams);
+ this.setState({ isReply });
+ }
+
+ if (navigationParams.isEdit) {
+ ({ isEdit } = navigationParams);
+ this.setState({
+ isEdit,
+ draftPost: {
+ title: get(post, 'title', ''),
+ body: get(post, 'markdownBody', ''),
+ tags: get(post, 'json_metadata.tags', []),
+ },
+ });
+ }
+
+ if (navigationParams.action) {
+ this._handleRoutingAction(navigationParams.action);
+ }
+ } else {
+ this.setState({ autoFocusText: true });
+ }
+
+ if (!isEdit && !_draft) {
+ this._getDraft(username, isReply);
+ }
+ }
+
render() {
const { isLoggedIn, isDarkTheme } = this.props;
const {
diff --git a/src/screens/editor/screen/editorScreen.js b/src/screens/editor/screen/editorScreen.js
index 0b307e079..385ed3311 100644
--- a/src/screens/editor/screen/editorScreen.js
+++ b/src/screens/editor/screen/editorScreen.js
@@ -166,8 +166,9 @@ class EditorScreen extends Component {
_handleOnTagAdded = async tags => {
const { fields: _fields } = this.state;
const _tags = tags.filter(tag => tag && tag !== ' ');
+ const __tags = _tags.map(t => t.toLowerCase());
- const fields = { ..._fields, tags: [..._tags] };
+ const fields = { ..._fields, tags: [...__tags] };
await this.setState({ fields, isRemoveTag: false });
this._handleFormUpdate();
diff --git a/src/screens/feed/screen/feedScreen.js b/src/screens/feed/screen/feedScreen.js
index 358743b6d..c7f95dd43 100644
--- a/src/screens/feed/screen/feedScreen.js
+++ b/src/screens/feed/screen/feedScreen.js
@@ -25,7 +25,7 @@ const FeedScreen = () => {
filterOptionsValue={[...POPULAR_FILTERS_VALUE]}
getFor={isLoggedIn ? 'feed' : 'trending'}
selectedOptionIndex={isLoggedIn ? 0 : 2}
- tag={get(currentAccount, 'name')}
+ feedUsername={get(currentAccount, 'name')}
/>
diff --git a/src/screens/follows/screen/followsScreen.js b/src/screens/follows/screen/followsScreen.js
index 4f8a7981b..3fb6e291e 100644
--- a/src/screens/follows/screen/followsScreen.js
+++ b/src/screens/follows/screen/followsScreen.js
@@ -67,3 +67,4 @@ class FollowsScreen extends PureComponent {
}
export default injectIntl(FollowsScreen);
+/* eslint-enable */
diff --git a/src/screens/notification/container/notificationContainer.js b/src/screens/notification/container/notificationContainer.js
index 175956d20..ec3192493 100644
--- a/src/screens/notification/container/notificationContainer.js
+++ b/src/screens/notification/container/notificationContainer.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/no-unused-state */
import React, { Component } from 'react';
import { Alert } from 'react-native';
import { connect } from 'react-redux';
@@ -35,20 +36,6 @@ class NotificationContainer extends Component {
}
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { selectedFilter } = this.state;
- const { username } = this.props;
-
- if (
- (nextProps.activeBottomTab === ROUTES.TABBAR.NOTIFICATION && nextProps.username) ||
- (nextProps.username !== username && nextProps.username)
- ) {
- this.setState({ endOfNotification: false }, () =>
- this._getAvtivities(nextProps.username, selectedFilter),
- );
- }
- }
-
_getAvtivities = (user, type = null, loadMore = false) => {
const { lastNotificationId, notifications, endOfNotification } = this.state;
const since = loadMore ? lastNotificationId : null;
@@ -150,6 +137,20 @@ class NotificationContainer extends Component {
await this.setState({ selectedFilter: value, endOfNotification: false, selectedIndex: ind });
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { selectedFilter } = this.state;
+ const { username } = this.props;
+
+ if (
+ (nextProps.activeBottomTab === ROUTES.TABBAR.NOTIFICATION && nextProps.username) ||
+ (nextProps.username !== username && nextProps.username)
+ ) {
+ this.setState({ endOfNotification: false }, () =>
+ this._getAvtivities(nextProps.username, selectedFilter),
+ );
+ }
+ }
+
render() {
const { isLoggedIn } = this.props;
const { notifications, isNotificationRefreshing } = this.state;
@@ -178,3 +179,4 @@ const mapStateToProps = state => ({
});
export default injectIntl(connect(mapStateToProps)(NotificationContainer));
+/* eslint-enable */
diff --git a/src/screens/pinCode/screen/pinCodeScreen.js b/src/screens/pinCode/screen/pinCodeScreen.js
index 2271b600c..a1773a7e6 100644
--- a/src/screens/pinCode/screen/pinCodeScreen.js
+++ b/src/screens/pinCode/screen/pinCodeScreen.js
@@ -3,8 +3,7 @@ import { useIntl } from 'react-intl';
import { Text, TouchableOpacity, View } from 'react-native';
-import { NumericKeyboard, PinAnimatedInput } from '../../../components';
-import { UserAvatar } from '../../../components';
+import { NumericKeyboard, PinAnimatedInput, UserAvatar } from '../../../components';
import styles from './pinCodeStyles';
diff --git a/src/screens/post/container/postContainer.js b/src/screens/post/container/postContainer.js
index 64fbbb5ed..e20f75645 100644
--- a/src/screens/post/container/postContainer.js
+++ b/src/screens/post/container/postContainer.js
@@ -44,17 +44,6 @@ class PostContainer extends Component {
}
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { navigation } = this.props;
- const { isFetch: nextIsFetch } = get(nextProps, 'navigation.state.params');
-
- if (nextIsFetch) {
- const { author, permlink } = get(navigation, 'state.params');
-
- this._loadPost(author, permlink);
- }
- }
-
// Component Functions
_loadPost = async (author = null, permlink = null, isParentPost = false) => {
@@ -81,6 +70,17 @@ class PostContainer extends Component {
});
};
+ UNSAFE_componentWillReceiveProps(nextProps) {
+ const { navigation } = this.props;
+ const { isFetch: nextIsFetch } = get(nextProps, 'navigation.state.params');
+
+ if (nextIsFetch) {
+ const { author, permlink } = get(navigation, 'state.params');
+
+ this._loadPost(author, permlink);
+ }
+ }
+
render() {
const { currentAccount, isLoggedIn } = this.props;
const { error, isNewPost, parentPost, post, isPostUnavailable, author } = this.state;
diff --git a/src/screens/searchResult/screen/searchResultScreen.js b/src/screens/searchResult/screen/searchResultScreen.js
index 04d0682b2..567a12c6c 100644
--- a/src/screens/searchResult/screen/searchResultScreen.js
+++ b/src/screens/searchResult/screen/searchResultScreen.js
@@ -10,7 +10,7 @@ import { SearchInput, Posts, TabBar } from '../../../components';
import styles from './searchResultStyles';
import globalStyles from '../../../globalStyles';
-import { POPULAR_FILTERS, POPULAR_FILTERS_VALUE } from '../../../constants/options/filters';
+import { GLOBAL_POST_FILTERS, GLOBAL_POST_FILTERS_VALUE } from '../../../constants/options/filters';
const SearchResultScreen = ({ navigation }) => {
const tag = navigation.getParam('tag', '');
@@ -33,7 +33,7 @@ const SearchResultScreen = ({ navigation }) => {
const _getSelectedIndex = () => {
if (filter) {
- const selectedIndex = POPULAR_FILTERS_VALUE.indexOf(filter);
+ const selectedIndex = GLOBAL_POST_FILTERS_VALUE.indexOf(filter);
if (selectedIndex > 0) {
return selectedIndex;
}
@@ -54,8 +54,8 @@ const SearchResultScreen = ({ navigation }) => {
diff --git a/src/screens/settings/screen/settingsScreen.js b/src/screens/settings/screen/settingsScreen.js
index 832879ba1..86d22226f 100644
--- a/src/screens/settings/screen/settingsScreen.js
+++ b/src/screens/settings/screen/settingsScreen.js
@@ -258,3 +258,4 @@ const SettingsScreen = ({
);
};
export default injectIntl(SettingsScreen);
+/* eslint-enable */
diff --git a/src/screens/transfer/screen/delegateScreen.js b/src/screens/transfer/screen/delegateScreen.js
index edd4d6f34..6293e4cb8 100644
--- a/src/screens/transfer/screen/delegateScreen.js
+++ b/src/screens/transfer/screen/delegateScreen.js
@@ -149,6 +149,7 @@ class DelegateScreen extends Component {
parseToken(get(selectedAccount, 'delegated_vesting_shares'));
}
const fixedAmount = `${amount.toFixed(6)} VESTS`;
+ // eslint-disable-next-line max-len
const path = `sign/delegate-vesting-shares?delegator=${from}&delegatee=${destination}&vesting_shares=${encodeURIComponent(
fixedAmount,
)}`;
diff --git a/src/screens/transfer/screen/powerDownScreen.js b/src/screens/transfer/screen/powerDownScreen.js
index be92b5633..6e4cfe887 100644
--- a/src/screens/transfer/screen/powerDownScreen.js
+++ b/src/screens/transfer/screen/powerDownScreen.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/no-unused-state */
import React, { Fragment, Component } from 'react';
import { Text, View, ScrollView, Alert } from 'react-native';
import ActionSheet from 'react-native-actionsheet';
@@ -48,13 +49,6 @@ class PowerDownView extends Component {
this.stopActionSheet = React.createRef();
}
- // Component Life Cycles
- componentWillMount() {
- const { currentAccountName } = this.props;
-
- this._fetchRoutes(currentAccountName);
- }
-
// Component Functions
_fetchRoutes = username => {
@@ -189,6 +183,13 @@ class PowerDownView extends Component {
}
};
+ // Component Life Cycles
+ UNSAFE_componentWillMount() {
+ const { currentAccountName } = this.props;
+
+ this._fetchRoutes(currentAccountName);
+ }
+
render() {
const {
accounts,
@@ -366,3 +367,4 @@ class PowerDownView extends Component {
}
export default injectIntl(PowerDownView);
+/* eslint-enable */
diff --git a/src/screens/transfer/screen/transferScreen.js b/src/screens/transfer/screen/transferScreen.js
index 0ec8b0451..312e7a844 100644
--- a/src/screens/transfer/screen/transferScreen.js
+++ b/src/screens/transfer/screen/transferScreen.js
@@ -34,7 +34,7 @@ class TransferView extends Component {
destination: props.transferType === 'powerUp' ? props.currentAccountName : '',
amount: '',
memo: '',
- isUsernameValid: props.transferType === 'powerUp' && props.currentAccountName ? true : false,
+ isUsernameValid: !!(props.transferType === 'powerUp' && props.currentAccountName),
steemConnectTransfer: false,
isTransfering: false,
};
diff --git a/src/screens/voters/screen/votersScreen.js b/src/screens/voters/screen/votersScreen.js
index 14229ef31..353fbfd3a 100644
--- a/src/screens/voters/screen/votersScreen.js
+++ b/src/screens/voters/screen/votersScreen.js
@@ -23,7 +23,7 @@ const VotersScreen = ({ navigation }) => {
return (
- {({ data, filterResult, handleOnVotersDropdownSelect, handleSearch }) => (
+ {({ data, filterResult, filterIndex, handleOnVotersDropdownSelect, handleSearch }) => (
{
id: `voters_dropdown.${item}`,
}),
)}
- defaultText={intl.formatMessage({ id: `voters_dropdown.${filterOptions[0]}` })}
+ defaultText={intl.formatMessage({
+ id: `voters_dropdown.${filterOptions[filterIndex]}`,
+ })}
+ selectedOptionIndex={filterIndex}
onDropdownSelect={handleOnVotersDropdownSelect}
/>
diff --git a/src/utils/dsteemUtils.js b/src/utils/dsteemUtils.js
index 9df01d673..b65228af7 100644
--- a/src/utils/dsteemUtils.js
+++ b/src/utils/dsteemUtils.js
@@ -1,8 +1,9 @@
import createIntl from './createIntl';
+
export const getDsteemDateErrorMessage = error => {
const intl = createIntl();
const trxTime = error.jse_info.stack[0].data['trx.expiration'];
- const now = error.jse_info.stack[0].data.now;
+ const { now } = error.jse_info.stack[0].data;
return `${intl.formatMessage({
id: 'dsteem.date_error.device_time',
diff --git a/src/utils/filterNsfwPost.js b/src/utils/filterNsfwPost.js
index 1642c639e..56aeeecb1 100644
--- a/src/utils/filterNsfwPost.js
+++ b/src/utils/filterNsfwPost.js
@@ -1,3 +1,4 @@
+/* eslint-disable array-callback-return */
export default (posts, option) => {
const updatedPosts = [];
if (option === '1') {
@@ -18,3 +19,4 @@ export default (posts, option) => {
return updatedPosts;
}
};
+/* eslint-enable */
diff --git a/src/utils/postParser.js b/src/utils/postParser.js
index ba125be7b..a2b373b80 100644
--- a/src/utils/postParser.js
+++ b/src/utils/postParser.js
@@ -5,6 +5,7 @@ import get from 'lodash/get';
import { postBodySummary, renderPostBody } from '@esteemapp/esteem-render-helpers';
// Dsteem
+// eslint-disable-next-line import/no-cycle
import { getActiveVotes } from '../providers/steem/dsteem';
import { getPostReblogs } from '../providers/esteem/esteem';
diff --git a/src/utils/postUrlParser.js b/src/utils/postUrlParser.js
index 025edb03b..a0de1c2ed 100644
--- a/src/utils/postUrlParser.js
+++ b/src/utils/postUrlParser.js
@@ -46,6 +46,7 @@ export default url => {
url = url.replace('esteem://', 'https://esteem.app/');
}
+ // eslint-disable-next-line no-useless-escape
const feedMatch = url.match(/^https:\/\/([\w-\.]*)\/([\w-]*)\/?([\w-]*)\/?$/);
if (feedMatch) {
diff --git a/src/utils/vote.js b/src/utils/vote.js
index 8f36d10f4..69d61b53f 100644
--- a/src/utils/vote.js
+++ b/src/utils/vote.js
@@ -1,5 +1,5 @@
-import parseToken from './parseToken';
import get from 'lodash/get';
+import parseToken from './parseToken';
import { vestsToRshares } from './conversions';
export const getEstimatedAmount = (account, globalProps, value = 100) => {
diff --git a/src/utils/wallet.js b/src/utils/wallet.js
index 9430334cb..9479a296b 100644
--- a/src/utils/wallet.js
+++ b/src/utils/wallet.js
@@ -9,7 +9,7 @@ export const groomingTransactionData = (transaction, steemPerMVests, formatNumbe
return [];
}
- let result = { iconType: 'MaterialIcons' };
+ const result = { iconType: 'MaterialIcons' };
[result.textKey] = transaction[1].op;
const opData = transaction[1].op[1];
@@ -172,7 +172,7 @@ export const groomingPointsTransactionData = transaction => {
if (!transaction) {
return null;
}
- let result = { ...transaction };
+ const result = { ...transaction };
result.details = get(transaction, 'sender')
? `from @${get(transaction, 'sender')}`
diff --git a/yarn.lock b/yarn.lock
index 07108334d..519b5427d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7670,10 +7670,10 @@ react-native-safe-modules@^1.0.0:
dependencies:
debounce "^1.2.0"
-react-native-screens@^2.0.0-alpha.15:
- version "2.0.0-alpha.15"
- resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.0.0-alpha.15.tgz#40ee432d5f9b6169494a8fd6997add1a8c4b41b3"
- integrity sha512-Nn4PRFSKLkP0MTXwqOIhMypJ7GMhcU+AZgFJd0DFQhNyU5sLNlKGEzQS6jRY+4MtHJnDXoMOr/o2l9WrI/O3Mg==
+react-native-screens@^2.0.0-alpha.16:
+ version "2.0.0-alpha.16"
+ resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.0.0-alpha.16.tgz#4675c0e9b8cbd6b9321bfd3881b5939d61aba72b"
+ integrity sha512-CGa0LT+AksCgttrVfM3cp8VWxUz6xcInj+qCUY1Nvd2HQh4gP3WQtH3SDWvMC3pFy3CbK0CbXZz7UcZsG3pzwQ==
dependencies:
debounce "^1.2.0"
@@ -7713,10 +7713,10 @@ react-native-swiper@^1.6.0-rc.3:
dependencies:
prop-types "^15.5.10"
-react-native-tab-view@^2.9.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-2.10.0.tgz#5e249e5650502010013449ffd4e5edc18a95364b"
- integrity sha512-qgexVz5eO4yaFjdkmn/sURXgVvaBo6pZD/q1eoca96SbPVbaH3WzVhF3bRUfeTHwZkXwznFTpS3JURqIFU8vQA==
+react-native-tab-view@^2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-2.11.0.tgz#2e57d1f617ccc88c7f452708804f3409f880b700"
+ integrity sha512-vqetlxGO7A8bnqvXcB50MWpRZAImXFrDGz1WCQKdCqe03Ey3ZzENe7yLuWrtBJYlepGfOLAsmCXv+wW82Yfm1w==
react-native-vector-icons@^6.6.0:
version "6.6.0"
@@ -7813,15 +7813,15 @@ react-navigation-stack@^1.9.3:
dependencies:
prop-types "^15.7.2"
-react-navigation-tabs@^2.5.5:
- version "2.5.5"
- resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-2.5.5.tgz#f651355b140b35ef5753aac434da5e1943abdd26"
- integrity sha512-oIL5V4agCxcqbWNZzF1h/cm1bxKXNUeGrWaRQEEnuN3TXTEj1SVRz33CnKYg30pVvgF5L2p28sOk15Z4Ao01NQ==
+react-navigation-tabs@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-2.6.2.tgz#6611f3bbc5fcbc004a96a457e1dbe8d957d09ef5"
+ integrity sha512-b7Bwio3pOyb2dJOsfICm1eXUCekULO63VitLlkslsuwB5v5qXD9u+TkuSGADPiAybRH3Fts4cQX/xA5WGsIsfg==
dependencies:
hoist-non-react-statics "^3.3.0"
react-lifecycles-compat "^3.0.4"
react-native-safe-area-view "^0.14.6"
- react-native-tab-view "^2.9.0"
+ react-native-tab-view "^2.11.0"
react-navigation@^4.0.10:
version "4.0.10"