diff --git a/.eslintrc.json b/.eslintrc.json
index 3e9fc02bf..b076ff36a 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -5,15 +5,18 @@
"prettier",
"plugin:prettier/recommended",
"plugin:eslint-comments/recommended",
+ "eslint:recommended",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:jest/recommended",
- "@react-native-community"
+ "@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",
@@ -32,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],
@@ -45,7 +48,7 @@
"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": "off",
"react/destructuring-assignment": [1, "always"],
@@ -54,13 +57,7 @@
{
"devDependencies": true
}
- ]
- },
- "settings": {
- "import/resolver": {
- "node": {
- "extensions": [".js", ".jsx"]
- }
- }
+ ],
+ "import/no-unresolved": "off"
}
}
diff --git a/package.json b/package.json
index 03ecbcbb8..c00e0480e 100644
--- a/package.json
+++ b/package.json
@@ -95,6 +95,7 @@
"@babel/core": "^7.6.2",
"@babel/runtime": "^7.6.2",
"@react-native-community/eslint-config": "^0.0.5",
+ "@typescript-eslint/parser": "^2.10.0",
"babel-eslint": "^10.0.1",
"babel-jest": "^24.9.0",
"babel-preset-react-native": "~5.0.2",
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/bottomTabBar/view/tabbar.js b/src/components/bottomTabBar/view/tabbar.js
index 5b8f1ee27..90f5aec06 100644
--- a/src/components/bottomTabBar/view/tabbar.js
+++ b/src/components/bottomTabBar/view/tabbar.js
@@ -97,6 +97,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,
@@ -126,6 +127,7 @@ export default class TabBar extends Component {
pathX}.941653,71.4462087 ${31 + pathX}.454074,80.6628108 Z`}
/>
(this._myCircle = ref)}
fill={circleBackgroundColor}
cx={circleRadius}
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/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/index.js b/src/components/index.js
index 95e61eae2..8bf7cd499 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -38,7 +38,7 @@ import { SearchModal } from './searchModal';
import { SettingsItem } from './settingsItem';
import { SideMenu } from './sideMenu';
-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/notification/view/notificationView.js b/src/components/notification/view/notificationView.js
index 2c142f968..a25dd9b0f 100644
--- a/src/components/notification/view/notificationView.js
+++ b/src/components/notification/view/notificationView.js
@@ -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/postCard/container/postCardContainer.js b/src/components/postCard/container/postCardContainer.js
index 29c28a937..c63f84421 100644
--- a/src/components/postCard/container/postCardContainer.js
+++ b/src/components/postCard/container/postCardContainer.js
@@ -24,12 +24,6 @@ class PostCardContainer extends PureComponent {
};
}
- UNSAFE_componentWillReceiveProps(nextProps) {
- if (get(nextProps, 'isRefresh')) {
- this._fetchPost();
- }
- }
-
_handleOnUserPress = () => {
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 5c36943c7..2ced532b4 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/view/postsView.js b/src/components/posts/view/postsView.js
index 4ba6af774..c366d6562 100644
--- a/src/components/posts/view/postsView.js
+++ b/src/components/posts/view/postsView.js
@@ -397,3 +397,4 @@ const PostsView = ({
};
export default withNavigation(PostsView);
+/* eslint-enable */
diff --git a/src/components/scaleSlider/scaleSliderView.js b/src/components/scaleSlider/scaleSliderView.js
index 71e0f0663..2461924a0 100644
--- a/src/components/scaleSlider/scaleSliderView.js
+++ b/src/components/scaleSlider/scaleSliderView.js
@@ -1,3 +1,4 @@
+/* eslint-disable react/no-unused-state */
import React, { Component } from 'react';
import { View, Dimensions, Text } from 'react-native';
import MultiSlider from '@ptomasroos/react-native-multi-slider';
@@ -82,3 +83,4 @@ export default class ScaleSliderView extends Component {
);
}
}
+/* eslint-enable */
diff --git a/src/components/spinGame/spinGameView.js b/src/components/spinGame/spinGameView.js
index 2b09606b9..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';
@@ -98,3 +99,4 @@ const SpinGameView = ({
};
export { SpinGameView as SpinGame };
+/* eslint-enable */
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/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 ae9f80a95..42a51632c 100644
--- a/src/components/walletHeader/view/walletHeaderView.js
+++ b/src/components/walletHeader/view/walletHeaderView.js
@@ -113,3 +113,4 @@ const WalletHeaderView = ({
};
export default withNavigation(WalletHeaderView);
+/* eslint-enable */
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/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 abcddda00..4a1b0bdb6 100644
--- a/src/containers/profileContainer.js
+++ b/src/containers/profileContainer.js
@@ -399,3 +399,4 @@ const mapStateToProps = state => ({
});
export default connect(mapStateToProps)(withNavigation(ProfileContainer));
+/* eslint-enable */
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/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 3d83e3e31..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';
@@ -178,3 +179,4 @@ const mapStateToProps = state => ({
});
export default injectIntl(connect(mapStateToProps)(NotificationContainer));
+/* eslint-enable */
diff --git a/src/screens/transfer/screen/powerDownScreen.js b/src/screens/transfer/screen/powerDownScreen.js
index 65742ab48..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';
@@ -366,3 +367,4 @@ class PowerDownView extends Component {
}
export default injectIntl(PowerDownView);
+/* eslint-enable */
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/yarn.lock b/yarn.lock
index c0d20ea2f..070e39575 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1582,6 +1582,15 @@
"@typescript-eslint/typescript-estree" "1.13.0"
eslint-scope "^4.0.0"
+"@typescript-eslint/experimental-utils@2.10.0":
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.10.0.tgz#8db1656cdfd3d9dcbdbf360b8274dea76f0b2c2c"
+ integrity sha512-FZhWq6hWWZBP76aZ7bkrfzTMP31CCefVIImrwP3giPLcoXocmLTmr92NLZxuIcTL4GTEOE33jQMWy9PwelL+yQ==
+ dependencies:
+ "@types/json-schema" "^7.0.3"
+ "@typescript-eslint/typescript-estree" "2.10.0"
+ eslint-scope "^5.0.0"
+
"@typescript-eslint/parser@^1.5.0":
version "1.13.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.13.0.tgz#61ac7811ea52791c47dc9fd4dd4a184fae9ac355"
@@ -1592,6 +1601,16 @@
"@typescript-eslint/typescript-estree" "1.13.0"
eslint-visitor-keys "^1.0.0"
+"@typescript-eslint/parser@^2.10.0":
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.10.0.tgz#24b2e48384ab6d5a6121e4c4faf8892c79657ad3"
+ integrity sha512-wQNiBokcP5ZsTuB+i4BlmVWq6o+oAhd8en2eSm/EE9m7BgZUIfEeYFd6z3S+T7bgNuloeiHA1/cevvbBDLr98g==
+ dependencies:
+ "@types/eslint-visitor-keys" "^1.0.0"
+ "@typescript-eslint/experimental-utils" "2.10.0"
+ "@typescript-eslint/typescript-estree" "2.10.0"
+ eslint-visitor-keys "^1.1.0"
+
"@typescript-eslint/typescript-estree@1.13.0":
version "1.13.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e"
@@ -1600,6 +1619,19 @@
lodash.unescape "4.0.1"
semver "5.5.0"
+"@typescript-eslint/typescript-estree@2.10.0":
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.10.0.tgz#89cdabd5e8c774e9d590588cb42fb9afd14dcbd9"
+ integrity sha512-oOYnplddQNm/LGVkqbkAwx4TIBuuZ36cAQq9v3nFIU9FmhemHuVzAesMSXNQDdAzCa5bFgCrfD3JWhYVKlRN2g==
+ dependencies:
+ debug "^4.1.1"
+ eslint-visitor-keys "^1.1.0"
+ glob "^7.1.6"
+ is-glob "^4.0.1"
+ lodash.unescape "4.0.1"
+ semver "^6.3.0"
+ tsutils "^3.17.1"
+
abab@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d"
@@ -3578,6 +3610,14 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
+eslint-scope@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
+ integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
eslint-utils@^1.3.1:
version "1.4.2"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab"
@@ -3585,7 +3625,7 @@ eslint-utils@^1.3.1:
dependencies:
eslint-visitor-keys "^1.0.0"
-eslint-visitor-keys@^1.0.0:
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
@@ -4338,6 +4378,18 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.6:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
globals@^11.0.1, globals@^11.1.0, globals@^11.7.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -4902,7 +4954,7 @@ is-generator-fn@^2.0.0:
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-is-glob@^4.0.0:
+is-glob@^4.0.0, is-glob@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -8411,7 +8463,7 @@ semver@5.5.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
-semver@^6.0.0, semver@^6.2.0:
+semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -9182,7 +9234,7 @@ tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
-tsutils@^3.7.0:
+tsutils@^3.17.1, tsutils@^3.7.0:
version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==