[Gekidou] groups (#5593)

* Rename groups in channel/team to group channel/team

* Redefine groups schema

* Groups action and operator

* Add group at mentions

* fix uni test

* Update types/database/models/servers/group.d.ts

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
This commit is contained in:
Elias Nahum
2021-08-05 11:03:46 -04:00
committed by GitHub
parent 0ef1dd44ea
commit 65c3e05fd8
33 changed files with 386 additions and 209 deletions

View File

@@ -5,6 +5,9 @@ import {General, Preferences} from '@constants';
import {UserModel} from '@database/models/server';
import {DEFAULT_LOCALE, getLocalizedMessage, t} from '@i18n';
import type GroupModel from '@typings/database/models/servers/group';
import type GroupMembershipModel from '@typings/database/models/servers/group_membership';
export function displayUsername(user?: UserProfile | UserModel, locale?: string, teammateDisplayNameSetting?: string, useFallbackUsername = true) {
let name = useFallbackUsername ? getLocalizedMessage(locale || DEFAULT_LOCALE, t('channel_loader.someone'), 'Someone') : '';
@@ -94,7 +97,7 @@ export const getUsersByUsername = (users: UserModel[]) => {
return usersByUsername;
};
export const getUserMentionKeys = (user: UserModel) => {
export const getUserMentionKeys = (user: UserModel, groups: GroupModel[], userGroups: GroupMembershipModel[]) => {
const keys: UserMentionKey[] = [];
if (!user.notifyProps) {
@@ -123,5 +126,17 @@ export const getUserMentionKeys = (user: UserModel) => {
keys.push({key: usernameKey});
}
if (groups.length && userGroups.length) {
const groupMentions = userGroups.reduce((result: Array<{key: string}>, ug: GroupMembershipModel) => {
const group = groups.find((g) => ug.groupId === g.id);
if (group) {
result.push({key: `@${group.name}`});
}
return result;
}, []);
keys.push(...groupMentions);
}
return keys;
};