Add a layout reset function

For https://github.com/vector-im/riot-web/issues/14265

Intended to be accessed via `mx_RoomListStore2.resetLayout()`
pull/21833/head
Travis Ralston 2020-06-30 18:52:13 -06:00
parent f935303eeb
commit 8cfe12b817
2 changed files with 14 additions and 0 deletions

View File

@ -120,6 +120,10 @@ export class ListLayout {
return px / this.tileHeight; return px / this.tileHeight;
} }
public reset() {
localStorage.removeItem(this.key);
}
private save() { private save() {
localStorage.setItem(this.key, JSON.stringify(this.serialize())); localStorage.setItem(this.key, JSON.stringify(this.serialize()));
} }

View File

@ -30,6 +30,7 @@ import { TagWatcher } from "./TagWatcher";
import RoomViewStore from "../RoomViewStore"; import RoomViewStore from "../RoomViewStore";
import { Algorithm, LIST_UPDATED_EVENT } from "./algorithms/Algorithm"; import { Algorithm, LIST_UPDATED_EVENT } from "./algorithms/Algorithm";
import { EffectiveMembership, getEffectiveMembership } from "./membership"; import { EffectiveMembership, getEffectiveMembership } from "./membership";
import { ListLayout } from "./ListLayout";
interface IState { interface IState {
tagsEnabled?: boolean; tagsEnabled?: boolean;
@ -401,6 +402,15 @@ export class RoomListStore2 extends AsyncStore<ActionPayload> {
this.emit(LISTS_UPDATE_EVENT, this); this.emit(LISTS_UPDATE_EVENT, this);
} }
// Note: this primarily exists for debugging, and isn't really intended to be used by anything.
public async resetLayouts() {
console.warn("Resetting layouts for room list");
for (const tagId of Object.keys(this.orderedLists)) {
new ListLayout(tagId).reset();
}
await this.regenerateAllLists();
}
public addFilter(filter: IFilterCondition): void { public addFilter(filter: IFilterCondition): void {
// TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035 // TODO: Remove debug: https://github.com/vector-im/riot-web/issues/14035
console.log("Adding filter condition:", filter); console.log("Adding filter condition:", filter);