зеркало из
https://github.com/iharh/notes.git
synced 2025-10-30 21:26:09 +02:00
89 строки
3.6 KiB
Plaintext
89 строки
3.6 KiB
Plaintext
https://github.com/matrix-org/matrix-react-sdk/pull/7339
|
|
https://github.com/matrix-org/matrix-react-sdk/commit/7fa27f583490a4a9bf0b5469fef6143bc5f5bc06
|
|
https://github.com/matrix-org/matrix-react-sdk/pull/7372
|
|
!!! merged, 2022-03-15, /jumptodate slash command at "Settings->Labs"
|
|
https://github.com/matrix-org/matrix-react-sdk/pull/7317
|
|
?! closed ?! right after merging 7339
|
|
https://github.com/matrix-org/matrix-js-sdk/pull/2072
|
|
|
|
https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.tsx#L349
|
|
"feature_jump_to_date": {
|
|
// We purposely leave out `isFeature: true` so it doesn't show in Labs
|
|
// by default. We will conditionally show it depending on whether we can
|
|
// detect MSC3030 support (see LabUserSettingsTab.tsx).
|
|
// labsGroup: LabGroup.Messaging,
|
|
displayName: _td("Jump to date (adds /jumptodate and jump to date headers)"),
|
|
supportedLevels: LEVELS_FEATURE,
|
|
default: false,
|
|
},
|
|
https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/components/views/settings/tabs/user/LabsUserSettingsTab.tsx
|
|
@replaceableComponent("views.settings.tabs.user.LabsUserSettingsTab")
|
|
export default class LabsUserSettingsTab extends React.Component<{}, IState> {
|
|
constructor(props: {}) {
|
|
super(props);
|
|
|
|
MatrixClientPeg.get().doesServerSupportUnstableFeature("org.matrix.msc2285").then((showHiddenReadReceipts) => {
|
|
this.setState({ showHiddenReadReceipts });
|
|
});
|
|
|
|
MatrixClientPeg.get().doesServerSupportUnstableFeature("org.matrix.msc3030").then((showJumpToDate) => {
|
|
this.setState({ showJumpToDate });
|
|
});
|
|
|
|
this.state = {
|
|
showHiddenReadReceipts: false,
|
|
showJumpToDate: false,
|
|
};
|
|
}
|
|
...
|
|
}
|
|
https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/MatrixClientPeg.ts
|
|
import { IStartClientOpts, MatrixClient } from 'matrix-js-sdk/src/client';
|
|
...
|
|
public get(): MatrixClient {
|
|
return this.matrixClient;
|
|
}
|
|
...
|
|
https://github.com/matrix-org/matrix-js-sdk/blob/develop/src/client.ts
|
|
...
|
|
/**
|
|
* Query the server to see if it lists support for an unstable feature
|
|
* in the /versions response
|
|
* @param {string} feature the feature name
|
|
* @return {Promise<boolean>} true if the feature is supported
|
|
*/
|
|
public async doesServerSupportUnstableFeature(feature: string): Promise<boolean> {
|
|
const response = await this.getVersions();
|
|
if (!response) return false;
|
|
const unstableFeatures = response["unstable_features"];
|
|
return unstableFeatures && !!unstableFeatures[feature];
|
|
}
|
|
...
|
|
/**
|
|
* Get the API versions supported by the server, along with any
|
|
* unstable APIs it supports
|
|
* @return {Promise<object>} The server /versions response
|
|
*/
|
|
public getVersions(): Promise<IServerVersions> {
|
|
if (this.serverVersionsPromise) {
|
|
return this.serverVersionsPromise;
|
|
}
|
|
|
|
this.serverVersionsPromise = this.http.request<IServerVersions>(
|
|
undefined, // callback
|
|
Method.Get, "/_matrix/client/versions",
|
|
undefined, // queryParams
|
|
undefined, // data
|
|
{
|
|
prefix: '',
|
|
},
|
|
).catch((e: Error) => {
|
|
// Need to unset this if it fails, otherwise we'll never retry
|
|
this.serverVersionsPromise = null;
|
|
// but rethrow the exception to anything that was waiting
|
|
throw e;
|
|
});
|
|
|
|
return this.serverVersionsPromise;
|
|
}
|