-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Update for compatibility with v12 rooms #30452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Stop using powerLevelNorm and reading PL events manually. To support matrix-org/matrix-js-sdk#4937
src/utils/membership.ts
Outdated
| export function isOnlyAdmin(room: Room, client: MatrixClient): boolean { | ||
| const currentUserLevel = room.getMember(client.getUserId()!)?.powerLevel; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- why not use
room.clientinstead of requiring an extra param - why not use
getSafeUserIdto avoid!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For 1, only because the docs said it was for lazy loading members so I thought perhaps better to not use it generally, but happy to do so.
src/utils/membership.ts
Outdated
| export function isOnlyAdmin(room: Room, client: MatrixClient): boolean { | ||
| const currentUserLevel = room.getMember(client.getUserId()!)?.powerLevel; | ||
|
|
||
| const userLevelValues = room.getMembers().map((m) => m.powerLevel); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this assumes all members have already been loaded, which may not be the case due to lazyloading
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this also potentially included invited/left members with high PLs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The fn you replaced used getJoinedMembers instead
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mmm, it's true that lazy loading could potentially be an issue. Fixing this will involve making a leaveRoom async and loading members for every room in a space when we leave it. I'm not sure this is appropriate to do as part of this PR. I have added it to the doc.
t3chguy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we maybe add a lint rule or deprecation to powerLevelNorm to avoid using it in new code due to -footguns-
Co-authored-by: Michael Telatynski <[email protected]>
|
Well, I'll be removing it altogether shortly after merging this so that shouldn't be a problem. |
Changes in [1.11.110](https://github.com/element-hq/element-web/releases/tag/v1.11.110) (2025-08-27) ==================================================================================================== * Hide recovery key when re-entering it while creating or changing it ([#30499](element-hq/element-web#30499)). Contributed by @andybalaam. * Add `?no_universal_links=true` to OIDC url so EX doesn't try to handle it ([#29439](element-hq/element-web#29439)). Contributed by @t3chguy. * Show a blue lock for unencrypted rooms and hide the grey shield for encrypted rooms ([#30440](element-hq/element-web#30440)). Contributed by @langleyd. * Add support for Module API 1.4 ([#30185](element-hq/element-web#30185)). Contributed by @t3chguy. * MVVM - Introduce some helpers for snapshot management ([#30398](element-hq/element-web#30398)). Contributed by @MidhunSureshR. * A11y: move focus to right panel when opened ([#30553](element-hq/element-web#30553)). Contributed by @florianduros. * Fix e2e warning icon should be white ([#30539](element-hq/element-web#30539)). Contributed by @florianduros. * Remove NoOneHere disabled reason. ([#30524](element-hq/element-web#30524)). Contributed by @toger5. * Fix downloading files with authenticated media API ([#30520](element-hq/element-web#30520)). Contributed by @t3chguy. * Fix call permissions check confusion around element call ([#30521](element-hq/element-web#30521)). Contributed by @t3chguy. * Fix line wrap around emoji verification ([#30523](element-hq/element-web#30523)). Contributed by @t3chguy. * Don't highlight redacted events ([#30519](element-hq/element-web#30519)). Contributed by @t3chguy. * Fix matrix.to links not being handled in the app ([#30522](element-hq/element-web#30522)). Contributed by @t3chguy. * Fix issue of new room list taking up the full width ([#30459](element-hq/element-web#30459)). Contributed by @langleyd. * Fix widget persistence in React development mode ([#30509](element-hq/element-web#30509)). Contributed by @robintown. * Fix widget initialization in React development mode ([#30463](element-hq/element-web#30463)). Contributed by @robintown. Changes in [1.11.109](https://github.com/element-hq/element-web/releases/tag/v1.11.109) (2025-08-11) ==================================================================================================== This release supports the upcoming v12 ("hydra") Matrix room version and is necessary to view and participate in these rooms. * [Backport staging] Allow /upgraderoom command without developer mode enabled ([#30529](element-hq/element-web#30529)). Contributed by @RiotRobot. * [Backport staging] Support for creator/owner power level ([#30526](element-hq/element-web#30526)). Contributed by @RiotRobot. * New room list: change icon and label of menu item for to start a DM ([#30470](element-hq/element-web#30470)). Contributed by @florianduros. * Implement the member list with virtuoso ([#29869](element-hq/element-web#29869)). Contributed by @langleyd. * Add labs option for history sharing on invite ([#30313](element-hq/element-web#30313)). Contributed by @richvdh. * Bump wysiwyg to 2.39.0 adding support for pasting rich text content in the Rich Text Edtior ([#30421](element-hq/element-web#30421)). Contributed by @langleyd. * Support `EventShieldReason.MISMATCHED_SENDER` ([#30403](element-hq/element-web#30403)). Contributed by @richvdh. * Change unencrypted and public pills to blue ([#30399](element-hq/element-web#30399)). Contributed by @florianduros. * Change color of public room icon ([#30390](element-hq/element-web#30390)). Contributed by @florianduros. * Script for updating storybook screenshots ([#30340](element-hq/element-web#30340)). Contributed by @dbkr. * Add toggle to hide empty state in devtools ([#30352](element-hq/element-web#30352)). Contributed by @toger5. * [Backport staging] Use userId to filter users in non-federated rooms when showing the InviteDialog ([#30537](element-hq/element-web#30537)). Contributed by @RiotRobot. * [Backport staging] Catch error when encountering invalid m.room.pinned\_events event ([#30536](element-hq/element-web#30536)). Contributed by @RiotRobot. * Update for compatibility with v12 rooms ([#30452](element-hq/element-web#30452)). Contributed by @dbkr. * New room list: fix tooltip on presence ([#30474](element-hq/element-web#30474)). Contributed by @florianduros. * New room list: add tooltip for presence and room status ([#30472](element-hq/element-web#30472)). Contributed by @florianduros. * Fix: Clicking on an item in the member list causes it to scroll to the top rather than show the profile view ([#30455](element-hq/element-web#30455)). Contributed by @langleyd. * Put the 'decrypting' tooltip back ([#30446](element-hq/element-web#30446)). Contributed by @dbkr. * Use server name explicitly for via. ([#30362](element-hq/element-web#30362)). Contributed by @Half-Shot. * fix: replace hardcoded string in poll history dialog ([#30402](element-hq/element-web#30402)). Contributed by @florianduros. * fix: replace hardcoded string on qr code back button ([#30401](element-hq/element-web#30401)). Contributed by @florianduros. * Fix color of icon button with outline ([#30361](element-hq/element-web#30361)). Contributed by @florianduros. Changes in [1.11.108](https://github.com/element-hq/element-web/releases/tag/v1.11.108) (2025-07-30) ==================================================================================================== * [Backport staging] Fix downloaded attachments not being decrypted ([#30434](element-hq/element-web#30434)). Contributed by @RiotRobot. Changes in [1.11.107](https://github.com/element-hq/element-web/releases/tag/v1.11.107) (2025-07-29) ==================================================================================================== * Message preview should show tooltip with the full message on hover ([#30265](element-hq/element-web#30265)). Contributed by @MidhunSureshR. * Support rendering notification badges on platforms that do their own icon overlays ([#30315](element-hq/element-web#30315)). Contributed by @Half-Shot. * Add SubscriptionViewModel base class ([#30297](element-hq/element-web#30297)). Contributed by @dbkr. * Enhancement: Save image on CTRL+S ([#30330](element-hq/element-web#30330)). Contributed by @ioalexander. * Add quote functionality to MessageContextMenu (#29893) ([#30323](element-hq/element-web#30323)). Contributed by @AlirezaMrtz. * Initial structure for shared component views ([#30216](element-hq/element-web#30216)). Contributed by @dbkr. * [Backport staging] Fix e2e shield being invisible in white mode for encrypted room ([#30411](element-hq/element-web#30411)). Contributed by @RiotRobot. * Force ED titlebar color for new room list ([#30332](element-hq/element-web#30332)). Contributed by @florianduros. * Add a background color to left panel for macos titlebar in element desktop ([#30328](element-hq/element-web#30328)). Contributed by @florianduros. * Fix: Prevent page refresh on Enter key in right panel member search ([#30312](element-hq/element-web#30312)). Contributed by @AlirezaMrtz.
* Update for compatibility with v12 rooms Stop using powerLevelNorm and reading PL events manually. To support matrix-org/matrix-js-sdk#4937 * Add test for leave space dialog * Don't compute stuff if we don't need it * Use room.client * Use getSafeUserId * Remove client arg * Use getJoinedMembers and add doc * Fix tests * Fix more tests * Fix other test * Clarify comment Co-authored-by: Michael Telatynski <[email protected]> --------- Co-authored-by: Michael Telatynski <[email protected]>
Stop using powerLevelNorm and reading PL events manually.
To support matrix-org/matrix-js-sdk#4937 (but can be merged before).
Checklist
public/exportedsymbols have accurate TSDoc documentation.