Files
SCM-Manager/scm-ui/ui-webapp/src/admin/components/table/ArrayConfigTable.js

50 lines
1.3 KiB
JavaScript
Raw Normal View History

//@flow
import React from "react";
2018-10-02 13:34:04 +02:00
import { RemoveEntryOfTableButton, LabelWithHelpIcon } from "@scm-manager/ui-components";
type Props = {
items: string[],
label: string,
removeLabel: string,
onRemove: (string[], string) => void,
2018-10-02 13:34:04 +02:00
disabled: boolean,
helpText: string
};
class ArrayConfigTable extends React.Component<Props> {
render() {
2018-10-02 13:34:04 +02:00
const { label, disabled, removeLabel, items, helpText } = this.props;
return (
<div>
2018-10-02 13:34:04 +02:00
<LabelWithHelpIcon label={label} helpText={helpText}/>
<table className="table is-hoverable is-fullwidth">
<tbody>
{items.map(item => {
return (
<tr key={item}>
<td>{item}</td>
<td>
<RemoveEntryOfTableButton
entryname={item}
removeEntry={this.removeEntry}
disabled={disabled}
label={removeLabel}
/>
</td>
</tr>
);
})}
</tbody>
</table>
</div>
);
}
removeEntry = (item: string) => {
const newItems = this.props.items.filter(name => name !== item);
this.props.onRemove(newItems, item);
};
}
export default ArrayConfigTable;