import { Component, OnInit } from '@angular/core';

import { SearchService, AutoCompletionEntry } from 'app/mock-search/service/search-service';
import { SearchInputComponent } from 'app/search-input/search-input.component';

import { Router } from '@angular/router';

@Component({
  selector: 'jhi-teaser-content',
  templateUrl: './teaserContent.component.html',
  styleUrls: ['./teaserContent.component.scss'],
  providers: [SearchInputComponent],
})
export class TeaserContentComponent implements OnInit {
  public keywords: Array<AutoCompletionEntry> = new Array<AutoCompletionEntry>();
  public contributors: Array<AutoCompletionEntry> = new Array<AutoCompletionEntry>();
  public programmingLanguages: Array<AutoCompletionEntry> = new Array<AutoCompletionEntry>();

  constructor(private searchService: SearchService, private router: Router, private searchInputComponent: SearchInputComponent) {}

  ngOnInit(): void {
    this.searchService.getKeywordsAutoComplete('').subscribe(
      (data: Array<AutoCompletionEntry>) => {
        this.keywords = data;
      },
      () => {
        alert('Initialization of keywords failed');
      }
    );

    this.searchService.getProgrammingLanguageAutoComplete('').subscribe(
      (data: Array<AutoCompletionEntry>) => {
        this.programmingLanguages = data;
      },
      () => {
        alert('Initialization of programming languages failed');
      }
    );
    this.searchService.getContributorAutoComplete('').subscribe(
      (data: Array<AutoCompletionEntry>) => {
        this.contributors = data;
      },
      () => {
        alert('Initialization of contributors failed');
      }
    );
  }

  clickLanguage(programmingLanguage: String): void {
    this.router.navigate(['/search'], { queryParams: { pl: programmingLanguage } });
  }

  clickContributor(contributor: String): void {
    this.router.navigate(['/search'], { queryParams: { a: contributor } });
  }

  clickKeyword(keyWord: String): void {
    this.router.navigate(['/search'], { queryParams: { kw: keyWord } });
  }
}