Browse Source

add hashtag and mention component

Carsten Porth 5 years ago
parent
commit
b5a62795da

+ 8 - 2
app/src/components/components.module.ts

@@ -6,6 +6,8 @@ import { TweetBodyComponent } from "./tweet-body/tweet-body";
 import { TweetActionsComponent } from "./tweet-actions/tweet-actions";
 import { ProfileHeaderComponent } from "./profile-header/profile-header";
 import { QuotedStatusComponent } from "./quoted-status/quoted-status";
+import { HashtagComponent } from './hashtag/hashtag';
+import { MentionComponent } from './mention/mention';
 @NgModule({
   declarations: [
     FeedComponent,
@@ -14,7 +16,9 @@ import { QuotedStatusComponent } from "./quoted-status/quoted-status";
     TweetBodyComponent,
     TweetActionsComponent,
     ProfileHeaderComponent,
-    QuotedStatusComponent
+    QuotedStatusComponent,
+    HashtagComponent,
+    MentionComponent
   ],
   imports: [],
   exports: [
@@ -24,7 +28,9 @@ import { QuotedStatusComponent } from "./quoted-status/quoted-status";
     TweetBodyComponent,
     TweetActionsComponent,
     ProfileHeaderComponent,
-    QuotedStatusComponent
+    QuotedStatusComponent,
+    HashtagComponent,
+    MentionComponent
   ]
 })
 export class ComponentsModule {}

+ 2 - 0
app/src/components/hashtag/hashtag.html

@@ -0,0 +1,2 @@
+<!-- Generated template for the HashtagComponent component -->
+<span class="hashtag" (click)="search(hashtag)">#{{ hashtag }}</span>

+ 3 - 0
app/src/components/hashtag/hashtag.scss

@@ -0,0 +1,3 @@
+hashtag {
+
+}

+ 24 - 0
app/src/components/hashtag/hashtag.ts

@@ -0,0 +1,24 @@
+import { Component, Input } from "@angular/core";
+import { NavController } from "../../../node_modules/ionic-angular/umd";
+import { SearchPage } from "../../pages/search/search";
+
+/**
+ * Generated class for the HashtagComponent component.
+ *
+ * See https://angular.io/api/core/Component for more info on Angular
+ * Components.
+ */
+@Component({
+  selector: "hashtag",
+  templateUrl: "hashtag.html"
+})
+export class HashtagComponent {
+  @Input()
+  hashtag;
+
+  constructor(public navCtrl: NavController) {}
+
+  search(hashtag) {
+    this.navCtrl.push(SearchPage, { hashtag });
+  }
+}

+ 2 - 0
app/src/components/mention/mention.html

@@ -0,0 +1,2 @@
+<!-- Generated template for the MentionComponent component -->
+<span class="mention" (click)="showProfile(username)">@{{ username }}</span>

+ 3 - 0
app/src/components/mention/mention.scss

@@ -0,0 +1,3 @@
+mention {
+
+}

+ 25 - 0
app/src/components/mention/mention.ts

@@ -0,0 +1,25 @@
+import { Component, Input } from "@angular/core";
+import { copyInputAttributes } from "../../../node_modules/ionic-angular/umd/util/dom";
+import { NavController } from "../../../node_modules/ionic-angular/umd";
+import { ProfilePage } from "../../pages/profile/profile";
+
+/**
+ * Generated class for the MentionComponent component.
+ *
+ * See https://angular.io/api/core/Component for more info on Angular
+ * Components.
+ */
+@Component({
+  selector: "mention",
+  templateUrl: "mention.html"
+})
+export class MentionComponent {
+  @Input()
+  username: string;
+
+  constructor(public navCtrl: NavController) {}
+
+  showProfile(username) {
+    this.navCtrl.push(ProfilePage, { username });
+  }
+}