mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-22 19:14:52 +01:00
Merge pull request #1131 from vector-im/fix-1130
Fix issue with filtered map + export more classes for the SDK
This commit is contained in:
commit
1dfcbe843d
21
src/lib.ts
21
src/lib.ts
@ -31,6 +31,7 @@ export type {MemberChange} from "./matrix/room/members/RoomMember";
|
|||||||
export type {Transaction} from "./matrix/storage/idb/Transaction";
|
export type {Transaction} from "./matrix/storage/idb/Transaction";
|
||||||
export type {Room} from "./matrix/room/Room";
|
export type {Room} from "./matrix/room/Room";
|
||||||
export type {StateEvent} from "./matrix/storage/types";
|
export type {StateEvent} from "./matrix/storage/types";
|
||||||
|
export {MemberList} from "./matrix/room/members/MemberList.js";
|
||||||
export {PowerLevels} from "./matrix/room/PowerLevels.js";
|
export {PowerLevels} from "./matrix/room/PowerLevels.js";
|
||||||
// export main view & view models
|
// export main view & view models
|
||||||
export {createNavigation, createRouter} from "./domain/navigation/index";
|
export {createNavigation, createRouter} from "./domain/navigation/index";
|
||||||
@ -58,6 +59,10 @@ export {EncryptionEnabledTile} from "./domain/session/room/timeline/tiles/Encryp
|
|||||||
export {MissingAttachmentTile} from "./domain/session/room/timeline/tiles/MissingAttachmentTile.js";
|
export {MissingAttachmentTile} from "./domain/session/room/timeline/tiles/MissingAttachmentTile.js";
|
||||||
export {SimpleTile} from "./domain/session/room/timeline/tiles/SimpleTile";
|
export {SimpleTile} from "./domain/session/room/timeline/tiles/SimpleTile";
|
||||||
|
|
||||||
|
// export right-panel view models/ views
|
||||||
|
export { MemberListViewModel } from "./domain/session/rightpanel/MemberListViewModel.js";
|
||||||
|
export { MemberListView } from "./platform/web/ui/session/rightpanel/MemberListView.js";
|
||||||
|
|
||||||
export {TimelineView} from "./platform/web/ui/session/room/TimelineView";
|
export {TimelineView} from "./platform/web/ui/session/room/TimelineView";
|
||||||
export {viewClassForTile} from "./platform/web/ui/session/room/common";
|
export {viewClassForTile} from "./platform/web/ui/session/room/common";
|
||||||
export type {TileViewConstructor, ViewClassForEntryFn} from "./platform/web/ui/session/room/TimelineView";
|
export type {TileViewConstructor, ViewClassForEntryFn} from "./platform/web/ui/session/room/TimelineView";
|
||||||
@ -80,6 +85,7 @@ export {Navigation} from "./domain/navigation/Navigation.js";
|
|||||||
export {ComposerViewModel} from "./domain/session/room/ComposerViewModel.js";
|
export {ComposerViewModel} from "./domain/session/room/ComposerViewModel.js";
|
||||||
export {MessageComposer} from "./platform/web/ui/session/room/MessageComposer.js";
|
export {MessageComposer} from "./platform/web/ui/session/room/MessageComposer.js";
|
||||||
export {TemplateView} from "./platform/web/ui/general/TemplateView";
|
export {TemplateView} from "./platform/web/ui/general/TemplateView";
|
||||||
|
export {LazyListView} from "./platform/web/ui/general/LazyListView";
|
||||||
export type {Builder} from "./platform/web/ui/general/TemplateView"
|
export type {Builder} from "./platform/web/ui/general/TemplateView"
|
||||||
export {ViewModel} from "./domain/ViewModel";
|
export {ViewModel} from "./domain/ViewModel";
|
||||||
export {LoadingView} from "./platform/web/ui/general/LoadingView.js";
|
export {LoadingView} from "./platform/web/ui/general/LoadingView.js";
|
||||||
@ -102,3 +108,18 @@ export {
|
|||||||
ObservableValue,
|
ObservableValue,
|
||||||
RetainedObservableValue
|
RetainedObservableValue
|
||||||
} from "./observable/value";
|
} from "./observable/value";
|
||||||
|
export {
|
||||||
|
FilteredMap,
|
||||||
|
JoinedMap,
|
||||||
|
ApplyMap,
|
||||||
|
LogMap,
|
||||||
|
MappedMap,
|
||||||
|
} from "./observable/map";
|
||||||
|
|
||||||
|
export {
|
||||||
|
avatarInitials,
|
||||||
|
getIdentifierColorNumber,
|
||||||
|
getAvatarHttpUrl,
|
||||||
|
} from "./domain/avatar";
|
||||||
|
|
||||||
|
export { renderStaticAvatar } from "./platform/web/ui/avatar.js";
|
||||||
|
@ -47,13 +47,13 @@ export class FilteredMap<K, V> extends BaseObservableMap<K, V> {
|
|||||||
*/
|
*/
|
||||||
_reapplyFilter(silent = false): void {
|
_reapplyFilter(silent = false): void {
|
||||||
if (this._filter) {
|
if (this._filter) {
|
||||||
const oldIncluded = this._included;
|
|
||||||
this._included = this._included || new Map();
|
this._included = this._included || new Map();
|
||||||
for (const [key, value] of this._source) {
|
for (const [key, value] of this._source) {
|
||||||
const isIncluded = this._filter(value, key);
|
const isIncluded = this._filter(value, key);
|
||||||
|
const oldIncluded = this._included.get(key);
|
||||||
this._included.set(key, isIncluded);
|
this._included.set(key, isIncluded);
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
const wasIncluded = oldIncluded ? oldIncluded.get(key) : true;
|
const wasIncluded = oldIncluded ? oldIncluded : true;
|
||||||
this._emitForUpdate(wasIncluded, isIncluded, key, value);
|
this._emitForUpdate(wasIncluded, isIncluded, key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user