From 2cbdc4406aa6ce26bfb336ff488edebae733f0db Mon Sep 17 00:00:00 2001 From: oma <57739965+Eazvy@users.noreply.github.com> Date: Fri, 29 May 2026 15:06:29 -0400 Subject: [PATCH] Fix ProfileSets Banner not loading. (#1131) * Fix ProfileSets banner loading * Trim ProfileSets banner fix * Remove noisy ProfileSets changes * Update presetManager.tsx * Update presetManager.tsx --------- Co-authored-by: thororen <78185467+thororen1234@users.noreply.github.com> --- .../profileSets/components/presetManager.tsx | 2 +- .../profileSets/utils/profile.ts | 34 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/equicordplugins/profileSets/components/presetManager.tsx b/src/equicordplugins/profileSets/components/presetManager.tsx index 7207a7525..1ca693ada 100644 --- a/src/equicordplugins/profileSets/components/presetManager.tsx +++ b/src/equicordplugins/profileSets/components/presetManager.tsx @@ -7,7 +7,7 @@ import { Button } from "@components/Button"; import { Heading } from "@components/Heading"; import { classes } from "@utils/misc"; -import { openModal,React, SelectedGuildStore, TextInput, useStateFromStores } from "@webpack/common"; +import { openModal, React, SelectedGuildStore, TextInput, useStateFromStores } from "@webpack/common"; import { cl, settings } from "../index"; import { exportPresets, ImportDecision, importPresets, savePreset } from "../utils/actions"; diff --git a/src/equicordplugins/profileSets/utils/profile.ts b/src/equicordplugins/profileSets/utils/profile.ts index 51767124c..48c023a97 100644 --- a/src/equicordplugins/profileSets/utils/profile.ts +++ b/src/equicordplugins/profileSets/utils/profile.ts @@ -57,6 +57,21 @@ function setPendingChanges(payload: Record, guildId?: string) { dispatch("USER_PROFILE_SETTINGS_SET_PENDING_CHANGES", guildId ? { guildId, ...payload } : payload); } +function openProfileImagePreview( + uploadType: "AVATAR" | "BANNER", + image: Extract, + guildId?: string +) { + dispatch("PROFILE_CUSTOMIZATION_OPEN_PREVIEW_MODAL", { + image, + file: {}, + uploadType, + guildId, + analyticsSource: guildId ? "user settings guild profile" : "user settings user profile", + isTryItOut: false + }); +} + function isNonEmptyString(value: unknown): value is string { return typeof value === "string" && value.length > 0; } @@ -339,7 +354,14 @@ export async function loadPresetAsPending(preset: ProfilePreset, guildId?: strin description: `profilesets-${preset.name ?? "preset"}` } : avatarValue; - setPending({ pendingAvatar: avatarPayload }); + const avatarImageUri = avatarPayload != null && "imageUri" in Object(avatarPayload) + ? (avatarPayload as { imageUri?: unknown; }).imageUri + : null; + if (isNonEmptyString(avatarImageUri)) { + openProfileImagePreview("AVATAR", { ...Object(avatarPayload), imageUri: avatarImageUri }, guildId); + } else { + setPending({ pendingAvatar: avatarPayload }); + } } } @@ -351,7 +373,15 @@ export async function loadPresetAsPending(preset: ProfilePreset, guildId?: strin description: `profilesets-${preset.name ?? "preset"}` } : preset.bannerDataUrl; - setPending({ pendingBanner: bannerPayload }); + + const bannerImageUri = bannerPayload != null && "imageUri" in Object(bannerPayload) + ? (bannerPayload as { imageUri?: unknown; }).imageUri + : null; + if (isNonEmptyString(bannerImageUri)) { + openProfileImagePreview("BANNER", { ...Object(bannerPayload), imageUri: bannerImageUri }, guildId); + } else { + setPending({ pendingBanner: bannerPayload }); + } } if (!options.skipBio && preset?.bio !== current?.bio) {