From 34ccf9c4c92da83b359baab8f7a8c7288cc635c8 Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Mon, 3 Aug 2020 17:18:50 +0200 Subject: [PATCH] Improve collapsible components to match linter --- .../Collapsible/CollapsibleComponent.js | 84 ++++++++++--------- .../Collapsible/CollapsibleFlatList.js | 36 ++++---- .../Collapsible/CollapsibleScrollView.js | 36 ++++---- .../Collapsible/CollapsibleSectionList.js | 36 ++++---- 4 files changed, 100 insertions(+), 92 deletions(-) diff --git a/src/components/Collapsible/CollapsibleComponent.js b/src/components/Collapsible/CollapsibleComponent.js index d982b6a..c9be36f 100644 --- a/src/components/Collapsible/CollapsibleComponent.js +++ b/src/components/Collapsible/CollapsibleComponent.js @@ -1,51 +1,59 @@ // @flow import * as React from 'react'; -import {withCollapsible} from "../../utils/withCollapsible"; -import {Collapsible} from "react-navigation-collapsible"; -import CustomTabBar from "../Tabbar/CustomTabBar"; +import {Collapsible} from 'react-navigation-collapsible'; +import {withCollapsible} from '../../utils/withCollapsible'; +import CustomTabBar from '../Tabbar/CustomTabBar'; -export type CollapsibleComponentProps = { - children?: React.Node, - hasTab?: boolean, - onScroll?: (event: SyntheticEvent) => void, +export type CollapsibleComponentPropsType = { + children?: React.Node, + hasTab?: boolean, + onScroll?: (event: SyntheticEvent) => void, }; -type Props = { - ...CollapsibleComponentProps, - collapsibleStack: Collapsible, - component: any, -} +type PropsType = { + ...CollapsibleComponentPropsType, + collapsibleStack: Collapsible, + // eslint-disable-next-line flowtype/no-weak-types + component: any, +}; -class CollapsibleComponent extends React.Component { +class CollapsibleComponent extends React.Component { + static defaultProps = { + children: null, + hasTab: false, + onScroll: null, + }; - static defaultProps = { - hasTab: false, - } + onScroll = (event: SyntheticEvent) => { + const {props} = this; + if (props.onScroll) props.onScroll(event); + }; - onScroll = (event: SyntheticEvent) => { - if (this.props.onScroll) - this.props.onScroll(event); - } + render(): React.Node { + const {props} = this; + const Comp = props.component; + const { + containerPaddingTop, + scrollIndicatorInsetTop, + onScrollWithListener, + } = props.collapsibleStack; - render() { - const Comp = this.props.component; - const {containerPaddingTop, scrollIndicatorInsetTop, onScrollWithListener} = this.props.collapsibleStack; - return ( - - {this.props.children} - - ); - } + return ( + + {props.children} + + ); + } } export default withCollapsible(CollapsibleComponent); diff --git a/src/components/Collapsible/CollapsibleFlatList.js b/src/components/Collapsible/CollapsibleFlatList.js index 398688b..5906ff9 100644 --- a/src/components/Collapsible/CollapsibleFlatList.js +++ b/src/components/Collapsible/CollapsibleFlatList.js @@ -1,26 +1,26 @@ // @flow import * as React from 'react'; -import {Animated} from "react-native"; -import type {CollapsibleComponentProps} from "./CollapsibleComponent"; -import CollapsibleComponent from "./CollapsibleComponent"; +import {Animated} from 'react-native'; +import type {CollapsibleComponentPropsType} from './CollapsibleComponent'; +import CollapsibleComponent from './CollapsibleComponent'; -type Props = { - ...CollapsibleComponentProps -} +type PropsType = { + ...CollapsibleComponentPropsType, +}; -class CollapsibleFlatList extends React.Component { - - render() { - return ( - - {this.props.children} - - ); - } +// eslint-disable-next-line react/prefer-stateless-function +class CollapsibleFlatList extends React.Component { + render(): React.Node { + const {props} = this; + return ( + + {props.children} + + ); + } } export default CollapsibleFlatList; diff --git a/src/components/Collapsible/CollapsibleScrollView.js b/src/components/Collapsible/CollapsibleScrollView.js index 831e925..3569ca9 100644 --- a/src/components/Collapsible/CollapsibleScrollView.js +++ b/src/components/Collapsible/CollapsibleScrollView.js @@ -1,26 +1,26 @@ // @flow import * as React from 'react'; -import {Animated} from "react-native"; -import type {CollapsibleComponentProps} from "./CollapsibleComponent"; -import CollapsibleComponent from "./CollapsibleComponent"; +import {Animated} from 'react-native'; +import type {CollapsibleComponentPropsType} from './CollapsibleComponent'; +import CollapsibleComponent from './CollapsibleComponent'; -type Props = { - ...CollapsibleComponentProps -} +type PropsType = { + ...CollapsibleComponentPropsType, +}; -class CollapsibleScrollView extends React.Component { - - render() { - return ( - - {this.props.children} - - ); - } +// eslint-disable-next-line react/prefer-stateless-function +class CollapsibleScrollView extends React.Component { + render(): React.Node { + const {props} = this; + return ( + + {props.children} + + ); + } } export default CollapsibleScrollView; diff --git a/src/components/Collapsible/CollapsibleSectionList.js b/src/components/Collapsible/CollapsibleSectionList.js index cb8f6f0..8a93f14 100644 --- a/src/components/Collapsible/CollapsibleSectionList.js +++ b/src/components/Collapsible/CollapsibleSectionList.js @@ -1,26 +1,26 @@ // @flow import * as React from 'react'; -import {Animated} from "react-native"; -import type {CollapsibleComponentProps} from "./CollapsibleComponent"; -import CollapsibleComponent from "./CollapsibleComponent"; +import {Animated} from 'react-native'; +import type {CollapsibleComponentPropsType} from './CollapsibleComponent'; +import CollapsibleComponent from './CollapsibleComponent'; -type Props = { - ...CollapsibleComponentProps -} +type PropsType = { + ...CollapsibleComponentPropsType, +}; -class CollapsibleSectionList extends React.Component { - - render() { - return ( - - {this.props.children} - - ); - } +// eslint-disable-next-line react/prefer-stateless-function +class CollapsibleSectionList extends React.Component { + render(): React.Node { + const {props} = this; + return ( + + {props.children} + + ); + } } export default CollapsibleSectionList;