조직도와 다른 메뉴간 화면 전환 이슈 처리.
1. 조직도 > 대화 :: 대화 메뉴로 이동. 2. 프로필 > 1:1대화 :: 대화메뉴로 이동.
This commit is contained in:
parent
e8bb32b609
commit
3a591fb351
|
@ -3,6 +3,7 @@
|
|||
mat-stretch-tabs
|
||||
animationDuration="0ms"
|
||||
[backgroundColor]="'transparent'"
|
||||
[selectedIndex]="gnbMenuIndex"
|
||||
(selectedTabChange)="onSelectedTabChange($event)"
|
||||
class="global-menu"
|
||||
>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||
import { NGXLogger } from 'ngx-logger';
|
||||
import { ucapAnimations } from '@ucap-webmessenger/ui';
|
||||
import { Observable } from 'rxjs';
|
||||
import { Observable, Subscribable, Subscription } from 'rxjs';
|
||||
import { Store, select } from '@ngrx/store';
|
||||
|
||||
import * as AppStore from '@app/store';
|
||||
|
@ -9,6 +9,7 @@ import * as MessageStore from '@app/store/messenger/message';
|
|||
import * as SettingsStore from '@app/store/messenger/settings';
|
||||
import { MatTabChangeEvent } from '@angular/material/tabs';
|
||||
import { MainMenu } from '@app/types';
|
||||
import { tap, map } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'app-layout-messenger-left-nav',
|
||||
|
@ -22,6 +23,8 @@ export class LeftNaviComponent implements OnInit, OnDestroy {
|
|||
badgeMessageInterval: any;
|
||||
|
||||
MainMenu = MainMenu;
|
||||
gnbMenuIndexSubscription: Subscription;
|
||||
gnbMenuIndex: number;
|
||||
|
||||
constructor(private store: Store<any>, private logger: NGXLogger) {}
|
||||
|
||||
|
@ -41,12 +44,34 @@ export class LeftNaviComponent implements OnInit, OnDestroy {
|
|||
() => this.getMessageUnreadCount(),
|
||||
5 * 60 * 1000
|
||||
);
|
||||
|
||||
this.gnbMenuIndexSubscription = this.store
|
||||
.pipe(select(AppStore.MessengerSelector.SettingsSelector.gnbMenuIndex))
|
||||
.subscribe(index => {
|
||||
switch (index) {
|
||||
case MainMenu.Group:
|
||||
this.gnbMenuIndex = 0;
|
||||
break;
|
||||
case MainMenu.Chat:
|
||||
this.gnbMenuIndex = 1;
|
||||
break;
|
||||
case MainMenu.Organization:
|
||||
this.gnbMenuIndex = 2;
|
||||
break;
|
||||
case MainMenu.Message:
|
||||
this.gnbMenuIndex = 3;
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
if (!!this.badgeMessageInterval) {
|
||||
clearInterval(this.badgeMessageInterval);
|
||||
}
|
||||
if (!!this.gnbMenuIndexSubscription) {
|
||||
this.gnbMenuIndexSubscription.unsubscribe();
|
||||
}
|
||||
|
||||
this.logger.debug('-----------------------LeftNaviComponent ngOnDestroy');
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import * as AppStore from '@app/store';
|
|||
import { select, Store } from '@ngrx/store';
|
||||
|
||||
import { MainMenu } from '@app/types';
|
||||
import { tap } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'app-layout-messenger-main-contents',
|
||||
|
@ -33,7 +34,12 @@ export class MainContentsComponent implements OnInit {
|
|||
|
||||
ngOnInit() {
|
||||
this.gnbMenuIndex$ = this.store.pipe(
|
||||
select(AppStore.MessengerSelector.SettingsSelector.gnbMenuIndex)
|
||||
select(AppStore.MessengerSelector.SettingsSelector.gnbMenuIndex),
|
||||
tap(index => {
|
||||
if (index === MainMenu.Organization) {
|
||||
this.closeRightDrawer.emit();
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,19 +18,16 @@ import { SessionStorageService } from '@ucap-webmessenger/web-storage';
|
|||
import { Store, select } from '@ngrx/store';
|
||||
|
||||
import * as AppStore from '@app/store';
|
||||
import * as QueryStore from '@app/store/messenger/query';
|
||||
import * as SettingsStore from '@app/store/messenger/settings';
|
||||
import * as SyncStore from '@app/store/messenger/sync';
|
||||
import * as ChatStore from '@app/store/messenger/chat';
|
||||
import * as StatusStore from '@app/store/messenger/status';
|
||||
import { Observable, Subscription, combineLatest } from 'rxjs';
|
||||
import { PresenceType, StatusCode } from '@ucap-webmessenger/core';
|
||||
import {
|
||||
StatusBulkInfo,
|
||||
WorkStatusType
|
||||
} from '@ucap-webmessenger/protocol-status';
|
||||
|
||||
import { Observable, Subscription } from 'rxjs';
|
||||
import { PresenceType } from '@ucap-webmessenger/core';
|
||||
import { StatusBulkInfo } from '@ucap-webmessenger/protocol-status';
|
||||
import { VersionInfo2Response } from '@ucap-webmessenger/api-public';
|
||||
import { KEY_VER_INFO, KEY_AUTH_INFO } from '@app/types';
|
||||
import { Sort } from '@angular/material/sort';
|
||||
import { KEY_VER_INFO, KEY_AUTH_INFO, MainMenu } from '@app/types';
|
||||
|
||||
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
||||
import { tap } from 'rxjs/operators';
|
||||
import {
|
||||
|
@ -237,9 +234,17 @@ export class OrganizationComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
onClickChatOpen() {
|
||||
if (!!this.selectedUserList && this.selectedUserList.length > 0) {
|
||||
// Open Room.
|
||||
const seq: number[] = [];
|
||||
this.selectedUserList.map(user => seq.push(user.seq));
|
||||
this.store.dispatch(ChatStore.openRoom({ userSeqList: seq }));
|
||||
|
||||
// GNB Change to Chat
|
||||
this.store.dispatch(
|
||||
SettingsStore.selectedGnbMenuIndex({
|
||||
menuIndex: MainMenu.Chat
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
onClickConference() {
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
import { Component, OnInit, Inject, OnDestroy } from '@angular/core';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { KEY_LOGIN_RES_INFO, KEY_VER_INFO, KEY_AUTH_INFO } from '@app/types';
|
||||
import {
|
||||
KEY_LOGIN_RES_INFO,
|
||||
KEY_VER_INFO,
|
||||
KEY_AUTH_INFO,
|
||||
MainMenu
|
||||
} from '@app/types';
|
||||
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
|
||||
|
||||
import { Store, select } from '@ngrx/store';
|
||||
import * as AppStore from '@app/store';
|
||||
import * as ChatStore from '@app/store/messenger/chat';
|
||||
import * as SettingsStore from '@app/store/messenger/settings';
|
||||
import * as SyncStore from '@app/store/messenger/sync';
|
||||
import * as AuthenticationStore from '@app/store/account/authentication';
|
||||
|
||||
|
@ -194,6 +200,13 @@ export class ProfileDialogComponent implements OnInit, OnDestroy {
|
|||
this.store.dispatch(ChatStore.openRoom({ userSeqList: [userInfo.seq] }));
|
||||
}
|
||||
|
||||
// GNB Change to Chat
|
||||
this.store.dispatch(
|
||||
SettingsStore.selectedGnbMenuIndex({
|
||||
menuIndex: MainMenu.Chat
|
||||
})
|
||||
);
|
||||
|
||||
this.dialogRef.close({ closeEvent: 'CHAT' });
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user