Skip to content

Commit

Permalink
Change UserActivitySet to be a proper Map
Browse files Browse the repository at this point in the history
  • Loading branch information
tadzik committed Nov 10, 2022
1 parent 4a6d5e8 commit 141695f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
8 changes: 4 additions & 4 deletions src/components/user-activity-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,14 @@ export class UserActivityStore extends BridgeStore {

public async getActivitySet(): Promise<UserActivitySet> {
return this.select({}).then((records: any[]) => {
const users: {[mxid: string]: any} = {};
const userActivity: UserActivitySet = new Map();
for (const record of records) {
users[record.mxid] = {
userActivity.set(record.mxid, {
ts: record.ts,
metadata: record.metadata,
};
});
}
return { users } as UserActivitySet;
return userActivity;
});
}
}
20 changes: 8 additions & 12 deletions src/components/user-activity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,11 @@ interface UserActivityMetadata {
active?: true;
}

export interface UserActivitySet {
users: {[userId: string]: UserActivity};
}
export type UserActivitySet = Map<string, UserActivity>;

// eslint-disable-next-line @typescript-eslint/no-namespace,no-redeclare
export namespace UserActivitySet {
export const DEFAULT: UserActivitySet = {
users: {}
};
export const DEFAULT: UserActivitySet = new Map();
}

export interface UserActivity {
Expand Down Expand Up @@ -89,7 +85,7 @@ export class UserActivityTracker {
) { }

public updateUserActivity(userId: string, metadata?: UserActivityMetadata, dateOverride?: Date): void {
let userObject = this.dataSet.users[userId];
let userObject = this.dataSet.get(userId);
if (!userObject) {
userObject = {
ts: [],
Expand Down Expand Up @@ -119,10 +115,10 @@ export class UserActivityTracker {
}
}

this.dataSet.users[userId] = userObject;
this.dataSet.set(userId, userObject);
if (!this.debounceTimer) {
this.debounceTimer = setTimeout(() => {
log.debug("Notifying the listener of RMAU changes");
log.debug(`Notifying the listener of RMAU changes`);
this.onChanges?.({
changed: [userId],
dataSet: this.dataSet,
Expand All @@ -143,7 +139,7 @@ export class UserActivityTracker {
let allUsers = 0;
let privateUsers = 0;
const activeSince = ((dateNow?.getTime() || Date.now()) - this.config.inactiveAfterDays * ONE_DAY) / 1000;
for (const user of Object.values(this.dataSet.users)) {
for (const user of this.dataSet.values()) {
if (!user.metadata.active) {
continue;
}
Expand All @@ -158,7 +154,7 @@ export class UserActivityTracker {
return {allUsers, privateUsers};
}

public getUserData(userId: string): UserActivity {
return this.dataSet.users[userId];
public getUserData(userId: string): UserActivity|undefined {
return this.dataSet.get(userId);
}
}

0 comments on commit 141695f

Please sign in to comment.