123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import { Component, Input } from "@angular/core";
- import { ActionSheetController, App } from "ionic-angular";
- import { ProfilePage } from "../../pages/profile/profile";
- import { TwitterApiProvider } from "../../providers/twitter-api/twitter-api";
- @Component({
- selector: "tweet-header",
- templateUrl: "tweet-header.html"
- })
- export class TweetHeaderComponent {
- @Input()
- user: any[];
- @Input()
- tweetCreatedAt: string;
- constructor(
- private appCtrl: App,
- public actionSheetCtrl: ActionSheetController,
- private twitter: TwitterApiProvider
- ) {}
- showProfile(userId) {
- this.appCtrl.getRootNav().push(ProfilePage, { userId });
- }
- showActions(userId) {
- this.twitter.fetchUser(userId).then(user => {
- this.actionSheetCtrl
- .create({
- title: "@" + this.user["screen_name"],
- buttons: this.getButtonsForActionSheet(user)
- })
- .present();
- });
- }
- private getButtonsForActionSheet(user) {
- const buttons = [];
- if (user.following) {
- // Unfollow
- buttons.push({
- text: "Unfollow",
- role: "destructive",
- handler: () => {
- this.twitter.destroyFriendship(user.id_str);
- }
- });
- } else {
- // Follow
- buttons.push({
- text: "Follow",
- role: "destructive",
- handler: () => {
- this.twitter.createFriendship(user.id_str);
- }
- });
- }
- if (user.muting) {
- // unmute
- buttons.push({
- text: "Unmute",
- role: "destructive",
- handler: () => {
- this.twitter.unmuteUser(user.id_str);
- }
- });
- } else {
- // mute
- buttons.push({
- text: "Mute",
- role: "destructive",
- handler: () => {
- this.twitter.muteUser(user.id_str);
- }
- });
- }
- if (user.blocking) {
- // Unblock
- buttons.push({
- text: "Unblock",
- role: "destructive",
- handler: () => {
- this.twitter.unblockUser(user.id_str);
- }
- });
- } else {
- // Block
- buttons.push({
- text: "Block",
- role: "destructive",
- handler: () => {
- this.twitter.blockUser(user.id_str);
- }
- });
- }
- // Cancel button
- buttons.push({
- text: "Cancel",
- role: "cancel"
- });
- return buttons;
- }
- }
|