Skip to content

Commit

Permalink
refactor(eslint): eslint && reformat code
Browse files Browse the repository at this point in the history
  • Loading branch information
BANG88 committed Jun 9, 2021
1 parent a02660f commit 4e40d9a
Show file tree
Hide file tree
Showing 364 changed files with 7,548 additions and 7,739 deletions.
82 changes: 10 additions & 72 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,77 +1,15 @@
const eslintrc = {
extends: ['eslint-config-airbnb'],
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
extends: ['@react-native-community'],
rules: {
'react-native/no-inline-styles': 0,
semi: [1, 'never'],
'@typescript-eslint/no-unused-vars': 1,
},
env: {
browser: true,
node: true,
mocha: true,
jest: true,
es6: true,
},
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 6,
ecmaFeatures: {
jsx: true,
experimentalObjectRestSpread: true,
},
},
plugins: [
'markdown',
'react',
'babel',
'jsx-a11y',
],
rules: {
'class-methods-use-this': 0,
'func-names': 0,
'react/sort-comp': 0,
'react/prop-types': 0,
'react/jsx-first-prop-new-line': 0,
'no-param-reassign': 0,
'no-return-assign': 0,
'max-len': 0,
'react/no-multi-comp': 0,
'array-callback-return': 0,
'import/no-unresolved': 0,
'jsx-a11y/img-has-alt': 0,
'import/extensions': 0,
'import/no-extraneous-dependencies': 0,
'react/no-string-refs': 0,
'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx', '.tsx', '.md'] }],
'react/no-array-index-key': 0,
'react/no-find-dom-node': 0,
'react/require-extension': 0,
'jsx-a11y/anchor-has-content': 0,
'jsx-a11y/href-no-hash': 0,
'jsx-a11y/no-static-element-interactions': 0,
'jsx-a11y/click-events-have-key-events': 0,
'prefer-destructuring': 0,
'jsx-a11y/anchor-is-valid': 0,
'react/jsx-no-comment-textnodes': 0,
'object-curly-newline': 0,
},
};

if (process.env.RUN_ENV === 'DEMO') {
eslintrc.globals = {
React: true,
ReactDOM: true,
mountNode: true,
AlipayJSBridge: true,
$: true,
dd: true,
process: true,
};

Object.assign(eslintrc.rules, {
'no-console': 0,
'no-alert': 0,
'no-plusplus': 0,
'import/no-webpack-loader-syntax': 0,
'eol-last': 0,
'prefer-rest-params': 0,
'react/no-multi-comp': 0,
});
}

module.exports = eslintrc;
6 changes: 4 additions & 2 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"trailingComma": "all",
"jsxBracketSameLine": true,
"singleQuote": true,
"semi": true
"semi": false,
"trailingComma": "all",
"endOfLine": "auto"
}
22 changes: 11 additions & 11 deletions components/_util/getLocale.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,39 @@ export function getComponentLocale(
componentName: string,
getDefaultLocale: () => any,
) {
let locale: any = {};
let locale: any = {}
if (context && context.antLocale && context.antLocale[componentName]) {
locale = context.antLocale[componentName];
locale = context.antLocale[componentName]
} else {
const defaultLocale = getDefaultLocale();
const defaultLocale = getDefaultLocale()
// TODO: make default lang of antd be English
// https://github.com/ant-design/ant-design/issues/6334
locale = defaultLocale.default || defaultLocale;
locale = defaultLocale.default || defaultLocale
}

let result = {
...locale,
};
}
if (props.locale) {
result = {
...result,
...props.locale,
};
}
if (props.locale.lang) {
result.lang = {
...locale.lang,
...props.locale.lang,
};
}
}
}
return result;
return result
}

export function getLocaleCode(context: any) {
const localeCode = context.antLocale && context.antLocale.locale;
const localeCode = context.antLocale && context.antLocale.locale
// Had use LocaleProvide but didn't set locale
if (context.antLocale && context.antLocale.exist && !localeCode) {
return 'zh-cn';
return 'zh-cn'
}
return localeCode;
return localeCode
}
4 changes: 2 additions & 2 deletions components/accordion/__tests__/demo.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import rnDemoTest from '../../../tests/shared/demoTest';
import rnDemoTest from '../../../tests/shared/demoTest'

rnDemoTest('accordion');
rnDemoTest('accordion')
17 changes: 8 additions & 9 deletions components/accordion/demo/basic.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
/* tslint:disable:no-console */
import React from 'react';
import { View } from 'react-native';
import { Accordion, List } from '../../';
import React from 'react'
import { View } from 'react-native'
import { Accordion, List } from '../../'

export default class AccordionExmple extends React.Component<any, any> {
state = {
activeSections: [2, 0],
};
}
onChange = (activeSections: number[]) => {
this.setState({ activeSections });
};
this.setState({ activeSections })
}
render() {
return (
<View style={{ marginTop: 80, marginBottom: 10 }}>
<Accordion
onChange={this.onChange}
activeSections={this.state.activeSections}
>
activeSections={this.state.activeSections}>
<Accordion.Panel header="Title 1">
<List>
<List.Item>Content 1</List.Item>
Expand All @@ -33,6 +32,6 @@ export default class AccordionExmple extends React.Component<any, any> {
</Accordion.Panel>
</Accordion>
</View>
);
)
}
}
102 changes: 49 additions & 53 deletions components/accordion/index.tsx
Original file line number Diff line number Diff line change
@@ -1,74 +1,70 @@

