From b4a6081edd08d67cce5e7662d9a97c397ada0f68 Mon Sep 17 00:00:00 2001 From: leejinho Date: Mon, 23 Dec 2019 15:23:27 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=ED=99=94=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/messages.component.html | 21 ++- .../components/messages.component.ts | 164 +++++++++++++++++- .../src/app/store/messenger/event/actions.ts | 8 + .../src/app/store/messenger/event/effects.ts | 138 ++++++++++++++- .../src/app/store/messenger/event/reducers.ts | 21 ++- .../src/app/store/messenger/event/state.ts | 28 ++- .../lib/components/messages.component.html | 4 +- .../lib/components/messages.component.scss | 3 + .../src/lib/components/messages.component.ts | 9 +- .../src/lib/components/search.component.html | 38 ++++ .../src/lib/components/search.component.scss | 0 .../lib/components/search.component.spec.ts | 25 +++ .../src/lib/components/search.component.ts | 65 +++++++ .../src/lib/ucap-ui-chat.module.ts | 2 + 14 files changed, 496 insertions(+), 30 deletions(-) create mode 100644 projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.html create mode 100644 projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.scss create mode 100644 projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.spec.ts create mode 100644 projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.ts diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html index fd16cfc2..a3250c41 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html @@ -127,6 +127,13 @@ > 파일함 + + + {{ curIndex }} / {{ totalCount }} + + +
+ + + +
+ diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.scss b/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.spec.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.spec.ts new file mode 100644 index 00000000..43729199 --- /dev/null +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SearchComponent } from './search.component'; + +describe('SearchComponent', () => { + let component: SearchComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ SearchComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SearchComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.ts new file mode 100644 index 00000000..e07dbddd --- /dev/null +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/search.component.ts @@ -0,0 +1,65 @@ +import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { FormGroup, FormBuilder } from '@angular/forms'; +import { NGXLogger } from 'ngx-logger'; + +@Component({ + selector: 'ucap-chat-search', + templateUrl: './search.component.html', + styleUrls: ['./search.component.scss'] +}) +export class SearchComponent implements OnInit { + @Input() + totalCount = 0; + @Input() + curIndex = 0; + + @Output() + searchText = new EventEmitter(); + @Output() + prevSearch = new EventEmitter(); + @Output() + nextSearch = new EventEmitter(); + @Output() + searchAndPrev = new EventEmitter(); + @Output() + closeSearchArea = new EventEmitter(); + + fgSearch: FormGroup; + isSearch = false; + + constructor(private formBuilder: FormBuilder, private logger: NGXLogger) {} + + ngOnInit() { + this.fgSearch = this.formBuilder.group({ + searchInput: null + }); + } + + onClickSearchCancel() { + this.isSearch = false; + this.fgSearch.reset(); + this.closeSearchArea.emit(); + } + + onKeyDownEnter(event: KeyboardEvent, search: string) { + event.preventDefault(); + event.stopPropagation(); + + if (search.trim().length > 0) { + this.isSearch = true; + this.searchText.emit(search.trim()); + } else { + this.isSearch = false; + } + } + + onClickPrevSearch() { + this.prevSearch.emit(); + } + onClickNextSearch() { + this.nextSearch.emit(); + } + onClickSearchAndPrev() { + this.searchAndPrev.emit(); + } +} diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/ucap-ui-chat.module.ts b/projects/ucap-webmessenger-ui-chat/src/lib/ucap-ui-chat.module.ts index 6df9d258..0b239885 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/ucap-ui-chat.module.ts +++ b/projects/ucap-webmessenger-ui-chat/src/lib/ucap-ui-chat.module.ts @@ -31,10 +31,12 @@ import { TextComponent as MBTextComponent } from './components/message-box/text. import { TranslationComponent as MBTranslationComponent } from './components/message-box/translation.component'; import { VideoComponent as MBVideoComponent } from './components/message-box/video.component'; import { VideoConferenceComponent as MBVideoConferenceComponent } from './components/message-box/video-conference.component'; +import { SearchComponent } from './components/search.component'; const COMPONENTS = [ FormComponent, MessagesComponent, + SearchComponent, MBDateSplitterComponent, MBFileComponent,