mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-03-04 02:02:39 -05:00
chore: fix react/jsx-no-bind issues
enable react/jsx-max-props-per-line
This commit is contained in:
parent
2a30f5263a
commit
1421546baf
4 changed files with 60 additions and 40 deletions
|
@ -82,8 +82,8 @@
|
||||||
"react/jsx-indent-props": ["error", 2],
|
"react/jsx-indent-props": ["error", 2],
|
||||||
"react/jsx-key": ["error"],
|
"react/jsx-key": ["error"],
|
||||||
"react/jsx-max-depth": ["warn", { "max": 2}],
|
"react/jsx-max-depth": ["warn", { "max": 2}],
|
||||||
"react/jsx-max-props-per-line": ["warn", {"maximum": 3, "when": "multiline" }],
|
"react/jsx-max-props-per-line": ["error", {"maximum": 3, "when": "multiline" }],
|
||||||
"react/jsx-no-bind": ["warn"],
|
"react/jsx-no-bind": ["error"],
|
||||||
"react/jsx-no-comment-textnodes": ["warn"],
|
"react/jsx-no-comment-textnodes": ["warn"],
|
||||||
"react/jsx-no-duplicate-props": ["warn"],
|
"react/jsx-no-duplicate-props": ["warn"],
|
||||||
"react/jsx-no-literals": ["warn"],
|
"react/jsx-no-literals": ["warn"],
|
||||||
|
|
|
@ -96,30 +96,32 @@ const AutoComplete = ({
|
||||||
onSuggestionsFetchRequested: onSuggestionsFetch,
|
onSuggestionsFetchRequested: onSuggestionsFetch,
|
||||||
onSuggestionsClearRequested: onCleanSuggestions,
|
onSuggestionsClearRequested: onCleanSuggestions,
|
||||||
};
|
};
|
||||||
|
const inputProps = {
|
||||||
|
value,
|
||||||
|
onChange,
|
||||||
|
placeholder,
|
||||||
|
startAdornment,
|
||||||
|
disableUnderline,
|
||||||
|
color,
|
||||||
|
onKeyDown,
|
||||||
|
onBlur,
|
||||||
|
};
|
||||||
|
|
||||||
|
// this format avoid arrow function eslint rule
|
||||||
|
function renderSuggestionsContainer({ containerProps, children, query }) {
|
||||||
|
return (
|
||||||
|
<Paper {...containerProps} square={true}>
|
||||||
|
{suggestionsLoaded && children === null && query && renderMessage(SUGGESTIONS_RESPONSE.NO_RESULT)}
|
||||||
|
{suggestionsLoading && query && renderMessage(SUGGESTIONS_RESPONSE.LOADING)}
|
||||||
|
{suggestionsError && renderMessage(SUGGESTIONS_RESPONSE.FAILURE)}
|
||||||
|
{children}
|
||||||
|
</Paper>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Wrapper>
|
<Wrapper>
|
||||||
<Autosuggest
|
<Autosuggest {...autosuggestProps} inputProps={inputProps} onSuggestionSelected={onClick} renderSuggestionsContainer={renderSuggestionsContainer} />
|
||||||
{...autosuggestProps}
|
|
||||||
inputProps={{
|
|
||||||
value,
|
|
||||||
onChange,
|
|
||||||
placeholder,
|
|
||||||
startAdornment,
|
|
||||||
disableUnderline,
|
|
||||||
color,
|
|
||||||
onKeyDown,
|
|
||||||
onBlur,
|
|
||||||
}}
|
|
||||||
onSuggestionSelected={onClick}
|
|
||||||
renderSuggestionsContainer={({ containerProps, children, query }) => (
|
|
||||||
<Paper {...containerProps} square={true}>
|
|
||||||
{suggestionsLoaded && children === null && query && renderMessage(SUGGESTIONS_RESPONSE.NO_RESULT)}
|
|
||||||
{suggestionsLoading && query && renderMessage(SUGGESTIONS_RESPONSE.LOADING)}
|
|
||||||
{suggestionsError && renderMessage(SUGGESTIONS_RESPONSE.FAILURE)}
|
|
||||||
{children}
|
|
||||||
</Paper>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,9 +31,6 @@ export default class LoginModal extends Component {
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.submitCredentials = this.submitCredentials.bind(this);
|
|
||||||
this.setCredentials = this.setCredentials.bind(this);
|
|
||||||
this.validateCredentials = this.validateCredentials.bind(this);
|
|
||||||
this.state = {
|
this.state = {
|
||||||
form: {
|
form: {
|
||||||
username: {
|
username: {
|
||||||
|
@ -57,7 +54,7 @@ export default class LoginModal extends Component {
|
||||||
* set login modal's username and password to current state
|
* set login modal's username and password to current state
|
||||||
* Required to login
|
* Required to login
|
||||||
*/
|
*/
|
||||||
setCredentials(name, e) {
|
setCredentials = (name, e) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
form: {
|
form: {
|
||||||
...this.state.form,
|
...this.state.form,
|
||||||
|
@ -70,7 +67,15 @@ export default class LoginModal extends Component {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
validateCredentials(event) {
|
setUsername = (event) => {
|
||||||
|
this.setCredentials('username', event);
|
||||||
|
}
|
||||||
|
|
||||||
|
setPassword = (event) => {
|
||||||
|
this.setCredentials('password', event);
|
||||||
|
}
|
||||||
|
|
||||||
|
validateCredentials = (event) => {
|
||||||
// prevents default submit behavior
|
// prevents default submit behavior
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
|
@ -86,7 +91,7 @@ export default class LoginModal extends Component {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async submitCredentials() {
|
submitCredentials = async () => {
|
||||||
const { form: { username, password } } = this.state;
|
const { form: { username, password } } = this.state;
|
||||||
await this.props.onSubmit(username.value, password.value);
|
await this.props.onSubmit(username.value, password.value);
|
||||||
// let's wait for API response and then set
|
// let's wait for API response and then set
|
||||||
|
@ -99,8 +104,8 @@ export default class LoginModal extends Component {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
renderMessage(title, description) {
|
renderErrorMessage(title, description) {
|
||||||
const errorMessage = (
|
return (
|
||||||
<span>
|
<span>
|
||||||
<div>
|
<div>
|
||||||
<strong>
|
<strong>
|
||||||
|
@ -111,13 +116,15 @@ export default class LoginModal extends Component {
|
||||||
{description}
|
{description}
|
||||||
</div>
|
</div>
|
||||||
</span>);
|
</span>);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderMessage(title, description) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={classes.loginErrorMsg}
|
className={classes.loginErrorMsg}
|
||||||
id={"client-snackbar"}>
|
id={"client-snackbar"}>
|
||||||
<ErrorIcon className={classes.loginIcon} />
|
<ErrorIcon className={classes.loginIcon} />
|
||||||
{errorMessage()}
|
{this.renderErrorMessage(title, description)}
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +148,7 @@ export default class LoginModal extends Component {
|
||||||
onClose={onCancel}
|
onClose={onCancel}
|
||||||
open={visibility}
|
open={visibility}
|
||||||
>
|
>
|
||||||
<form noValidate={true} onSubmit={this.validateCredentials.bind(this)}>
|
<form noValidate={true} onSubmit={this.validateCredentials}>
|
||||||
<DialogTitle>Login</DialogTitle>
|
<DialogTitle>Login</DialogTitle>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
{this.renderLoginError(error)}
|
{this.renderLoginError(error)}
|
||||||
|
@ -153,7 +160,7 @@ export default class LoginModal extends Component {
|
||||||
<InputLabel htmlFor={"username"}>Username</InputLabel>
|
<InputLabel htmlFor={"username"}>Username</InputLabel>
|
||||||
<Input
|
<Input
|
||||||
id={"login--form-username"}
|
id={"login--form-username"}
|
||||||
onChange={this.setCredentials.bind(this, 'username')}
|
onChange={this.setUsername}
|
||||||
placeholder={"Your username"}
|
placeholder={"Your username"}
|
||||||
value={username.value}
|
value={username.value}
|
||||||
/>
|
/>
|
||||||
|
@ -172,7 +179,7 @@ export default class LoginModal extends Component {
|
||||||
<InputLabel htmlFor={"password"}>Password</InputLabel>
|
<InputLabel htmlFor={"password"}>Password</InputLabel>
|
||||||
<Input
|
<Input
|
||||||
id={"login--form-password"}
|
id={"login--form-password"}
|
||||||
onChange={this.setCredentials.bind(this, 'password')}
|
onChange={this.setPassword}
|
||||||
placeholder={"Your strong password"}
|
placeholder={"Your strong password"}
|
||||||
type={"password"}
|
type={"password"}
|
||||||
value={password.value}
|
value={password.value}
|
||||||
|
|
|
@ -20,17 +20,28 @@ interface IState {}
|
||||||
|
|
||||||
class RouterApp extends Component<IProps, IState> {
|
class RouterApp extends Component<IProps, IState> {
|
||||||
render() {
|
render() {
|
||||||
const { isUserLoggedIn, packages } = this.props;
|
|
||||||
return (
|
return (
|
||||||
<Router>
|
<Router>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route exact={true} path={'/'} render={() => <HomePage isUserLoggedIn={isUserLoggedIn} packages={packages} />} />
|
<Route exact={true} path={'/'} render={this.renderHomePage} />
|
||||||
<Route exact={true} path={'/detail/@:scope/:package'} render={props => <DetailPackage {...props} isUserLoggedIn={isUserLoggedIn} />} />
|
<Route exact={true} path={'/detail/@:scope/:package'} render={this.renderDetailPage} />
|
||||||
<Route exact={true} path={'/detail/:package'} render={props => <DetailPackage {...props} isUserLoggedIn={isUserLoggedIn} />} />
|
<Route exact={true} path={'/detail/:package'} render={this.renderDetailPage} />
|
||||||
</Switch>
|
</Switch>
|
||||||
</Router>
|
</Router>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderHomePage = () => {
|
||||||
|
const { isUserLoggedIn, packages } = this.props;
|
||||||
|
|
||||||
|
return <HomePage isUserLoggedIn={isUserLoggedIn} packages={packages} />;
|
||||||
|
};
|
||||||
|
|
||||||
|
renderDetailPage = () => {
|
||||||
|
const { isUserLoggedIn } = this.props;
|
||||||
|
|
||||||
|
return <DetailPackage {...this.props} isUserLoggedIn={isUserLoggedIn} />;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default RouterApp;
|
export default RouterApp;
|
||||||
|
|
Loading…
Add table
Reference in a new issue