You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-26 17:03:12 +03:00
Add support for MSC3030 /timestamp_to_event (#2072)
- `/jumptodate` slash command is being worked on in https://github.com/matrix-org/matrix-react-sdk/pull/7372 - Jump to date headers are being worked on in https://github.com/matrix-org/matrix-react-sdk/pull/7339 Related to https://github.com/vector-im/element-web/issues/7677 Part of MSC3030: https://github.com/matrix-org/matrix-doc/pull/3030 Experimental Synapse implementation added in https://github.com/matrix-org/synapse/pull/9445
This commit is contained in:
@@ -728,6 +728,11 @@ interface IRoomHierarchy {
|
|||||||
rooms: IHierarchyRoom[];
|
rooms: IHierarchyRoom[];
|
||||||
next_batch?: string;
|
next_batch?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ITimestampToEventResponse {
|
||||||
|
event_id: string;
|
||||||
|
origin_server_ts: string;
|
||||||
|
}
|
||||||
/* eslint-enable camelcase */
|
/* eslint-enable camelcase */
|
||||||
|
|
||||||
// We're using this constant for methods overloading and inspect whether a variable
|
// We're using this constant for methods overloading and inspect whether a variable
|
||||||
@@ -8937,6 +8942,36 @@ export class MatrixClient extends EventEmitter {
|
|||||||
public async whoami(): Promise<{ user_id: string }> { // eslint-disable-line camelcase
|
public async whoami(): Promise<{ user_id: string }> { // eslint-disable-line camelcase
|
||||||
return this.http.authedRequest(undefined, Method.Get, "/account/whoami");
|
return this.http.authedRequest(undefined, Method.Get, "/account/whoami");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the event_id closest to the given timestamp in the given direction.
|
||||||
|
* @return {Promise} A promise of an object containing the event_id and
|
||||||
|
* origin_server_ts of the closest event to the timestamp in the given
|
||||||
|
* direction
|
||||||
|
*/
|
||||||
|
public async timestampToEvent(
|
||||||
|
roomId: string,
|
||||||
|
timestamp: number,
|
||||||
|
dir: Direction,
|
||||||
|
): Promise<ITimestampToEventResponse> {
|
||||||
|
const path = utils.encodeUri("/rooms/$roomId/timestamp_to_event", {
|
||||||
|
$roomId: roomId,
|
||||||
|
});
|
||||||
|
|
||||||
|
return await this.http.authedRequest(
|
||||||
|
undefined,
|
||||||
|
Method.Get,
|
||||||
|
path,
|
||||||
|
{
|
||||||
|
ts: timestamp.toString(),
|
||||||
|
dir: dir,
|
||||||
|
},
|
||||||
|
undefined,
|
||||||
|
{
|
||||||
|
prefix: "/_matrix/client/unstable/org.matrix.msc3030",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user