diff options
Diffstat (limited to 'src/client/util/GroupManager.tsx')
-rw-r--r-- | src/client/util/GroupManager.tsx | 60 |
1 files changed, 7 insertions, 53 deletions
diff --git a/src/client/util/GroupManager.tsx b/src/client/util/GroupManager.tsx index b14dcf55b..83b206f94 100644 --- a/src/client/util/GroupManager.tsx +++ b/src/client/util/GroupManager.tsx @@ -33,7 +33,7 @@ export default class GroupManager extends React.Component<{}> { @observable private selectedUsers: UserOptions[] | null = null; // list of users selected in the "Select users" dropdown. @observable currentGroup: Opt<Doc>; // the currently selected group. private inputRef: React.RefObject<HTMLInputElement> = React.createRef(); // the ref for the input box. - private currentUserGroups: Doc[] = []; + currentUserGroups: string[] = []; constructor(props: Readonly<{}>) { super(props); @@ -51,7 +51,7 @@ export default class GroupManager extends React.Component<{}> { DocListCastAsync(this.GroupManagerDoc?.data).then(groups => { groups?.forEach(group => { const members: string[] = JSON.parse(StrCast(group.members)); - if (members.includes(Doc.CurrentUserEmail)) this.currentUserGroups.push(group); + if (members.includes(Doc.CurrentUserEmail)) this.currentUserGroups.push(StrCast(group.groupName)); }); }) .finally(() => console.log(this.currentUserGroups)); @@ -82,11 +82,6 @@ export default class GroupManager extends React.Component<{}> { return this.users.map(user => ({ label: user, value: user })); } - - get groupMemberships() { - return this.currentUserGroups; - } - /** * Makes the GroupManager visible. */ @@ -151,6 +146,11 @@ export default class GroupManager extends React.Component<{}> { ); } + getGroupMembers(group: string | Doc): string[] { + if (group instanceof Doc) return JSON.parse(StrCast(group.members)) as string[]; + else return JSON.parse(StrCast(this.getGroup(group)!.members)) as string[]; + } + /** * @returns the members of the admin group. */ @@ -280,52 +280,6 @@ export default class GroupManager extends React.Component<{}> { } /** - * A getter that @returns the interface rendered to view an individual group. - */ - // private get editingInterface() { - // const members: string[] = this.currentGroup ? JSON.parse(StrCast(this.currentGroup.members)) : []; - // const options: UserOptions[] = this.currentGroup ? this.options.filter(option => !(JSON.parse(StrCast(this.currentGroup!.members)) as string[]).includes(option.value)) : []; - // return (!this.currentGroup ? null : - // <div className="editing-interface"> - // <div className="editing-header"> - // <b>{this.currentGroup.groupName}</b> - // <div className={"close-button"} onClick={action(() => this.currentGroup = undefined)}> - // <FontAwesomeIcon icon={fa.faWindowClose} size={"lg"} /> - // </div> - - // {this.hasEditAccess(this.currentGroup) ? - // <div className="group-buttons"> - // <div className="add-member-dropdown"> - // <Select - // // isMulti={true} - // isSearchable={true} - // options={options} - // onChange={selectedOption => this.addMemberToGroup(this.currentGroup!, (selectedOption as UserOptions).value)} - // placeholder={"Add members"} - // value={null} - // closeMenuOnSelect={true} - // /> - // </div> - // <button onClick={() => this.deleteGroup(this.currentGroup!)}>Delete group</button> - // </div> : - // null} - // </div> - // <div className="editing-contents"> - // {members.map(member => ( - // <div className="editing-row"> - // <div className="user-email"> - // {member} - // </div> - // {this.hasEditAccess(this.currentGroup!) ? <button onClick={() => this.removeMemberFromGroup(this.currentGroup!, member)}> Remove </button> : null} - // </div> - // ))} - // </div> - // </div> - // ); - - // } - - /** * A getter that @returns the main interface for the GroupManager. */ private get groupInterface() { |