You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 15:06:20 +00:00
a599e0cf89
Extends the v2.1.0 React-friendly snapshot pattern (originally on SessionDataManager / RoomSessionManager) to two more session-state holders the React client reads frequently: - IgnoredUsersManager.getIgnoredUsersSnapshot(): ReadonlyArray<string> - GroupInformationManager.getGroupBadgesSnapshot(): ReadonlyMap<number, string> Both follow the same shape: lazy-frozen snapshot, cached until the underlying state mutates, then invalidated and a dispatched event lets the React client rebuild via useSyncExternalStore. Two new NitroEventType members carry the invalidation signal: - IGNORED_USERS_UPDATED — dispatched by IgnoredUsersManager whenever the list changes (initial load, add, remove, queue-truncate case 2). - GROUP_BADGES_UPDATED — dispatched by GroupInformationManager only when the incoming HabboGroupBadges payload contains at least one new or changed mapping (no-op refresh stays quiet). This lets the user-info popup, profile page, friend/guild filtering, and any other consumer share a single read through useSyncExternalStore instead of each subscribing to the underlying message events independently. API additions are interface-respecting and backwards-compatible — the existing `isIgnored(name)` / `getGroupBadge(groupId)` accessors stay untouched.
20 lines
658 B
TypeScript
20 lines
658 B
TypeScript
export interface IIgnoredUsersManager
|
|
{
|
|
init(): void;
|
|
requestIgnoredUsers(username: string): void;
|
|
ignoreUserId(id: number): void;
|
|
ignoreUser(name: string): void;
|
|
unignoreUser(name: string): void;
|
|
isIgnored(name: string): boolean;
|
|
|
|
/**
|
|
* Returns the current ignored-users list as a frozen, referentially
|
|
* stable array. The same reference is returned across reads until
|
|
* the list is mutated; mutations dispatch
|
|
* `NitroEventType.IGNORED_USERS_UPDATED` to signal invalidation.
|
|
*
|
|
* Pairs with `useSyncExternalStore` on the React client.
|
|
*/
|
|
getIgnoredUsersSnapshot(): ReadonlyArray<string>;
|
|
}
|