diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html index e7308559..0dfd4d00 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html @@ -65,6 +65,11 @@ > - diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts index 4c36499a..87983add 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts @@ -212,6 +212,10 @@ export class LeftSideComponent implements OnInit, OnDestroy { this.showLeftDrawerToggle = false; } + onClickLeftDrawerToggle() { + this.store.dispatch(ChatStore.toggleLeftSideDrawer()); + } + async onClickNewChat(type: string = 'NORMAL') { const result = await this.dialogService.open< CreateChatDialogComponent, diff --git a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html index 9e46be73..8544e4eb 100644 --- a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html +++ b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html @@ -4,7 +4,7 @@ - + { + if (leftSideDrawer) { + this.leftSideDrawer.open(); + } else { + this.leftSideDrawer.close(); + } + }); + this.idleStateChangedSubscription = this.nativeService .idleStateChanged() .subscribe(action => { @@ -218,6 +232,10 @@ export class MainPageComponent implements OnInit, OnDestroy { this.myIdleCheckTimeSubscription.unsubscribe(); } + if (!!this.leftSideDrawerSubscription) { + this.leftSideDrawerSubscription.unsubscribe(); + } + this.logger.debug('-----------------------MainPageComponent ngOnDestroy'); } diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/actions.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/actions.ts index cc3f7e8e..0954354a 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/actions.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/actions.ts @@ -53,3 +53,7 @@ export const clearRightDrawer = createAction( '[Messenger::Chat] Clear Right Drawer', props() ); + +export const toggleLeftSideDrawer = createAction( + '[Messenger::Chat] Toggle Left Side Drawer' +); diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/reducers.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/reducers.ts index 4e2d4aab..b7c52629 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/reducers.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/reducers.ts @@ -8,7 +8,8 @@ import { massTalkDownloadSuccess, clearSelectedRoom, selectedRightDrawer, - clearRightDrawer + clearRightDrawer, + toggleLeftSideDrawer } from './actions'; import * as AuthenticationStore from '@app/store/account/authentication'; @@ -61,6 +62,12 @@ export const reducer = createReducer( selectedRightDrawer: action.req }; }), + on(toggleLeftSideDrawer, (state, action) => { + return { + ...state, + leftSideDrawer: !state.leftSideDrawer + }; + }), on(clearRightDrawer, (state, action) => { return { ...state, diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/state.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/state.ts index aefa6492..446d00ff 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/state.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/state.ts @@ -7,13 +7,15 @@ export interface State { massDetailProcessing: boolean; selectedRightDrawer: string | null; + leftSideDrawer: boolean; } export const initialState: State = { selectedRoom: null, selectedMassDetail: null, massDetailProcessing: false, - selectedRightDrawer: '' + selectedRightDrawer: '', + leftSideDrawer: true }; export function selectors(selector: Selector) { @@ -29,6 +31,10 @@ export function selectors(selector: Selector) { selectedRightDrawer: createSelector( selector, (state: State) => state.selectedRightDrawer + ), + selectLeftSideDrawer: createSelector( + selector, + (state: State) => state.leftSideDrawer ) }; }