From 9fe1dba7967aac13130ae7b5139145fec1256ec4 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Wed, 7 Sep 2022 15:24:26 -0700 Subject: [PATCH] Sticker Creator: Use findIndex to determine cover sticker index --- sticker-creator/app/stages/UploadStage.tsx | 3 +++ sticker-creator/util/preload.ts | 2 +- sticker-creator/window/phase3-sticker-functions.ts | 14 ++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/sticker-creator/app/stages/UploadStage.tsx b/sticker-creator/app/stages/UploadStage.tsx index b7498b810..9f034a046 100644 --- a/sticker-creator/app/stages/UploadStage.tsx +++ b/sticker-creator/app/stages/UploadStage.tsx @@ -34,6 +34,9 @@ export const UploadStage: React.ComponentType = () => { setComplete(i => i + 1); }; try { + if (!cover) { + throw new Error('UploadStage: Cover was missing on upload!'); + } const packMeta = await encryptAndUpload( { title, author }, orderedData, diff --git a/sticker-creator/util/preload.ts b/sticker-creator/util/preload.ts index 47fd94d43..d74de084d 100644 --- a/sticker-creator/util/preload.ts +++ b/sticker-creator/util/preload.ts @@ -29,7 +29,7 @@ export type PackMetaData = { packId: string; key: string }; export type EncryptAndUploadFn = ( manifest: { title: string; author: string }, stickers: Array, - cover: StickerImageData | undefined, + cover: StickerImageData, onProgress?: () => unknown ) => Promise; diff --git a/sticker-creator/window/phase3-sticker-functions.ts b/sticker-creator/window/phase3-sticker-functions.ts index b059f782b..fb3fbae53 100644 --- a/sticker-creator/window/phase3-sticker-functions.ts +++ b/sticker-creator/window/phase3-sticker-functions.ts @@ -167,11 +167,6 @@ window.encryptAndUpload = async ( useWebSocket: false, }); - const uniqueStickers = uniqBy( - [...stickers, { imageData: cover }], - 'imageData' - ); - const manifestProto = new Proto.StickerPack(); manifestProto.title = manifest.title; manifestProto.author = manifest.author; @@ -185,7 +180,14 @@ window.encryptAndUpload = async ( return s; }); - const coverStickerId = 0; + const uniqueStickers = uniqBy( + [...stickers, { imageData: cover }], + 'imageData' + ); + const coverStickerIndex = uniqueStickers.findIndex( + item => item.imageData?.src === cover.src + ); + const coverStickerId = coverStickerIndex >= 0 ? coverStickerIndex : 0; const coverStickerData = stickers[coverStickerId]; if (!coverStickerData) {