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==