mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 13:05:32 +09:00
fix(app): keep forum channels after a warm account switch (#3441)
This commit is contained in:
1 parent
fce3200265
commit
922ff5ea64
1 file changed
+5
-5
@@ -227,7 +227,7 @@ function hydrateAccountMetadata(metadata: SnapshotAccountMetadataRow): void {
|
|||||||
WebAuthnCredentials.setCredentials(metadata.webAuthnCredentials);
|
WebAuthnCredentials.setCredentials(metadata.webAuthnCredentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
function hydrateThreads(parsed: ParsedSnapshot): void {
|
function guildsWithChannels(parsed: ParsedSnapshot): Array<GuildReadyData> {
|
||||||
const channelsByGuild = new Map<string, Array<WireChannel>>();
|
const channelsByGuild = new Map<string, Array<WireChannel>>();
|
||||||
for (const channel of parsed.channels) {
|
for (const channel of parsed.channels) {
|
||||||
if (channel.guild_id == null) continue;
|
if (channel.guild_id == null) continue;
|
||||||
@@ -238,9 +238,7 @@ function hydrateThreads(parsed: ParsedSnapshot): void {
|
|||||||
}
|
}
|
||||||
channels.push(channel);
|
channels.push(channel);
|
||||||
}
|
}
|
||||||
const guilds = parsed.guilds.map((guild) => ({...guild, channels: channelsByGuild.get(guild.id) ?? []}));
|
return parsed.guilds.map((guild) => ({...guild, channels: channelsByGuild.get(guild.id) ?? []}));
|
||||||
ThreadGuilds.handleGatewayReady(guilds);
|
|
||||||
ChannelThreads.handleGatewayReady(guilds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function applyParsedSnapshot(storageKey: string, parsed: ParsedSnapshot, selfUserId: string): void {
|
function applyParsedSnapshot(storageKey: string, parsed: ParsedSnapshot, selfUserId: string): void {
|
||||||
@@ -256,8 +254,10 @@ function applyParsedSnapshot(storageKey: string, parsed: ParsedSnapshot, selfUse
|
|||||||
GuildCount.handleGatewayReady(parsed.guilds);
|
GuildCount.handleGatewayReady(parsed.guilds);
|
||||||
GuildMembers.handleGatewayReady(parsed.guilds);
|
GuildMembers.handleGatewayReady(parsed.guilds);
|
||||||
GuildAvailability.hydrateFromSnapshot(parsed.unavailableGuilds);
|
GuildAvailability.hydrateFromSnapshot(parsed.unavailableGuilds);
|
||||||
|
const threadGuilds = guildsWithChannels(parsed);
|
||||||
|
ThreadGuilds.handleGatewayReady(threadGuilds);
|
||||||
Channels.hydrateFromSnapshot(parsed.channels, selfUserId);
|
Channels.hydrateFromSnapshot(parsed.channels, selfUserId);
|
||||||
hydrateThreads(parsed);
|
ChannelThreads.handleGatewayReady(threadGuilds);
|
||||||
GuildVerification.handleGatewayReady();
|
GuildVerification.handleGatewayReady();
|
||||||
Permission.handleGatewayReady();
|
Permission.handleGatewayReady();
|
||||||
MemberSearch.handleGatewayReady();
|
MemberSearch.handleGatewayReady();
|
||||||
|
|||||||
Reference in new issue
Block a user