fix(readAllNotificationsButton): Mark threads as read (#2437)
This commit is contained in:
		
							parent
							
								
									4281b7a94a
								
							
						
					
					
						commit
						fb19642d8d
					
				
					 1 changed files with 22 additions and 2 deletions
				
			
		|  | @ -22,14 +22,34 @@ import { addServerListElement, removeServerListElement, ServerListRenderPosition | |||
| import ErrorBoundary from "@components/ErrorBoundary"; | ||||
| import { Devs } from "@utils/constants"; | ||||
| import definePlugin from "@utils/types"; | ||||
| import { findStoreLazy } from "@webpack"; | ||||
| import { Button, FluxDispatcher, GuildChannelStore, GuildStore, React, ReadStateStore } from "@webpack/common"; | ||||
| import { Channel } from "discord-types/general"; | ||||
| 
 | ||||
| interface ThreadJoined { | ||||
|     channel: Channel; | ||||
|     joinTimestamp: number; | ||||
| } | ||||
| 
 | ||||
| type ThreadsJoined = Record<string, ThreadJoined>; | ||||
| type ThreadsJoinedByParent = Record<string, ThreadsJoined>; | ||||
| 
 | ||||
| interface ActiveJoinedThreadsStore { | ||||
|     getActiveJoinedThreadsForGuild(guildId: string): ThreadsJoinedByParent; | ||||
| } | ||||
| 
 | ||||
| const ActiveJoinedThreadsStore: ActiveJoinedThreadsStore = findStoreLazy("ActiveJoinedThreadsStore"); | ||||
| 
 | ||||
| function onClick() { | ||||
|     const channels: Array<any> = []; | ||||
| 
 | ||||
|     Object.values(GuildStore.getGuilds()).forEach(guild => { | ||||
|         GuildChannelStore.getChannels(guild.id).SELECTABLE | ||||
|             .concat(GuildChannelStore.getChannels(guild.id).VOCAL) | ||||
|         GuildChannelStore.getChannels(guild.id).SELECTABLE // Array<{ channel, comparator }>
 | ||||
|             .concat(GuildChannelStore.getChannels(guild.id).VOCAL) // Array<{ channel, comparator }>
 | ||||
|             .concat( | ||||
|                 Object.values(ActiveJoinedThreadsStore.getActiveJoinedThreadsForGuild(guild.id)) | ||||
|                     .flatMap(threadChannels => Object.values(threadChannels)) | ||||
|             ) | ||||
|             .forEach((c: { channel: { id: string; }; }) => { | ||||
|                 if (!ReadStateStore.hasUnread(c.channel.id)) return; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue