diff --git a/src/app/components/floating-column/floating-column.component.html b/src/app/components/floating-column/floating-column.component.html index e7ed1bfa..418f0c4a 100644 --- a/src/app/components/floating-column/floating-column.component.html +++ b/src/app/components/floating-column/floating-column.component.html @@ -10,7 +10,11 @@ - + - - - - - + + + + + \ No newline at end of file diff --git a/src/app/components/floating-column/manage-account/manage-account.component.ts b/src/app/components/floating-column/manage-account/manage-account.component.ts index 6d494907..9bd9ff5b 100644 --- a/src/app/components/floating-column/manage-account/manage-account.component.ts +++ b/src/app/components/floating-column/manage-account/manage-account.component.ts @@ -1,10 +1,11 @@ -import { Component, OnInit, OnDestroy, Input } from '@angular/core'; +import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core'; import { faAt, faUserPlus } from "@fortawesome/free-solid-svg-icons"; import { faBell, faEnvelope, faUser, faStar } from "@fortawesome/free-regular-svg-icons"; import { Subscription } from 'rxjs'; import { AccountWrapper } from '../../../models/account.models'; import { UserNotificationService, UserNotification } from '../../../services/user-notification.service'; +import { OpenThreadEvent } from '../../../services/tools.service'; @Component({ @@ -24,6 +25,10 @@ export class ManageAccountComponent implements OnInit, OnDestroy { hasNotifications = false; hasMentions = false; + @Output() browseAccountEvent = new EventEmitter(); + @Output() browseHashtagEvent = new EventEmitter(); + @Output() browseThreadEvent = new EventEmitter(); + @Input('account') set account(acc: AccountWrapper) { this._account = acc; @@ -65,4 +70,16 @@ export class ManageAccountComponent implements OnInit, OnDestroy { this.subPanel = subpanel; return false; } + + browseAccount(accountName: string): void { + this.browseAccountEvent.next(accountName); + } + + browseHashtag(hashtag: string): void { + this.browseHashtagEvent.next(hashtag); + } + + browseThread(openThreadEvent: OpenThreadEvent): void { + this.browseThreadEvent.next(openThreadEvent); + } } diff --git a/src/app/components/floating-column/manage-account/mentions/mentions.component.ts b/src/app/components/floating-column/manage-account/mentions/mentions.component.ts index 73b10a5f..222283f4 100644 --- a/src/app/components/floating-column/manage-account/mentions/mentions.component.ts +++ b/src/app/components/floating-column/manage-account/mentions/mentions.component.ts @@ -1,6 +1,5 @@ -import { Component, OnInit, OnDestroy, Input, ViewChild, ElementRef } from '@angular/core'; +import { Component, OnInit, OnDestroy, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core'; import { Subscription } from 'rxjs'; -import { Store } from '@ngxs/store'; import { AccountWrapper } from '../../../../models/account.models'; import { UserNotificationService, UserNotification } from '../../../../services/user-notification.service'; @@ -8,8 +7,7 @@ import { StatusWrapper } from '../../../../models/common.model'; import { Status, Notification } from '../../../../services/models/mastodon.interfaces'; import { MastodonService } from '../../../../services/mastodon.service'; import { NotificationService } from '../../../../services/notification.service'; -import { AccountSettings, SettingsState } from '../../../../states/settings.state'; -import { ToolsService } from '../../../../services/tools.service'; +import { ToolsService, OpenThreadEvent } from '../../../../services/tools.service'; @Component({ @@ -24,6 +22,10 @@ export class MentionsComponent implements OnInit, OnDestroy { isThread = false; hasContentWarnings = false; + @Output() browseAccountEvent = new EventEmitter(); + @Output() browseHashtagEvent = new EventEmitter(); + @Output() browseThreadEvent = new EventEmitter(); + @Input('account') set account(acc: AccountWrapper) { console.warn('account'); @@ -48,8 +50,7 @@ export class MentionsComponent implements OnInit, OnDestroy { private readonly toolsService: ToolsService, private readonly notificationService: NotificationService, private readonly userNotificationService: UserNotificationService, - private readonly mastodonService: MastodonService, - private readonly store: Store) { + private readonly mastodonService: MastodonService) { } @@ -121,4 +122,16 @@ export class MentionsComponent implements OnInit, OnDestroy { this.isLoading = false; }); } + + browseAccount(accountName: string): void { + this.browseAccountEvent.next(accountName); + } + + browseHashtag(hashtag: string): void { + this.browseHashtagEvent.next(hashtag); + } + + browseThread(openThreadEvent: OpenThreadEvent): void { + this.browseThreadEvent.next(openThreadEvent); + } } diff --git a/src/app/components/floating-column/manage-account/notifications/notifications.component.ts b/src/app/components/floating-column/manage-account/notifications/notifications.component.ts index ef03d5b3..6ac8fad0 100644 --- a/src/app/components/floating-column/manage-account/notifications/notifications.component.ts +++ b/src/app/components/floating-column/manage-account/notifications/notifications.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy } from '@angular/core'; +import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy, Output, EventEmitter } from '@angular/core'; import { Subscription } from 'rxjs'; import { faStar, faUserPlus, faRetweet } from "@fortawesome/free-solid-svg-icons"; import { faStar as faStar2 } from "@fortawesome/free-regular-svg-icons"; @@ -6,10 +6,11 @@ import { faStar as faStar2 } from "@fortawesome/free-regular-svg-icons"; import { AccountWrapper } from '../../../../models/account.models'; import { UserNotificationService, UserNotification } from '../../../../services/user-notification.service'; import { StatusWrapper } from '../../../../models/common.model'; -import { Status, Notification, Account } from '../../../../services/models/mastodon.interfaces'; +import { Notification, Account } from '../../../../services/models/mastodon.interfaces'; import { MastodonService } from '../../../../services/mastodon.service'; import { NotificationService } from '../../../../services/notification.service'; import { AccountInfo } from '../../../../states/accounts.state'; +import { OpenThreadEvent } from '../../../../services/tools.service'; @Component({ selector: 'app-notifications', @@ -24,6 +25,10 @@ export class NotificationsComponent implements OnInit, OnDestroy { notifications: NotificationWrapper[] = []; isLoading = false; + @Output() browseAccountEvent = new EventEmitter(); + @Output() browseHashtagEvent = new EventEmitter(); + @Output() browseThreadEvent = new EventEmitter(); + @Input('account') set account(acc: AccountWrapper) { this._account = acc; @@ -113,6 +118,18 @@ export class NotificationsComponent implements OnInit, OnDestroy { }); } + + browseAccount(accountName: string): void { + this.browseAccountEvent.next(accountName); + } + + browseHashtag(hashtag: string): void { + this.browseHashtagEvent.next(hashtag); + } + + browseThread(openThreadEvent: OpenThreadEvent): void { + this.browseThreadEvent.next(openThreadEvent); + } } class NotificationWrapper {