From c85eaee78bddc857c6eacdf5e6ff5371b1d4cf24 Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Sat, 28 Sep 2019 01:23:15 -0400 Subject: [PATCH] dispatching selection down to status (not working) --- .../stream-statuses.component.html | 4 ++-- .../stream-statuses.component.ts | 20 +++++++++++++++++-- src/app/components/stream/stream.component.ts | 8 ++++++++ .../streams-main-display.component.ts | 5 +++++ 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/app/components/stream/stream-statuses/stream-statuses.component.html b/src/app/components/stream/stream-statuses/stream-statuses.component.html index 16a7edb0..b771946b 100644 --- a/src/app/components/stream/stream-statuses/stream-statuses.component.html +++ b/src/app/components/stream/stream-statuses/stream-statuses.component.html @@ -6,8 +6,8 @@
{{displayError}}
-
- + ; + focus(): boolean { + // var element = this.statustream.nativeElement as HTMLElement; + // element.click(); + console.warn(this.statusEls); + console.warn(this.statusEls.toArray()[0].nativeElement); + // this.statusEls.toArray()[0].elem.nativeElement.click(); + // this.statusEls.toArray()[0].nativeElement.focus(); + var element = this.statustream.nativeElement as HTMLElement; + element.focus(); + element.click(); + element.dispatchEvent(new Event('click')); + element.dispatchEvent(new Event('focus')); + this.statusEls.toArray()[0].nativeElement.dispatchEvent(new Event('click')); + return false; + } private retrieveToots(): void { this.mastodonService.getTimeline(this.account, this._streamElement.type, null, null, this.streamingService.nbStatusPerIteration, this._streamElement.tag, this._streamElement.listId) diff --git a/src/app/components/stream/stream.component.ts b/src/app/components/stream/stream.component.ts index 6d5ec46d..76a07e18 100644 --- a/src/app/components/stream/stream.component.ts +++ b/src/app/components/stream/stream.component.ts @@ -6,6 +6,7 @@ import { StreamElement, StreamTypeEnum } from "../../states/streams.state"; import { Status } from "../../services/models/mastodon.interfaces"; import { AccountInfo } from "../../states/accounts.state"; import { OpenThreadEvent } from "../../services/tools.service"; +import { StreamStatusesComponent } from './stream-statuses/stream-statuses.component'; @Component({ selector: "app-stream", @@ -25,6 +26,8 @@ export class StreamComponent implements OnInit { private _streamElement: StreamElement; + @ViewChild(StreamStatusesComponent) private streamStatusesComponent: StreamStatusesComponent; + @Input('streamElement') set streamElement(stream: StreamElement) { switch (stream.type) { @@ -57,6 +60,11 @@ export class StreamComponent implements OnInit { ngOnInit() { } + focus(): boolean { + this.streamStatusesComponent.focus(); + return false; + } + goToTop(): boolean { this.goToTopSubject.next(); return false; diff --git a/src/app/pages/streams-main-display/streams-main-display.component.ts b/src/app/pages/streams-main-display/streams-main-display.component.ts index a1a724e7..a97d04fb 100644 --- a/src/app/pages/streams-main-display/streams-main-display.component.ts +++ b/src/app/pages/streams-main-display/streams-main-display.component.ts @@ -4,6 +4,7 @@ import { Select } from "@ngxs/store"; import { StreamElement } from "../../states/streams.state"; import { NavigationService } from "../../services/navigation.service"; +import { StreamComponent } from '../../components/stream/stream.component'; @Component({ selector: "app-streams-main-display", @@ -12,6 +13,7 @@ import { NavigationService } from "../../services/navigation.service"; }) export class StreamsMainDisplayComponent implements OnInit, OnDestroy { + @ViewChildren(StreamComponent) private streamComponents: QueryList; @Select(state => state.streamsstatemodel.streams) streamElements$: Observable; private columnSelectedSub: Subscription; @@ -34,6 +36,9 @@ export class StreamsMainDisplayComponent implements OnInit, OnDestroy { if (columnIndex > -1) { setTimeout(() => { this.streamsElementRef.toArray()[columnIndex].nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' }); + + console.warn(this.streamComponents); + this.streamComponents.toArray()[columnIndex].focus(); }); } }