decord/beta/source/modules/friends/OnlineFriendsStore.tsx

217 lines
7.1 KiB
TypeScript
Raw Permalink Normal View History

2026-10-12 16:32:48 +00:00
// Module ID: 13997
// Function ID: 13998
// Name: OnlineFriendsStore
2026-10-12 16:32:48 +00:00
// Dependencies: [5108, 4760, 1085, 6064, 2082, 504, 1453, 584, 2]
2026-10-12 16:32:48 +00:00
// Module 13997 (OnlineFriendsStore)
2026-10-01 14:13:23 +00:00
import get_initializedDefault from "get initialized" /* 504 */;
2026-10-07 22:43:51 +00:00
import DispatcherDefault from "Dispatcher" /* 584 */;
import Constants from "Constants" /* 1085 */;
2026-10-12 16:32:48 +00:00
import ApexExperiment from "ApexExperiment" /* 1453 */;
import SetUtils from "SetUtils" /* 2082 */;
import FriendsSidebarExperimentDefault from "FriendsSidebarExperiment" /* 6064 */;
import PresenceStore from "PresenceStore" /* 5108 */;
import RelationshipStore from "RelationshipStore" /* 4760 */;
2026-10-01 14:13:23 +00:00
import size from "module_2" /* 2 */;
2026-10-07 22:43:51 +00:00
function isEnabled() {
const obj = FriendsSidebarExperimentDefault;
return obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled;
}
function upsert(id) {
if (RelationshipStore.isFriend(id)) {
2026-10-01 14:13:23 +00:00
let deleteResult;
if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) {
const hasItem = set.has(id);
let flag = !hasItem;
2026-10-01 14:13:23 +00:00
if (flag) {
set.add(id);
flag = true;
}
2026-10-01 14:13:23 +00:00
deleteResult = flag;
}
return deleteResult;
}
deleteResult = set.delete(id);
}
function rebuild() {
2026-10-07 22:43:51 +00:00
closure_7 = isEnabled();
const tmp = isEnabled();
if (closure_7) {
const _Set = Set;
const self = this;
const self2 = this;
set = new Set();
const friendIDs = RelationshipStore.getFriendIDs();
for (const item10019 of friendIDs) {
let tmp9 = item10019;
if (PresenceStore.getStatus(item10019) !== StatusTypes.OFFLINE) {
let addResult = set.add(tmp9);
}
continue;
}
2026-10-07 22:43:51 +00:00
const obj2 = SetUtils;
return !obj2.areSetsEqual(set, set);
} else {
return clear();
}
2026-10-07 22:43:51 +00:00
}
function handleExperimentChange() {
const obj = FriendsSidebarExperimentDefault;
const tmp = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled !== closure_7 && rebuild();
return tmp;
}
function clear() {
const tmp = set.size > 0;
set = new Set();
return tmp;
}
2026-10-01 14:13:23 +00:00
const StatusTypes = Constants.StatusTypes;
let set = new Set();
2026-10-07 22:43:51 +00:00
let closure_7 = false;
2026-10-01 14:13:23 +00:00
const Store = get_initializedDefault.Store;
class OnlineFriendsStore extends Store {
2026-10-01 14:13:23 +00:00
initialize() {
2026-10-07 22:43:51 +00:00
this.waitFor(ApexExperiment.ApexExperimentStore, PresenceStore, RelationshipStore);
2026-10-01 14:13:23 +00:00
}
getOnlineFriendCount() {
return set.size;
}
}
const prototype = OnlineFriendsStore.prototype;
OnlineFriendsStore.displayName = "OnlineFriendsStore";
2026-10-07 22:43:51 +00:00
let obj = {
CONNECTION_OPEN: rebuild,
CONNECTION_OPEN_SUPPLEMENTAL: rebuild,
OVERLAY_INITIALIZE: rebuild,
PRESENCES_REPLACE: rebuild,
GUILD_CREATE: rebuild,
GUILD_DELETE: rebuild,
GUILD_MEMBER_REMOVE: function handleGuildMemberRemove(user) {
2026-10-07 22:43:51 +00:00
user = user.user;
const obj = FriendsSidebarExperimentDefault;
let appBarToggleEnabled = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled;
if (appBarToggleEnabled) {
const id = user.id;
if (RelationshipStore.isFriend(id)) {
let deleteResult;
if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) {
const hasItem = set.has(id);
let flag = !hasItem;
if (flag) {
set.add(id);
flag = true;
}
deleteResult = flag;
}
2026-10-07 22:43:51 +00:00
appBarToggleEnabled = deleteResult;
}
2026-10-07 22:43:51 +00:00
deleteResult = set.delete(id);
}
2026-10-07 22:43:51 +00:00
return appBarToggleEnabled;
},
2026-10-07 22:43:51 +00:00
PRESENCE_UPDATES: function handlePresenceUpdates(updates) {
updates = updates.updates;
if (isEnabled()) {
let flag = false;
for (const item10012 of updates) {
let tmp4 = upsert(item10012.user.id) || flag;
flag = tmp4;
continue;
}
return flag;
} else {
return false;
}
},
RELATIONSHIP_ADD: function handleRelationshipAdd(relationship) {
2026-10-07 22:43:51 +00:00
relationship = relationship.relationship;
const obj = FriendsSidebarExperimentDefault;
let appBarToggleEnabled = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled;
if (appBarToggleEnabled) {
const id = relationship.id;
if (RelationshipStore.isFriend(id)) {
let deleteResult;
if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) {
const hasItem = set.has(id);
let flag = !hasItem;
if (flag) {
set.add(id);
flag = true;
}
deleteResult = flag;
}
2026-10-07 22:43:51 +00:00
appBarToggleEnabled = deleteResult;
}
2026-10-07 22:43:51 +00:00
deleteResult = set.delete(id);
}
2026-10-07 22:43:51 +00:00
return appBarToggleEnabled;
},
RELATIONSHIP_REMOVE: function handleRelationshipRemove(relationship) {
2026-10-07 22:43:51 +00:00
relationship = relationship.relationship;
const obj = FriendsSidebarExperimentDefault;
let appBarToggleEnabled = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled;
if (appBarToggleEnabled) {
const id = relationship.id;
if (RelationshipStore.isFriend(id)) {
let deleteResult;
if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) {
const hasItem = set.has(id);
let flag = !hasItem;
if (flag) {
set.add(id);
flag = true;
}
deleteResult = flag;
}
2026-10-07 22:43:51 +00:00
appBarToggleEnabled = deleteResult;
}
2026-10-07 22:43:51 +00:00
deleteResult = set.delete(id);
}
2026-10-07 22:43:51 +00:00
return appBarToggleEnabled;
},
RELATIONSHIP_UPDATE: function handleRelationshipUpdate(relationship) {
2026-10-07 22:43:51 +00:00
relationship = relationship.relationship;
const obj = FriendsSidebarExperimentDefault;
let appBarToggleEnabled = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled;
if (appBarToggleEnabled) {
const id = relationship.id;
if (RelationshipStore.isFriend(id)) {
let deleteResult;
if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) {
const hasItem = set.has(id);
let flag = !hasItem;
if (flag) {
set.add(id);
flag = true;
}
deleteResult = flag;
}
2026-10-07 22:43:51 +00:00
appBarToggleEnabled = deleteResult;
}
2026-10-07 22:43:51 +00:00
deleteResult = set.delete(id);
}
2026-10-07 22:43:51 +00:00
return appBarToggleEnabled;
},
2026-10-07 22:43:51 +00:00
CONNECTION_OPEN_STATE_UPDATE: function handleConnectionOpenStateUpdate(apexExperiments) {
let tmp = null != apexExperiments.apexExperiments;
if (tmp) {
const obj = FriendsSidebarExperimentDefault;
tmp = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled !== closure_7 && rebuild();
const tmp5 = obj.getConfig({ location: "OnlineFriendsStore" }).appBarToggleEnabled !== closure_7 && rebuild();
}
2026-10-01 14:13:23 +00:00
return tmp;
2026-10-07 22:43:51 +00:00
},
APEX_EXPERIMENTS_FETCH_SUCCESS: handleExperimentChange,
APEX_EXPERIMENT_OVERRIDE_CREATE: handleExperimentChange,
APEX_EXPERIMENT_OVERRIDE_DELETE: handleExperimentChange,
APEX_EXPERIMENT_OVERRIDE_CLEAR: handleExperimentChange,
APEX_EXPERIMENT_SESSION_OVERRIDE_CREATE: handleExperimentChange,
APEX_EXPERIMENT_SESSION_OVERRIDE_DELETE: handleExperimentChange,
LOGOUT: clear
2026-10-01 14:13:23 +00:00
};
const onlineFriendsStore = new OnlineFriendsStore(DispatcherDefault, obj);
const result = size.fileFinishedImporting("modules/friends/OnlineFriendsStore.tsx");
export default onlineFriendsStore;