Skip to content

Commit 6f1106b

Browse files
committed
fix: #137 Fix the technology list
1 parent c772336 commit 6f1106b

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/app/modules/shared/components/details-fields/details-fields.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
</div>
6060

6161
<div *ngIf="isLoading">LOADING...</div>
62-
<div *ngIf="technology" class="d-flex flex-column technology-content">
62+
<div #list *ngIf="technology && showlist" class="d-flex flex-column technology-content">
6363
<div
6464
*ngFor="let item of technology.items"
6565
(click)="setTechnology(item.name)"

src/app/modules/shared/components/details-fields/details-fields.component.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ describe('DetailsFieldsComponent', () => {
8282
length = value.length;
8383
component.getTechnologies(value);
8484

85+
expect(component.showlist).toBe(true);
8586
expect(store.dispatch).toHaveBeenCalledWith(new actions.FindTechnology(value));
8687
});
8788

src/app/modules/shared/components/details-fields/details-fields.component.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
import { Component, OnChanges, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
1+
import {
2+
Component,
3+
OnChanges,
4+
OnInit,
5+
Input,
6+
Output,
7+
EventEmitter,
8+
ViewChild,
9+
ElementRef,
10+
Renderer2,
11+
} from '@angular/core';
212
import { FormBuilder, FormGroup } from '@angular/forms';
313
import { Store, select } from '@ngrx/store';
414
import * as actions from '../../store/technology.actions';
@@ -23,14 +33,21 @@ export class DetailsFieldsComponent implements OnChanges, OnInit {
2333
@Input() formType: string;
2434
@Output() saveEntry = new EventEmitter();
2535
@ViewChild('closeModal') closeModal: ElementRef;
36+
@ViewChild('list') list: ElementRef;
2637
entryForm: FormGroup;
2738
technology: Technology;
2839
selectedTechnology: string[] = [];
2940
isLoading = false;
3041
listProjects: Project[] = [];
3142
keyword = 'name';
43+
showlist: boolean;
3244

33-
constructor(private formBuilder: FormBuilder, private store: Store<Merged>) {
45+
constructor(private formBuilder: FormBuilder, private store: Store<Merged>, private renderer: Renderer2) {
46+
this.renderer.listen('window', 'click', (e: Event) => {
47+
if (this.showlist && !this.list.nativeElement.contains(e.target)) {
48+
this.showlist = false;
49+
}
50+
});
3451
this.entryForm = this.formBuilder.group({
3552
project: '',
3653
activity: '',
@@ -68,6 +85,7 @@ export class DetailsFieldsComponent implements OnChanges, OnInit {
6885

6986
getTechnologies(value) {
7087
if (value.length >= 2) {
88+
this.showlist = true;
7189
this.store.dispatch(new actions.FindTechnology(value));
7290
}
7391
}

0 commit comments

Comments
 (0)