import React from 'react';
import { StyleProp, Text, View, ViewStyle } from 'react-native';
import RNAccordion, { AccordionProps } from 'react-native-collapsible/Accordion';
import Icon from '../icon';
import { WithTheme, WithThemeStyles } from '../style';
import AccordionStyles, { AccordionStyle } from './style/index';
import React from 'react'
import { StyleProp, Text, View, ViewStyle } from 'react-native'
import RNAccordion, { AccordionProps } from 'react-native-collapsible/Accordion'
import Icon from '../icon'
import { WithTheme, WithThemeStyles } from '../style'
import AccordionStyles, { AccordionStyle } from './style/index'

export interface AccordionPanelProps {
key?: string;
header: any;
key?: string
header: any
}

export interface AccordionNativeProps<T>
extends WithThemeStyles<AccordionStyle>,
Partial<AccordionProps<T>> {
style?: StyleProp<ViewStyle>;
style?: StyleProp<ViewStyle>
}
export interface AccordionHeader {
title: string;
content: React.ReactElement<any>;
style: StyleProp<ViewStyle>;
title: string
content: React.ReactElement<any>
style: StyleProp<ViewStyle>
}
class AccordionPanel extends React.Component<AccordionPanelProps, any> {
render() {
return null;
return null
}
}

class Accordion<T extends AccordionHeader> extends React.Component<
AccordionNativeProps<T>,
any
> {
static Panel: any;
static Panel: any

renderHeader = (styles: ReturnType<typeof AccordionStyles>) => (
section: T,
_: number,
isActive: boolean,
) => {
return (
<View style={[styles.header, section.style]}>
{React.isValidElement(section.title) ? (
section.title
) : (
<View style={styles.headerWrap}>
<Text style={styles.headerText}>{section.title}</Text>
renderHeader =
(styles: ReturnType<typeof AccordionStyles>) =>
(section: T, _: number, isActive: boolean) => {
return (
<View style={[styles.header, section.style]}>
{React.isValidElement(section.title) ? (
section.title
) : (
<View style={styles.headerWrap}>
<Text style={styles.headerText}>{section.title}</Text>
</View>
)}
<View style={styles.arrow}>
<Icon name={isActive ? 'up' : 'down'} style={styles.arrow} />
</View>
)}
<View style={styles.arrow}>
<Icon name={isActive ? 'up' : 'down'} style={styles.arrow} />
</View>
</View>
);
};
)
}

renderContent = (styles: ReturnType<typeof AccordionStyles>) => (
section: T,
) => {
return React.isValidElement(section.content) ? (
section.content
) : (
<View style={styles.content}>
<Text style={styles.contentText}>{section.content}</Text>
</View>
);
};
renderContent =
(styles: ReturnType<typeof AccordionStyles>) => (section: T) => {
return React.isValidElement(section.content) ? (
section.content
) : (
<View style={styles.content}>
<Text style={styles.contentText}>{section.content}</Text>
</View>
)
}

render() {
const { children, style, activeSections = [], ...rest } = this.props;
const styles = this.props.styles!;
const { children, style, activeSections = [], ...rest } = this.props
const styles = this.props.styles!

const headers: AccordionHeader[] = React.Children.map(
children,
Expand All @@ -77,18 +73,18 @@ class Accordion<T extends AccordionHeader> extends React.Component<
title: child.props.header,
content: child.props.children,
style: child.props.style || {},
};
}
},
);
)

return (
<WithTheme themeStyles={AccordionStyles} styles={styles}>
{s => (
{(s) => (
<View style={[s.container, style]}>
<RNAccordion
underlayColor="transparent"
duration={0}
{...rest as AccordionProps<T>} // TODO: props可被覆盖
{...(rest as AccordionProps<T>)} // TODO: props可被覆盖
renderHeader={this.renderHeader(s)}
renderContent={this.renderContent(s)}
sections={headers}
Expand All @@ -97,10 +93,10 @@ class Accordion<T extends AccordionHeader> extends React.Component<
</View>
)}
</WithTheme>
);
)
}
}

Accordion.Panel = AccordionPanel;
Accordion.Panel = AccordionPanel

export default Accordion;
export default Accordion
20 changes: 10 additions & 10 deletions components/accordion/style/index.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { StyleSheet, TextStyle, ViewStyle } from 'react-native';
import { Theme } from '../../style';
import { StyleSheet, TextStyle, ViewStyle } from 'react-native'
import { Theme } from '../../style'

export interface AccordionStyle {
container: ViewStyle;
header: ViewStyle;
arrow: TextStyle;
headerWrap: ViewStyle;
headerText: TextStyle;
content: ViewStyle;
contentText: TextStyle;
container: ViewStyle
header: ViewStyle
arrow: TextStyle
headerWrap: ViewStyle
headerText: TextStyle
content: ViewStyle
contentText: TextStyle
}

export default (theme: Theme) =>
Expand Down Expand Up @@ -48,4 +48,4 @@ export default (theme: Theme) =>
fontSize: theme.font_size_subhead,
color: theme.color_text_paragraph,
},
});
})
Loading

0 comments on commit 4e40d9a

Please sign in to comment.