mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 06:25:45 +01:00
refactoring
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
//@flow
|
||||||
|
import React from "react";
|
||||||
|
import {Help} from "./index";
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
label: string,
|
||||||
|
helpText?: string
|
||||||
|
};
|
||||||
|
|
||||||
|
class LabelWithHelpIcon extends React.Component<Props> {
|
||||||
|
|
||||||
|
renderLabel = () => {
|
||||||
|
const label = this.props.label;
|
||||||
|
if (label) {
|
||||||
|
return <label className="label">{label}</label>;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
};
|
||||||
|
|
||||||
|
renderHelp = () => {
|
||||||
|
const helpText = this.props.helpText;
|
||||||
|
if(helpText){
|
||||||
|
return (
|
||||||
|
<div className="control columns is-vcentered">
|
||||||
|
<Help message={helpText} />
|
||||||
|
</div>);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
renderLabelWithHelpIcon = () => {
|
||||||
|
if(this.props.label){
|
||||||
|
return(
|
||||||
|
<div className="field is-grouped">
|
||||||
|
<div className="control">
|
||||||
|
{this.renderLabel()}
|
||||||
|
</div>
|
||||||
|
{this.renderHelp()}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
this.renderLabelWithHelpIcon()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default LabelWithHelpIcon;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import {Help, Page} from "../index";
|
import {LabelWithHelpIcon} from "../index";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
label?: string,
|
label?: string,
|
||||||
@@ -35,26 +35,6 @@ class InputField extends React.Component<Props> {
|
|||||||
this.props.onChange(event.target.value);
|
this.props.onChange(event.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
renderLabel = () => {
|
|
||||||
const label = this.props.label;
|
|
||||||
if (label) {
|
|
||||||
return <label className="label">{label}</label>;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
};
|
|
||||||
|
|
||||||
renderHelp = () => {
|
|
||||||
const helpText = this.props.helpText;
|
|
||||||
if(helpText){
|
|
||||||
return (
|
|
||||||
<div className="control columns is-vcentered">
|
|
||||||
<Help message={helpText} />
|
|
||||||
</div>);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
handleKeyPress = (event: SyntheticKeyboardEvent<HTMLInputElement>) => {
|
handleKeyPress = (event: SyntheticKeyboardEvent<HTMLInputElement>) => {
|
||||||
const onReturnPressed = this.props.onReturnPressed;
|
const onReturnPressed = this.props.onReturnPressed;
|
||||||
if (!onReturnPressed) {
|
if (!onReturnPressed) {
|
||||||
@@ -73,7 +53,9 @@ class InputField extends React.Component<Props> {
|
|||||||
value,
|
value,
|
||||||
validationError,
|
validationError,
|
||||||
errorMessage,
|
errorMessage,
|
||||||
disabled
|
disabled,
|
||||||
|
label,
|
||||||
|
helpText
|
||||||
} = this.props;
|
} = this.props;
|
||||||
const errorView = validationError ? "is-danger" : "";
|
const errorView = validationError ? "is-danger" : "";
|
||||||
const helper = validationError ? (
|
const helper = validationError ? (
|
||||||
@@ -83,12 +65,10 @@ class InputField extends React.Component<Props> {
|
|||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<div className="field">
|
<div className="field">
|
||||||
<div className="field is-grouped">
|
<LabelWithHelpIcon
|
||||||
<div className="control">
|
label={label}
|
||||||
{this.renderLabel()}
|
helpText={helpText}
|
||||||
</div>
|
/>
|
||||||
{this.renderHelp()}
|
|
||||||
</div>
|
|
||||||
<div className="control">
|
<div className="control">
|
||||||
<input
|
<input
|
||||||
ref={input => {
|
ref={input => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import {Help} from "../index";
|
import {LabelWithHelpIcon} from "../index";
|
||||||
|
|
||||||
export type SelectItem = {
|
export type SelectItem = {
|
||||||
value: string,
|
value: string,
|
||||||
@@ -30,33 +30,15 @@ class Select extends React.Component<Props> {
|
|||||||
this.props.onChange(event.target.value);
|
this.props.onChange(event.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
renderLabel = () => {
|
|
||||||
const label = this.props.label;
|
|
||||||
if (label) {
|
|
||||||
return <label className="label">{label}</label>;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
};
|
|
||||||
|
|
||||||
renderHelp = () => {
|
|
||||||
const helpText = this.props.helpText;
|
|
||||||
if(helpText){
|
|
||||||
return (
|
|
||||||
<div className="control columns is-vcentered">
|
|
||||||
<Help message={helpText} />
|
|
||||||
</div>);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { options, value } = this.props;
|
const { options, value, label, helpText } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="field">
|
<div className="field">
|
||||||
{this.renderLabel()}
|
<LabelWithHelpIcon
|
||||||
<div className="field is-grouped">
|
label={label}
|
||||||
|
helpText={helpText}
|
||||||
|
/>
|
||||||
<div className="control select">
|
<div className="control select">
|
||||||
<select
|
<select
|
||||||
ref={input => {
|
ref={input => {
|
||||||
@@ -74,8 +56,6 @@ class Select extends React.Component<Props> {
|
|||||||
})}
|
})}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{this.renderHelp()}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import {Help} from "../index";
|
import {LabelWithHelpIcon} from "../index";
|
||||||
|
|
||||||
export type SelectItem = {
|
export type SelectItem = {
|
||||||
value: string,
|
value: string,
|
||||||
@@ -22,37 +22,15 @@ class Textarea extends React.Component<Props> {
|
|||||||
this.props.onChange(event.target.value);
|
this.props.onChange(event.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
renderLabel = () => {
|
|
||||||
const label = this.props.label;
|
|
||||||
if (label) {
|
|
||||||
return <label className="label">{label}</label>;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
};
|
|
||||||
|
|
||||||
renderHelp = () => {
|
|
||||||
const helpText = this.props.helpText;
|
|
||||||
if(helpText){
|
|
||||||
return (
|
|
||||||
<div className="control columns is-vcentered">
|
|
||||||
<Help message={helpText} />
|
|
||||||
</div>);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { placeholder, value } = this.props;
|
const { placeholder, value, label, helpText } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="field">
|
<div className="field">
|
||||||
<div className="field is-grouped">
|
<LabelWithHelpIcon
|
||||||
<div className="control">
|
label={label}
|
||||||
{this.renderLabel()}
|
helpText={helpText}
|
||||||
</div>
|
/>
|
||||||
{this.renderHelp()}
|
|
||||||
</div>
|
|
||||||
<div className="control">
|
<div className="control">
|
||||||
<textarea
|
<textarea
|
||||||
className="textarea"
|
className="textarea"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ export { default as Notification } from "./Notification.js";
|
|||||||
export { default as Paginator } from "./Paginator.js";
|
export { default as Paginator } from "./Paginator.js";
|
||||||
export { default as ProtectedRoute } from "./ProtectedRoute.js";
|
export { default as ProtectedRoute } from "./ProtectedRoute.js";
|
||||||
export { default as Help } from "./Help.js";
|
export { default as Help } from "./Help.js";
|
||||||
|
export { default as LabelWithHelpIcon } from "./LabelWithHelpIcon.js";
|
||||||
|
|
||||||
|
|
||||||
export { apiClient, NOT_FOUND_ERROR, UNAUTHORIZED_ERROR } from "./apiclient.js";
|
export { apiClient, NOT_FOUND_ERROR, UNAUTHORIZED_ERROR } from "./apiclient.js";
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ class AdminSettings extends React.Component<Props> {
|
|||||||
buttonLabel={t("admin-settings.add-group-button")}
|
buttonLabel={t("admin-settings.add-group-button")}
|
||||||
fieldLabel={t("admin-settings.add-group-textfield")}
|
fieldLabel={t("admin-settings.add-group-textfield")}
|
||||||
errorMessage={t("admin-settings.add-group-error")}
|
errorMessage={t("admin-settings.add-group-error")}
|
||||||
helpText={t("help.adminGroupsHelpText")}
|
|
||||||
/>
|
/>
|
||||||
<AdminUserTable
|
<AdminUserTable
|
||||||
adminUsers={adminUsers}
|
adminUsers={adminUsers}
|
||||||
@@ -48,7 +47,6 @@ class AdminSettings extends React.Component<Props> {
|
|||||||
buttonLabel={t("admin-settings.add-user-button")}
|
buttonLabel={t("admin-settings.add-user-button")}
|
||||||
fieldLabel={t("admin-settings.add-user-textfield")}
|
fieldLabel={t("admin-settings.add-user-textfield")}
|
||||||
errorMessage={t("admin-settings.add-user-error")}
|
errorMessage={t("admin-settings.add-user-error")}
|
||||||
helpText={t("help.adminUsersHelpText")}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class AdminGroupTable extends React.Component<Props, State> {
|
|||||||
removeLabel={t("admin-settings.remove-group-button")}
|
removeLabel={t("admin-settings.remove-group-button")}
|
||||||
onRemove={this.removeEntry}
|
onRemove={this.removeEntry}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
|
helpText={t("help.adminGroupsHelpText")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class AdminUserTable extends React.Component<Props> {
|
|||||||
removeLabel={t("admin-settings.remove-user-button")}
|
removeLabel={t("admin-settings.remove-user-button")}
|
||||||
onRemove={this.removeEntry}
|
onRemove={this.removeEntry}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
|
helpText={t("help.adminUsersHelpText")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { RemoveEntryOfTableButton } from "@scm-manager/ui-components";
|
import { RemoveEntryOfTableButton, LabelWithHelpIcon } from "@scm-manager/ui-components";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
items: string[],
|
items: string[],
|
||||||
label: string,
|
label: string,
|
||||||
removeLabel: string,
|
removeLabel: string,
|
||||||
onRemove: (string[], string) => void,
|
onRemove: (string[], string) => void,
|
||||||
disabled: boolean
|
disabled: boolean,
|
||||||
|
helpText: string
|
||||||
};
|
};
|
||||||
|
|
||||||
class ArrayConfigTable extends React.Component<Props> {
|
class ArrayConfigTable extends React.Component<Props> {
|
||||||
render() {
|
render() {
|
||||||
const { label, disabled, removeLabel, items } = this.props;
|
const { label, disabled, removeLabel, items, helpText } = this.props;
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<label className="label">{label}</label>
|
<LabelWithHelpIcon label={label} helpText={helpText}/>
|
||||||
<table className="table is-hoverable is-fullwidth">
|
<table className="table is-hoverable is-fullwidth">
|
||||||
<tbody>
|
<tbody>
|
||||||
{items.map(item => {
|
{items.map(item => {
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ class GroupForm extends React.Component<Props, State> {
|
|||||||
buttonLabel={t("add-member-button.label")}
|
buttonLabel={t("add-member-button.label")}
|
||||||
fieldLabel={t("add-member-textfield.label")}
|
fieldLabel={t("add-member-textfield.label")}
|
||||||
errorMessage={t("add-member-textfield.error")}
|
errorMessage={t("add-member-textfield.error")}
|
||||||
helpText={t("group-form.help.membersHelpText")}
|
|
||||||
/>
|
/>
|
||||||
<SubmitButton
|
<SubmitButton
|
||||||
disabled={!this.isValid()}
|
disabled={!this.isValid()}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { translate } from "react-i18next";
|
import { translate } from "react-i18next";
|
||||||
import { RemoveEntryOfTableButton } from "@scm-manager/ui-components";
|
import {
|
||||||
|
RemoveEntryOfTableButton,
|
||||||
|
LabelWithHelpIcon
|
||||||
|
} from "@scm-manager/ui-components";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
members: string[],
|
members: string[],
|
||||||
@@ -16,7 +19,10 @@ class MemberNameTable extends React.Component<Props, State> {
|
|||||||
const { t } = this.props;
|
const { t } = this.props;
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<label className="label">{t("group.members")}</label>
|
<LabelWithHelpIcon
|
||||||
|
label={t("group.members")}
|
||||||
|
helpText={t("group-form.help.membersHelpText")}
|
||||||
|
/>
|
||||||
<table className="table is-hoverable is-fullwidth">
|
<table className="table is-hoverable is-fullwidth">
|
||||||
<tbody>
|
<tbody>
|
||||||
{this.props.members.map(member => {
|
{this.props.members.map(member => {
|
||||||
|
|||||||
Reference in New Issue
Block a user