review changes

This commit is contained in:
Florian Scholdei
2019-06-18 15:20:44 +02:00
parent 252034f30b
commit ff354a5fee
4 changed files with 21 additions and 46 deletions

View File

@@ -1,34 +1,24 @@
// @flow // @flow
import React from "react"; import React from "react";
import { translate } from "react-i18next"; import { translate } from "react-i18next";
import type { SelectValue } from "@scm-manager/ui-types"; import type AutocompleteProps from "./UserGroupAutocomplete";
import UserGroupAutocomplete from "./UserGroupAutocomplete"; import UserGroupAutocomplete from "./UserGroupAutocomplete";
type Props = { type Props = AutocompleteProps & {
groupAutocompleteLink: string,
valueSelected: SelectValue => void,
value?: SelectValue,
// Context props // Context props
t: string => string t: string => string
}; };
class GroupAutocomplete extends React.Component<Props> { class GroupAutocomplete extends React.Component<Props> {
selectName = (selection: SelectValue) => {
this.props.valueSelected(selection);
};
render() { render() {
const { groupAutocompleteLink, t, value } = this.props; const { t } = this.props;
return ( return (
<UserGroupAutocomplete <UserGroupAutocomplete
autocompleteLink={groupAutocompleteLink}
label={t("autocomplete.group")} label={t("autocomplete.group")}
noOptionsMessage={t("autocomplete.noGroupOptions")} noOptionsMessage={t("autocomplete.noGroupOptions")}
loadingMessage={t("autocomplete.loading")} loadingMessage={t("autocomplete.loading")}
placeholder={t("autocomplete.groupPlaceholder")} placeholder={t("autocomplete.groupPlaceholder")}
valueSelected={this.selectName} {...this.props}
value={value}
/> />
); );
} }

View File

@@ -1,34 +1,24 @@
// @flow // @flow
import React from "react"; import React from "react";
import { translate } from "react-i18next"; import { translate } from "react-i18next";
import type { SelectValue } from "@scm-manager/ui-types"; import type AutocompleteProps from "./UserGroupAutocomplete";
import UserGroupAutocomplete from "./UserGroupAutocomplete"; import UserGroupAutocomplete from "./UserGroupAutocomplete";
type Props = { type Props = AutocompleteProps & {
userAutocompleteLink: string,
valueSelected: SelectValue => void,
value?: SelectValue,
// Context props // Context props
t: string => string t: string => string
}; };
class UserAutocomplete extends React.Component<Props> { class UserAutocomplete extends React.Component<Props> {
selectName = (selection: SelectValue) => {
this.props.valueSelected(selection);
};
render() { render() {
const { userAutocompleteLink, t, value } = this.props; const { t } = this.props;
return ( return (
<UserGroupAutocomplete <UserGroupAutocomplete
autocompleteLink={userAutocompleteLink}
label={t("autocomplete.user")} label={t("autocomplete.user")}
noOptionsMessage={t("autocomplete.noUserOptions")} noOptionsMessage={t("autocomplete.noUserOptions")}
loadingMessage={t("autocomplete.loading")} loadingMessage={t("autocomplete.loading")}
placeholder={t("autocomplete.userPlaceholder")} placeholder={t("autocomplete.userPlaceholder")}
valueSelected={this.selectName} {...this.props}
value={value}
/> />
); );
} }

View File

@@ -3,17 +3,20 @@ import React from "react";
import type { SelectValue } from "@scm-manager/ui-types"; import type { SelectValue } from "@scm-manager/ui-types";
import Autocomplete from "./Autocomplete"; import Autocomplete from "./Autocomplete";
type Props = { export type AutocompleteProps = {
autocompleteLink: string, autocompleteLink: string,
label: string,
noOptionsMessage: string,
loadingMessage: string,
placeholder: string,
valueSelected: SelectValue => void, valueSelected: SelectValue => void,
value?: SelectValue value?: SelectValue
}; };
class UserGroupAutocomplete extends React.Component<Props> { type Props = AutocompleteProps & {
label: string,
noOptionsMessage: string,
loadingMessage: string,
placeholder: string
};
export default class UserGroupAutocomplete extends React.Component<Props> {
loadSuggestions = (inputValue: string) => { loadSuggestions = (inputValue: string) => {
const url = this.props.autocompleteLink; const url = this.props.autocompleteLink;
const link = url + "?q="; const link = url + "?q=";
@@ -37,21 +40,13 @@ class UserGroupAutocomplete extends React.Component<Props> {
}; };
render() { render() {
const { autocompleteLink, label, noOptionsMessage, loadingMessage, placeholder, value } = this.props;
return ( return (
<Autocomplete <Autocomplete
autocompleteLink={autocompleteLink}
label={label}
noOptionsMessage={noOptionsMessage}
loadingMessage={loadingMessage}
placeholder={placeholder}
loadSuggestions={this.loadSuggestions} loadSuggestions={this.loadSuggestions}
valueSelected={this.selectName} valueSelected={this.selectName}
value={value}
creatable={true} creatable={true}
{...this.props}
/> />
); // {...this.props} );
} }
} }
export default UserGroupAutocomplete;

View File

@@ -74,7 +74,7 @@ class CreatePermissionForm extends React.Component<Props, State> {
if (group) { if (group) {
return ( return (
<GroupAutocomplete <GroupAutocomplete
groupAutocompleteLink={this.props.groupAutocompleteLink} autocompleteLink={this.props.groupAutocompleteLink}
valueSelected={this.selectName} valueSelected={this.selectName}
value={this.state.value ? this.state.value : ""} value={this.state.value ? this.state.value : ""}
/> />
@@ -82,7 +82,7 @@ class CreatePermissionForm extends React.Component<Props, State> {
} }
return ( return (
<UserAutocomplete <UserAutocomplete
userAutocompleteLink={this.props.userAutocompleteLink} autocompleteLink={this.props.userAutocompleteLink}
valueSelected={this.selectName} valueSelected={this.selectName}
value={this.state.value ? this.state.value : ""} value={this.state.value ? this.state.value : ""}
/> />