diff --git a/web/src/api/types/mxtypes.ts b/web/src/api/types/mxtypes.ts index e576127..5089e7e 100644 --- a/web/src/api/types/mxtypes.ts +++ b/web/src/api/types/mxtypes.ts @@ -116,6 +116,9 @@ export interface PolicyRuleContent { entity: string reason: string recommendation: string + "org.matrix.msc4205.hashes"?: { + sha256: string + } } export interface PowerLevelEventContent { diff --git a/web/src/ui/timeline/content/PolicyRuleBody.tsx b/web/src/ui/timeline/content/PolicyRuleBody.tsx index 8da2217..771a636 100644 --- a/web/src/ui/timeline/content/PolicyRuleBody.tsx +++ b/web/src/ui/timeline/content/PolicyRuleBody.tsx @@ -25,14 +25,21 @@ const PolicyRuleBody = ({ event, sender }: EventContentProps) => { const mainScreen = use(MainScreenContext) const entity = content.entity ?? prevContent?.entity + const hashedEntity = content["org.matrix.msc4205.hashes"]?.sha256 + ?? prevContent?.["org.matrix.msc4205.hashes"]?.sha256 const recommendation = content.recommendation ?? prevContent?.recommendation - if (!entity || !recommendation) { + if ((!entity && !hashedEntity) || !recommendation) { return
{recommendation}
if (recommendation === "m.ban") {
recommendationElement = "ban"
+ } else if (recommendation === "org.matrix.msc4204.takedown") {
+ recommendationElement = "takedown"
}
const action = prevContent ? ((content.entity && content.recommendation) ? "updated" : "removed") : "added"
- const target = event.type.replace(/^m\.policy\.rule\./, "")
return {entityElement}
+ for {matchingWord} {entityElement}
{content.reason ? <> for {content.reason}
> : null}