You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-31 15:24:23 +03:00
Stabilize support for MSC3952: intentional mentions (#3397)
* use stable identifiers for MSC3952: intentional mentions * add matrix version to feature support for intentional mentions
This commit is contained in:
@ -657,7 +657,7 @@ describe("NotificationService", function () {
|
|||||||
content: {
|
content: {
|
||||||
"body": "",
|
"body": "",
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"org.matrix.msc3952.mentions": {},
|
"m.mentions": {},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -137,8 +137,8 @@ export enum PushRuleKind {
|
|||||||
|
|
||||||
export enum RuleId {
|
export enum RuleId {
|
||||||
Master = ".m.rule.master",
|
Master = ".m.rule.master",
|
||||||
IsUserMention = ".org.matrix.msc3952.is_user_mention",
|
IsUserMention = ".m.rule.is_user_mention",
|
||||||
IsRoomMention = ".org.matrix.msc3952.is_room_mention",
|
IsRoomMention = ".m.rule.is_room_mention",
|
||||||
ContainsDisplayName = ".m.rule.contains_display_name",
|
ContainsDisplayName = ".m.rule.contains_display_name",
|
||||||
ContainsUserName = ".m.rule.contains_user_name",
|
ContainsUserName = ".m.rule.contains_user_name",
|
||||||
AtRoomNotification = ".m.rule.roomnotif",
|
AtRoomNotification = ".m.rule.roomnotif",
|
||||||
|
@ -63,6 +63,7 @@ const featureSupportResolver: Record<string, FeatureSupportCondition> = {
|
|||||||
},
|
},
|
||||||
[Feature.IntentionalMentions]: {
|
[Feature.IntentionalMentions]: {
|
||||||
unstablePrefixes: ["org.matrix.msc3952_intentional_mentions"],
|
unstablePrefixes: ["org.matrix.msc3952_intentional_mentions"],
|
||||||
|
matrixVersion: "v1.7",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ export interface IContent {
|
|||||||
"displayname"?: string;
|
"displayname"?: string;
|
||||||
"m.relates_to"?: IEventRelation;
|
"m.relates_to"?: IEventRelation;
|
||||||
|
|
||||||
"org.matrix.msc3952.mentions"?: IMentions;
|
"m.mentions"?: IMentions;
|
||||||
}
|
}
|
||||||
|
|
||||||
type StrippedState = Required<Pick<IEvent, "content" | "state_key" | "type" | "sender">>;
|
type StrippedState = Required<Pick<IEvent, "content" | "state_key" | "type" | "sender">>;
|
||||||
|
@ -78,7 +78,7 @@ const DEFAULT_OVERRIDE_RULES: IPushRule[] = [
|
|||||||
conditions: [
|
conditions: [
|
||||||
{
|
{
|
||||||
kind: ConditionKind.EventPropertyContains,
|
kind: ConditionKind.EventPropertyContains,
|
||||||
key: "content.org\\.matrix\\.msc3952\\.mentions.user_ids",
|
key: "content.m\\.mentions.user_ids",
|
||||||
value: "", // The user ID is dynamically added in rewriteDefaultRules.
|
value: "", // The user ID is dynamically added in rewriteDefaultRules.
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -91,7 +91,7 @@ const DEFAULT_OVERRIDE_RULES: IPushRule[] = [
|
|||||||
conditions: [
|
conditions: [
|
||||||
{
|
{
|
||||||
kind: ConditionKind.EventPropertyIs,
|
kind: ConditionKind.EventPropertyIs,
|
||||||
key: "content.org\\.matrix\\.msc3952\\.mentions.room",
|
key: "content.m\\.mentions.room",
|
||||||
value: true,
|
value: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -724,7 +724,7 @@ export class PushProcessor {
|
|||||||
// Disable the deprecated mentions push rules if the new mentions property exists.
|
// Disable the deprecated mentions push rules if the new mentions property exists.
|
||||||
if (
|
if (
|
||||||
this.client.supportsIntentionalMentions() &&
|
this.client.supportsIntentionalMentions() &&
|
||||||
ev.getContent()["org.matrix.msc3952.mentions"] !== undefined &&
|
ev.getContent()["m.mentions"] !== undefined &&
|
||||||
(rule.rule_id === RuleId.ContainsUserName ||
|
(rule.rule_id === RuleId.ContainsUserName ||
|
||||||
rule.rule_id === RuleId.ContainsDisplayName ||
|
rule.rule_id === RuleId.ContainsDisplayName ||
|
||||||
rule.rule_id === RuleId.AtRoomNotification)
|
rule.rule_id === RuleId.AtRoomNotification)
|
||||||
|
Reference in New Issue
Block a user