From c550ace4cc08cb7981159f1ac36896501410fe49 Mon Sep 17 00:00:00 2001 From: Cathy Hu Date: Thu, 3 Sep 2020 19:53:57 +0200 Subject: [PATCH] [frontend] Add twitter public component --- .../twitter-bot-card.component.html | 32 ++++++++++++++++++ .../twitter-bot-card.component.scss | 11 ++++++ .../twitter-bot-card.component.spec.ts | 24 +++++++++++++ .../twitter-bot-card.component.ts | 27 +++++++++++++++ .../twitter-bot-info-dialog.component.html | 1 + .../twitter-bot-info-dialog.component.scss | 0 .../twitter-bot-info-dialog.component.ts | 12 +++++++ kibicara-frontend/src/assets/twitter.png | Bin 0 -> 10038 bytes 8 files changed, 107 insertions(+) create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.html create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.scss create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.spec.ts create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.ts create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.html create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.scss create mode 100644 kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.ts create mode 100755 kibicara-frontend/src/assets/twitter.png diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.html b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.html new file mode 100644 index 0000000..6a6e0a6 --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.html @@ -0,0 +1,32 @@ +
+ + + + + Twitter + + + + + + + + @{{ twitter.username }} + + + + + + +
diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.scss b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.scss new file mode 100644 index 0000000..71cb1d3 --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.scss @@ -0,0 +1,11 @@ +.twitter { + background-image: url("../../../../assets/twitter.png"); + background-size: cover; +} + +.platform-title { + display: grid; + grid-template-columns: 1fr 40px; + width: 100%; + align-items: center; +} diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.spec.ts b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.spec.ts new file mode 100644 index 0000000..3b81986 --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TwitterBotCardComponent } from './twitter-bot-card.component'; + +describe('TwitterBotCardComponent', () => { + let component: TwitterBotCardComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [TwitterBotCardComponent], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TwitterBotCardComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.ts b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.ts new file mode 100644 index 0000000..ffd2673 --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-card.component.ts @@ -0,0 +1,27 @@ +import { Component, OnInit, Input } from '@angular/core'; +import { TwitterService } from 'src/app/core/api'; +import { TwitterBotInfoDialogComponent } from './twitter-bot-info-dialog/twitter-bot-info-dialog.component'; +import { MatDialog } from '@angular/material/dialog'; + +@Component({ + selector: 'app-twitter-bot-card', + templateUrl: './twitter-bot-card.component.html', + styleUrls: ['./twitter-bot-card.component.scss'], +}) +export class TwitterBotCardComponent implements OnInit { + @Input() hoodId; + twitters$; + + constructor( + private twitterService: TwitterService, + private dialog: MatDialog + ) {} + + ngOnInit(): void { + this.twitters$ = this.twitterService.getTwittersPublic(this.hoodId); + } + + onInfoClick() { + this.dialog.open(TwitterBotInfoDialogComponent); + } +} diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.html b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.html new file mode 100644 index 0000000..0b116ea --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.html @@ -0,0 +1 @@ +

twitter-bot-info-dialog works!

diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.scss b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.ts b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.ts new file mode 100644 index 0000000..f7ac2e0 --- /dev/null +++ b/kibicara-frontend/src/app/platforms/twitter/twitter-bot-card/twitter-bot-info-dialog/twitter-bot-info-dialog.component.ts @@ -0,0 +1,12 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-twitter-bot-info-dialog', + templateUrl: './twitter-bot-info-dialog.component.html', + styleUrls: ['./twitter-bot-info-dialog.component.scss'], +}) +export class TwitterBotInfoDialogComponent implements OnInit { + constructor() {} + + ngOnInit(): void {} +} diff --git a/kibicara-frontend/src/assets/twitter.png b/kibicara-frontend/src/assets/twitter.png new file mode 100755 index 0000000000000000000000000000000000000000..bd2cea31e3ffabf11f2785cf0c967ca3962cea17 GIT binary patch literal 10038 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 literal 0 HcmV?d00001