added context filtering
This commit is contained in:
parent
7a6eb9c3d2
commit
12ce0a3a4a
|
@ -70,17 +70,29 @@
|
|||
</div>
|
||||
|
||||
<app-status *ngIf="notification.status && notification.type === 'update'" class="stream__status"
|
||||
[statusWrapper]="notification.status" [notificationAccount]="notification.account"
|
||||
[notificationType]="notification.type" (browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)" (browseThreadEvent)="browseThread($event)"></app-status>
|
||||
[statusWrapper]="notification.status"
|
||||
[notificationAccount]="notification.account"
|
||||
[notificationType]="notification.type"
|
||||
[context]="'notifications'"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseThreadEvent)="browseThread($event)"></app-status>
|
||||
|
||||
<app-status *ngIf="notification.status && notification.type === 'mention'" class="stream__status"
|
||||
[statusWrapper]="notification.status" (browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)" (browseThreadEvent)="browseThread($event)"></app-status>
|
||||
[statusWrapper]="notification.status"
|
||||
[context]="'notifications'"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseThreadEvent)="browseThread($event)"></app-status>
|
||||
|
||||
<app-status *ngIf="notification.status && notification.type !== 'mention' && notification.type !== 'update'"
|
||||
class="stream__status" [statusWrapper]="notification.status" [notificationAccount]="notification.account"
|
||||
[notificationType]="notification.type" (browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)" (browseThreadEvent)="browseThread($event)"></app-status>
|
||||
class="stream__status"
|
||||
[statusWrapper]="notification.status"
|
||||
[notificationAccount]="notification.account"
|
||||
[notificationType]="notification.type"
|
||||
[context]="'notifications'"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseThreadEvent)="browseThread($event)"></app-status>
|
||||
|
||||
</div>
|
|
@ -128,15 +128,13 @@ export class StatusComponent implements OnInit {
|
|||
}
|
||||
|
||||
private validateFilteringStatus(){
|
||||
// console.warn(this.displayedStatus);
|
||||
|
||||
//TODO: finish this
|
||||
|
||||
const filterStatus = this.displayedStatus.filtered;
|
||||
if(!filterStatus || filterStatus.length === 0) return;
|
||||
|
||||
console.warn(filterStatus);
|
||||
console.warn(this.context);
|
||||
// if(!this.context){
|
||||
// console.warn('this.context not found');
|
||||
// console.warn(this.context);
|
||||
// }
|
||||
|
||||
for (let filter of filterStatus) {
|
||||
if(this.context && filter.filter.context && filter.filter.context.length > 0){
|
||||
|
@ -144,7 +142,14 @@ export class StatusComponent implements OnInit {
|
|||
}
|
||||
|
||||
if(filter.filter.filter_action === 'warn'){
|
||||
this.isContentWarned = true;
|
||||
|
||||
let filterTxt = `FILTERED:`;
|
||||
for(let w of filter.filter.keywords){
|
||||
filterTxt += ` ${w}`;
|
||||
}
|
||||
|
||||
this.contentWarningText = filterTxt;
|
||||
} else if (filter.filter.filter_action === 'hide'){
|
||||
this.hideStatus = true;
|
||||
}
|
||||
|
|
|
@ -17,8 +17,11 @@
|
|||
|
||||
<div class="stream-toots__status" *ngFor="let statusWrapper of statuses" #status>
|
||||
<app-status
|
||||
[statusWrapper]="statusWrapper" [isThreadDisplay]="isThread"
|
||||
(browseAccountEvent)="browseAccount($event)" (browseHashtagEvent)="browseHashtag($event)"
|
||||
[statusWrapper]="statusWrapper"
|
||||
[isThreadDisplay]="isThread"
|
||||
[context]="context"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseThreadEvent)="browseThread($event)"></app-status>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import { HttpErrorResponse } from '@angular/common/http';
|
|||
import { Observable, Subscription } from 'rxjs';
|
||||
import { Store } from '@ngxs/store';
|
||||
|
||||
import { StreamElement } from '../../../states/streams.state';
|
||||
import { StreamElement, StreamTypeEnum } from '../../../states/streams.state';
|
||||
import { AccountInfo } from '../../../states/accounts.state';
|
||||
import { StreamingService, EventEnum, StatusUpdate } from '../../../services/streaming.service';
|
||||
import { Status } from '../../../services/models/mastodon.interfaces';
|
||||
|
@ -20,9 +20,11 @@ import { SettingsService } from '../../../services/settings.service';
|
|||
templateUrl: './stream-statuses.component.html',
|
||||
styleUrls: ['./stream-statuses.component.scss']
|
||||
})
|
||||
export class StreamStatusesComponent extends TimelineBase {
|
||||
export class StreamStatusesComponent extends TimelineBase {
|
||||
protected _streamElement: StreamElement;
|
||||
|
||||
context: 'home' | 'notifications' | 'public' | 'thread' | 'account';
|
||||
|
||||
@Input()
|
||||
set streamElement(streamElement: StreamElement) {
|
||||
this._streamElement = streamElement;
|
||||
|
@ -32,6 +34,8 @@ export class StreamStatusesComponent extends TimelineBase {
|
|||
this.hideReplies = streamElement.hideReplies;
|
||||
|
||||
this.load(this._streamElement);
|
||||
|
||||
this.setContext(this._streamElement);
|
||||
}
|
||||
get streamElement(): StreamElement {
|
||||
return this._streamElement;
|
||||
|
@ -112,6 +116,24 @@ export class StreamStatusesComponent extends TimelineBase {
|
|||
if (this.deleteStatusSubscription) this.deleteStatusSubscription.unsubscribe();
|
||||
}
|
||||
|
||||
private setContext(streamElement: StreamElement) {
|
||||
switch(streamElement.type){
|
||||
case StreamTypeEnum.global:
|
||||
case StreamTypeEnum.local:
|
||||
case StreamTypeEnum.tag:
|
||||
this.context = 'public';
|
||||
break;
|
||||
case StreamTypeEnum.personnal:
|
||||
case StreamTypeEnum.list:
|
||||
this.context = 'home';
|
||||
break;
|
||||
case StreamTypeEnum.activity:
|
||||
case StreamTypeEnum.directmessages:
|
||||
this.context = 'notifications';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
refresh(): any {
|
||||
this.load(this._streamElement);
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ export class ThreadComponent extends BrowseBase {
|
|||
hasContentWarnings = false;
|
||||
private remoteStatusFetchingDisabled = false;
|
||||
|
||||
context = 'thread';
|
||||
|
||||
numNewItems: number; //html compatibility only
|
||||
bufferStream: Status[] = []; //html compatibility only
|
||||
streamPositionnedAtTop: boolean = true; //html compatibility only
|
||||
|
|
|
@ -196,8 +196,12 @@
|
|||
|
||||
<div *ngIf="statusSection === 'status' && !statusLoading">
|
||||
<div *ngFor="let statusWrapper of pinnedStatuses">
|
||||
<app-status [statusWrapper]="statusWrapper" (browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseAccountEvent)="browseAccount($event)" (browseThreadEvent)="browseThread($event)">
|
||||
<app-status
|
||||
[statusWrapper]="statusWrapper"
|
||||
[context]="'account'"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseThreadEvent)="browseThread($event)">
|
||||
</app-status>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -206,7 +210,7 @@
|
|||
<div *ngIf="statusSection !== 'media'">
|
||||
<app-status
|
||||
[statusWrapper]="statusWrapper"
|
||||
[context]="account"
|
||||
[context]="'account'"
|
||||
(browseHashtagEvent)="browseHashtag($event)"
|
||||
(browseAccountEvent)="browseAccount($event)"
|
||||
(browseThreadEvent)="browseThread($event)">
|
||||
|
|
Loading…
Reference in New Issue