mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
add displayName functionality to reuse component in scm-review-plugin.
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { translate } from "react-i18next";
|
import { translate } from "react-i18next";
|
||||||
import TagGroup from "../TagGroup";
|
import type { DisplayedUser } from "@scm-manager/ui-types";
|
||||||
|
import TagGroup from "./TagGroup";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
members: string[],
|
members: string[],
|
||||||
@@ -12,10 +13,12 @@ type Props = {
|
|||||||
class MemberNameTagGroup extends React.Component<Props> {
|
class MemberNameTagGroup extends React.Component<Props> {
|
||||||
render() {
|
render() {
|
||||||
const { members, t } = this.props;
|
const { members, t } = this.props;
|
||||||
|
const membersExtended = members.map(id => {
|
||||||
|
return { id, displayName: id, mail: "" };
|
||||||
|
});
|
||||||
return (
|
return (
|
||||||
<TagGroup
|
<TagGroup
|
||||||
items={members}
|
items={membersExtended}
|
||||||
label={t("group.members")}
|
label={t("group.members")}
|
||||||
helpText={t("groupForm.help.memberHelpText")}
|
helpText={t("groupForm.help.memberHelpText")}
|
||||||
onRemove={this.removeEntry}
|
onRemove={this.removeEntry}
|
||||||
@@ -23,8 +26,11 @@ class MemberNameTagGroup extends React.Component<Props> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeEntry = (member: string[]) => {
|
removeEntry = (membersExtended: DisplayedUser[]) => {
|
||||||
this.props.memberListChanged(member);
|
const members = membersExtended.map(function(item) {
|
||||||
|
return item["id"];
|
||||||
|
});
|
||||||
|
this.props.memberListChanged(members);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import injectSheet from "react-jss";
|
import injectSheet from "react-jss";
|
||||||
import { Help, Tag } from "./index";
|
import type { DisplayedUser } from "@scm-manager/ui-types";
|
||||||
|
import { Help, Tag } from "../index";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
items: string[],
|
items: DisplayedUser[],
|
||||||
label: string,
|
label: string,
|
||||||
helpText?: string,
|
helpText?: string,
|
||||||
onRemove: (string[]) => void,
|
onRemove: (DisplayedUser[]) => void,
|
||||||
|
|
||||||
// context props
|
// context props
|
||||||
classes: Object
|
classes: Object
|
||||||
@@ -45,7 +46,7 @@ class TagGroup extends React.Component<Props> {
|
|||||||
<div className="tags has-addons">
|
<div className="tags has-addons">
|
||||||
<Tag
|
<Tag
|
||||||
color="info is-outlined"
|
color="info is-outlined"
|
||||||
label={item}
|
label={item.displayName}
|
||||||
onRemove={() => this.removeEntry(item)}
|
onRemove={() => this.removeEntry(item)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -56,7 +57,7 @@ class TagGroup extends React.Component<Props> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeEntry = (item: string) => {
|
removeEntry = item => {
|
||||||
const newItems = this.props.items.filter(name => name !== item);
|
const newItems = this.props.items.filter(name => name !== item);
|
||||||
this.props.onRemove(newItems);
|
this.props.onRemove(newItems);
|
||||||
};
|
};
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
export { default as AddEntryToTableField } from "./AddEntryToTableField.js";
|
export { default as AddEntryToTableField } from "./AddEntryToTableField.js";
|
||||||
export { default as AutocompleteAddEntryToTableField } from "./AutocompleteAddEntryToTableField.js";
|
export { default as AutocompleteAddEntryToTableField } from "./AutocompleteAddEntryToTableField.js";
|
||||||
|
export { default as TagGroup } from "./TagGroup.js";
|
||||||
export { default as MemberNameTagGroup } from "./MemberNameTagGroup.js";
|
export { default as MemberNameTagGroup } from "./MemberNameTagGroup.js";
|
||||||
export { default as Checkbox } from "./Checkbox.js";
|
export { default as Checkbox } from "./Checkbox.js";
|
||||||
export { default as Radio } from "./Radio.js";
|
export { default as Radio } from "./Radio.js";
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ export { default as ProtectedRoute } from "./ProtectedRoute.js";
|
|||||||
export { default as Help } from "./Help";
|
export { default as Help } from "./Help";
|
||||||
export { default as HelpIcon } from "./HelpIcon";
|
export { default as HelpIcon } from "./HelpIcon";
|
||||||
export { default as Tag } from "./Tag";
|
export { default as Tag } from "./Tag";
|
||||||
export { default as TagGroup } from "./TagGroup";
|
|
||||||
export { default as Tooltip } from "./Tooltip";
|
export { default as Tooltip } from "./Tooltip";
|
||||||
// TODO do we need this? getPageFromMatch is already exported by urls
|
// TODO do we need this? getPageFromMatch is already exported by urls
|
||||||
export { getPageFromMatch } from "./urls";
|
export { getPageFromMatch } from "./urls";
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
//@flow
|
//@flow
|
||||||
import type { Links } from "./hal";
|
import type { Links } from "./hal";
|
||||||
|
|
||||||
|
export type DisplayedUser = {
|
||||||
|
id: string,
|
||||||
|
displayName: string,
|
||||||
|
mail: string
|
||||||
|
};
|
||||||
|
|
||||||
export type User = {
|
export type User = {
|
||||||
displayName: string,
|
displayName: string,
|
||||||
name: string,
|
name: string,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export type { Action } from "./Action";
|
|||||||
export type { Link, Links, Collection, PagedCollection } from "./hal";
|
export type { Link, Links, Collection, PagedCollection } from "./hal";
|
||||||
|
|
||||||
export type { Me } from "./Me";
|
export type { Me } from "./Me";
|
||||||
export type { User } from "./User";
|
export type { DisplayedUser, User } from "./User";
|
||||||
export type { Group, Member } from "./Group";
|
export type { Group, Member } from "./Group";
|
||||||
|
|
||||||
export type { Repository, RepositoryCollection, RepositoryGroup } from "./Repositories";
|
export type { Repository, RepositoryCollection, RepositoryGroup } from "./Repositories";
|
||||||
|
|||||||
Reference in New Issue
Block a user