1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-04 05:02:41 +03:00

Implement TypedEventEmitter for better TS support (#2018)

We're using stringly typed events everywhere, this is the first step for
better typescript support with our event emitters before we replace it
with something much better for React support.
This commit is contained in:
Dariusz Niemczyk
2021-11-15 15:47:21 +01:00
committed by GitHub
parent f41d815aa6
commit c3a266b3e7
2 changed files with 53 additions and 27 deletions

View File

@@ -14,12 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import { EventEmitter } from "events";
import { MatrixClient } from "../matrix";
import { MatrixEvent } from "./event";
import { EventTimeline } from "./event-timeline";
import { EventTimelineSet } from './event-timeline-set';
import { Room } from './room';
import { BaseModel } from "./base-model";
export enum ThreadEvent {
New = "Thread.new",
@@ -30,7 +30,7 @@ export enum ThreadEvent {
/**
* @experimental
*/
export class Thread extends EventEmitter {
export class Thread extends BaseModel<ThreadEvent> {
/**
* A reference to the event ID at the top of the thread
*/
@@ -183,29 +183,4 @@ export class Thread extends EventEmitter {
public has(eventId: string): boolean {
return this.timelineSet.findEventById(eventId) instanceof MatrixEvent;
}
public on(event: ThreadEvent, listener: (...args: any[]) => void): this {
super.on(event, listener);
return this;
}
public once(event: ThreadEvent, listener: (...args: any[]) => void): this {
super.once(event, listener);
return this;
}
public off(event: ThreadEvent, listener: (...args: any[]) => void): this {
super.off(event, listener);
return this;
}
public addListener(event: ThreadEvent, listener: (...args: any[]) => void): this {
super.addListener(event, listener);
return this;
}
public removeListener(event: ThreadEvent, listener: (...args: any[]) => void): this {
super.removeListener(event, listener);
return this;
}
}