From ead847ec6a50d2f46207288b54fd85ad5858eaf3 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Tue, 17 Jun 2025 13:16:01 +0100 Subject: [PATCH] Use MatrixEvent provided by us. --- .../src/api/custom-components.ts | 2 +- packages/element-web-module-api/src/index.ts | 1 + .../src/models/event.ts | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 packages/element-web-module-api/src/models/event.ts diff --git a/packages/element-web-module-api/src/api/custom-components.ts b/packages/element-web-module-api/src/api/custom-components.ts index 794786538a..0c8a26712d 100644 --- a/packages/element-web-module-api/src/api/custom-components.ts +++ b/packages/element-web-module-api/src/api/custom-components.ts @@ -6,7 +6,7 @@ Please see LICENSE files in the repository root for full details. */ import type { JSX } from "react"; -import type { MatrixEvent } from "matrix-js-sdk/lib/matrix"; +import type { MatrixEvent } from "../models/event"; /** * Properties for all message components. diff --git a/packages/element-web-module-api/src/index.ts b/packages/element-web-module-api/src/index.ts index 4fbf15e9ba..0a7337ec21 100644 --- a/packages/element-web-module-api/src/index.ts +++ b/packages/element-web-module-api/src/index.ts @@ -9,6 +9,7 @@ export { ModuleLoader, ModuleIncompatibleError } from "./loader"; export type { Api, Module, ModuleFactory } from "./api"; export type { Config, ConfigApi } from "./api/config"; export type { I18nApi, Variables, Translations } from "./api/i18n"; +export type * from "./models/event"; export type * from "./api/custom-components"; export type * from "./api/legacy-modules"; export type * from "./api/legacy-customisations"; diff --git a/packages/element-web-module-api/src/models/event.ts b/packages/element-web-module-api/src/models/event.ts new file mode 100644 index 0000000000..d8c1cfad86 --- /dev/null +++ b/packages/element-web-module-api/src/models/event.ts @@ -0,0 +1,24 @@ +import type { EventStatus, IEventRelation, Membership } from "matrix-js-sdk"; + +/** + * Representation of a Matrix event. + * @beta + */ +export interface MatrixEvent { + // Properties provided by the spec + eventId: string; + roomId?: string; + sender: string; + content: Record; + unsigned: Record; + type: string; + stateKey?: string; + originServerTs: number; + redacts?: string; + + // Properties provided by the SDK + membership?: Membership; + status: EventStatus; + relation?: IEventRelation | null; + age?: number; +}