Fix `DisabledComposerView` description being overriden by powerlevel changes (#58)

We added the description in https://github.com/matrix-org/matrix-public-archive/pull/54 but then made a fix to one of the after render errors, https://github.com/matrix-org/matrix-public-archive/pull/57, which exposed that the description is then overriden when the powerlevel changes.

We now just override the getters directly instead of the internal fields which are overwritten internally.

---

This also fixes a warning from Hydrogen in the console:

```
disposable not found, did it leak? {kind: 'disabled', description: Array(3)}
```
This commit is contained in:
Eric Eastwood 2022-08-31 00:16:14 -05:00 committed by GitHub
parent 33d52e8c07
commit fd00fec6f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 17 deletions

View File

@ -262,11 +262,16 @@ async function mountHydrogen() {
this.navigation.applyPath(path); this.navigation.applyPath(path);
}; };
// FIXME: We shouldn't have to dive into the internal fields to make this work Object.defineProperty(roomViewModel, 'timelineViewModel', {
roomViewModel._timelineVM = timelineViewModel; get() {
return timelineViewModel;
},
});
const fromDate = new Date(fromTimestamp); const fromDate = new Date(fromTimestamp);
const dateString = fromDate.toISOString().split('T')[0]; const dateString = fromDate.toISOString().split('T')[0];
roomViewModel._composerVM = { Object.defineProperty(roomViewModel, 'composerViewModel', {
get() {
return {
kind: 'disabled', kind: 'disabled',
description: [ description: [
`You're viewing an archive of events from ${dateString}. Use a `, `You're viewing an archive of events from ${dateString}. Use a `,
@ -281,6 +286,8 @@ async function mountHydrogen() {
` to start chatting in this room.`, ` to start chatting in this room.`,
], ],
}; };
},
});
const archiveViewModel = new ArchiveViewModel({ const archiveViewModel = new ArchiveViewModel({
// Hydrogen options // Hydrogen options