diff --git a/scm-ui-components/packages/ui-components/src/forms/MemberNameTagGroup.js b/scm-ui-components/packages/ui-components/src/forms/MemberNameTagGroup.js index 67fa022a9e..20a078619d 100644 --- a/scm-ui-components/packages/ui-components/src/forms/MemberNameTagGroup.js +++ b/scm-ui-components/packages/ui-components/src/forms/MemberNameTagGroup.js @@ -1,7 +1,8 @@ //@flow import React from "react"; import { translate } from "react-i18next"; -import TagGroup from "../TagGroup"; +import type { DisplayedUser } from "@scm-manager/ui-types"; +import TagGroup from "./TagGroup"; type Props = { members: string[], @@ -12,10 +13,12 @@ type Props = { class MemberNameTagGroup extends React.Component { render() { const { members, t } = this.props; - + const membersExtended = members.map(id => { + return { id, displayName: id, mail: "" }; + }); return ( { ); } - removeEntry = (member: string[]) => { - this.props.memberListChanged(member); + removeEntry = (membersExtended: DisplayedUser[]) => { + const members = membersExtended.map(function(item) { + return item["id"]; + }); + this.props.memberListChanged(members); }; } diff --git a/scm-ui-components/packages/ui-components/src/TagGroup.js b/scm-ui-components/packages/ui-components/src/forms/TagGroup.js similarity index 85% rename from scm-ui-components/packages/ui-components/src/TagGroup.js rename to scm-ui-components/packages/ui-components/src/forms/TagGroup.js index 0688f449d3..ff72753b02 100644 --- a/scm-ui-components/packages/ui-components/src/TagGroup.js +++ b/scm-ui-components/packages/ui-components/src/forms/TagGroup.js @@ -1,13 +1,14 @@ //@flow import * as React from "react"; 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 = { - items: string[], + items: DisplayedUser[], label: string, helpText?: string, - onRemove: (string[]) => void, + onRemove: (DisplayedUser[]) => void, // context props classes: Object @@ -45,7 +46,7 @@ class TagGroup extends React.Component {
this.removeEntry(item)} />
@@ -56,7 +57,7 @@ class TagGroup extends React.Component { ); } - removeEntry = (item: string) => { + removeEntry = item => { const newItems = this.props.items.filter(name => name !== item); this.props.onRemove(newItems); }; diff --git a/scm-ui-components/packages/ui-components/src/forms/index.js b/scm-ui-components/packages/ui-components/src/forms/index.js index d7393e1573..1aeadd9531 100644 --- a/scm-ui-components/packages/ui-components/src/forms/index.js +++ b/scm-ui-components/packages/ui-components/src/forms/index.js @@ -2,6 +2,7 @@ export { default as AddEntryToTableField } from "./AddEntryToTableField.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 Checkbox } from "./Checkbox.js"; export { default as Radio } from "./Radio.js"; diff --git a/scm-ui-components/packages/ui-components/src/index.js b/scm-ui-components/packages/ui-components/src/index.js index d872eadc49..1745dd8576 100644 --- a/scm-ui-components/packages/ui-components/src/index.js +++ b/scm-ui-components/packages/ui-components/src/index.js @@ -24,7 +24,6 @@ export { default as ProtectedRoute } from "./ProtectedRoute.js"; export { default as Help } from "./Help"; export { default as HelpIcon } from "./HelpIcon"; export { default as Tag } from "./Tag"; -export { default as TagGroup } from "./TagGroup"; export { default as Tooltip } from "./Tooltip"; // TODO do we need this? getPageFromMatch is already exported by urls export { getPageFromMatch } from "./urls"; diff --git a/scm-ui-components/packages/ui-types/src/User.js b/scm-ui-components/packages/ui-types/src/User.js index f0c5e1e6ef..69bebcbdf0 100644 --- a/scm-ui-components/packages/ui-types/src/User.js +++ b/scm-ui-components/packages/ui-types/src/User.js @@ -1,6 +1,12 @@ //@flow import type { Links } from "./hal"; +export type DisplayedUser = { + id: string, + displayName: string, + mail: string +}; + export type User = { displayName: string, name: string, diff --git a/scm-ui-components/packages/ui-types/src/index.js b/scm-ui-components/packages/ui-types/src/index.js index 9207868a73..158fee9372 100644 --- a/scm-ui-components/packages/ui-types/src/index.js +++ b/scm-ui-components/packages/ui-types/src/index.js @@ -3,7 +3,7 @@ export type { Action } from "./Action"; export type { Link, Links, Collection, PagedCollection } from "./hal"; export type { Me } from "./Me"; -export type { User } from "./User"; +export type { DisplayedUser, User } from "./User"; export type { Group, Member } from "./Group"; export type { Repository, RepositoryCollection, RepositoryGroup } from "./Repositories";