From c6560e844699ff76f0cf9e2e9eec9a539c2bf403 Mon Sep 17 00:00:00 2001 From: D3SOX Date: Mon, 8 Jul 2024 22:43:45 +0200 Subject: [PATCH] fix(betterActivities): use newer activity view Discord removed the old ones now --- src/plugins/betterActivities/index.tsx | 28 ++++++++++++++++---------- src/plugins/betterActivities/types.ts | 18 ++++++++++++++--- src/plugins/betterActivities/utils.ts | 3 +-- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/plugins/betterActivities/index.tsx b/src/plugins/betterActivities/index.tsx index 7ba4cd3a7..2bb52f68e 100644 --- a/src/plugins/betterActivities/index.tsx +++ b/src/plugins/betterActivities/index.tsx @@ -31,14 +31,21 @@ import { Caret } from "./components/Caret"; import { SpotifyIcon } from "./components/SpotifyIcon"; import { TwitchIcon } from "./components/TwitchIcon"; import settings from "./settings"; -import { Activity, ActivityListIcon, ActivityViewProps, ApplicationIcon, IconCSSProperties } from "./types"; +import { + Activity, + ActivityListIcon, + ActivityViewProps, + ActivityViewType, + ApplicationIcon, + IconCSSProperties +} from "./types"; import { getApplicationIcons } from "./utils"; const cl = classNameFactory("vc-bactivities-"); -const ActivityView = findComponentByCodeLazy("onOpenGameProfile:", "USER_POPOUT_V2"); +const ActivityView = findComponentByCodeLazy(",onOpenGameProfileModal:"); // if discord one day decides to change their icon this needs to be updated const DefaultActivityIcon = findComponentByCodeLazy("M6,7 L2,7 L2,6 L6,6 L6,7 Z M8,5 L2,5 L2,4 L8,4 L8,5 Z M8,3 L2,3 L2,2 L8,2 L8,3 Z M8.88888889,0 L1.11111111,0 C0.494444444,0 0,0.494444444 0,1.11111111 L0,8.88888889 C0,9.50253861 0.497461389,10 1.11111111,10 L8.88888889,10 C9.50253861,10 10,9.50253861 10,8.88888889 L10,1.11111111 C10,0.494444444 9.5,0 8.88888889,0 Z"); @@ -128,7 +135,7 @@ export default definePlugin({ return null; }, - showAllActivitiesComponent({ activity, user, guild, channelId, onClose }: ActivityViewProps) { + showAllActivitiesComponent({ activity, user, activityGuild }: ActivityViewProps) { const [currentActivity, setCurrentActivity] = React.useState( activity?.type !== 4 ? activity! : null ); @@ -145,7 +152,6 @@ export default definePlugin({ if (!currentActivity || !activities.includes(currentActivity)) setCurrentActivity(activities[0]); - }, [activities]); if (!activities.length) return null; @@ -154,11 +160,11 @@ export default definePlugin({ return (
+ activityGuild={activityGuild} + showChannelDetails={true}/>
( ))}
@@ -252,7 +258,7 @@ export default definePlugin({ }, { // Show all activities in the user popout/sidebar - find: "\"BiteSizeProfileActivitySection\"", + find: '"BiteSizeProfileActivitySection"', replacement: { match: /(?<=\(0,\i\.jsx\)\()\i\.\i(?=,{type:\i.\i.BITE_SIZE_POPOUT,activity:\i,className:\i\.activity,source:\i,user:\i)/, replace: "$self.showAllActivitiesComponent" diff --git a/src/plugins/betterActivities/types.ts b/src/plugins/betterActivities/types.ts index 843df5455..fbca5fd58 100644 --- a/src/plugins/betterActivities/types.ts +++ b/src/plugins/betterActivities/types.ts @@ -82,10 +82,22 @@ export interface IconCSSProperties extends CSSProperties { "--icon-size": string; } +export enum ActivityViewType { + USER_POPOUT = "UserPopout", + USER_POPOUT_V2 = "UserPopoutV2", + ACTIVITY_FEED = "ActivityFeed", + PROFILE = "Profile", + PROFILE_V2 = "ProfileV2", + STREAM_PREVIEW = "StreamPreview", + VOICE_CHANNEL = "VoiceChannel", + SIMPLIFIED_PROFILE = "SimplifiedProfile", + BITE_SIZE_POPOUT = "BiteSizePopout" +} + export interface ActivityViewProps { activity: Activity | null; user: User; - guild: Guild; - channelId: string; - onClose: () => void; + activityGuild: Guild; + type: ActivityViewType; + showChannelDetails: boolean; } diff --git a/src/plugins/betterActivities/utils.ts b/src/plugins/betterActivities/utils.ts index d1511acc0..1e5f6165e 100644 --- a/src/plugins/betterActivities/utils.ts +++ b/src/plugins/betterActivities/utils.ts @@ -32,7 +32,7 @@ export function getActivityImage(activity: Activity, application?: Application): const image = activity.assets?.large_image; // image needs to replace 'twitch:' if (image?.startsWith("twitch:")) { - // twitch images are always https://static-cdn.jtvnw.net/previews-ttv/live_user_USERNAME-RESOLTUON.jpg + // twitch images are always https://static-cdn.jtvnw.net/previews-ttv/live_user_USERNAME-RESOLUTION.jpg return `${image.replace("twitch:", "https://static-cdn.jtvnw.net/previews-ttv/live_user_")}-108x60.jpg`; } } @@ -54,7 +54,6 @@ export function getApplicationIcons(activities: Activity[], preferSmall = false) continue; } if (assets) { - const addImage = (image: string, alt: string) => { if (image.startsWith("mp:")) { const discordMediaLink = `https://media.discordapp.net/${image.replace(/mp:/, "")}`;