diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts index 44d7729e..e539bb7c 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts @@ -161,6 +161,50 @@ export class GroupComponent implements OnInit, OnDestroy { ]) .pipe( map(([buddyList, groupList]) => { + // sort.. + if (!!groupList && groupList.length > 0) { + const tempOrderArr: GroupDetailData[] = []; + let myDeptGroup: GroupDetailData; + let defaultGroup: GroupDetailData; + + groupList.forEach(group => { + if ( + !!environment.productConfig.CommonSetting.useMyDeptGroup && + environment.productConfig.CommonSetting.myDeptGroupSeq === + group.seq + ) { + myDeptGroup = group; + } + + if (0 === group.seq) { + defaultGroup = group; + } + }); + + if (!!myDeptGroup) { + tempOrderArr.push(myDeptGroup); + } + + tempOrderArr.push( + ...groupList + .filter( + group => + group.seq !== + environment.productConfig.CommonSetting.myDeptGroupSeq && + group.seq !== 0 + ) + .sort((a, b) => + a.name < b.name ? -1 : a.name > b.name ? 1 : 0 + ) + ); + + if (!!defaultGroup) { + tempOrderArr.push(defaultGroup); + } + + groupList = tempOrderArr; + } + const groupBuddyList: { group: GroupDetailData; buddyList: UserInfo[]; @@ -569,10 +613,7 @@ export class GroupComponent implements OnInit, OnDestroy { } } - onClickOpenProfile( - userSeq: number, - group: GroupDetailData - ) { + onClickOpenProfile(userSeq: number, group: GroupDetailData) { this.openProfile.emit({ userSeq, openProfileOptions: {