From 405b6a693c8ea19386235b1704e0397b4797d1d4 Mon Sep 17 00:00:00 2001 From: BiggerRain <15911122312@163.COM> Date: Tue, 16 Apr 2024 14:02:02 +0800 Subject: [PATCH] chore: add image loading error handling (#532) --- enjoy/assets/default-img.jpg | Bin 0 -> 2914 bytes enjoy/assets/default-img.png | Bin 0 -> 4546 bytes .../renderer/components/stories/story-card.tsx | 3 ++- enjoy/src/renderer/lib/utils.ts | 7 +++++++ 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 enjoy/assets/default-img.jpg create mode 100644 enjoy/assets/default-img.png diff --git a/enjoy/assets/default-img.jpg b/enjoy/assets/default-img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fc3362d14481951dc4dad0cb4b3c0fb353e6ecc GIT binary patch literal 2914 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 CZ~AEf literal 0 HcmV?d00001 diff --git a/enjoy/assets/default-img.png b/enjoy/assets/default-img.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9bcb82014342540aad05869041f5649a9b0b18 GIT binary patch literal 4546 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 { const { story, className } = props; @@ -16,6 +16,7 @@ export const StoryCard = (props: { story: StoryType; className?: string }) => { diff --git a/enjoy/src/renderer/lib/utils.ts b/enjoy/src/renderer/lib/utils.ts index 18ae276f..f9545abe 100644 --- a/enjoy/src/renderer/lib/utils.ts +++ b/enjoy/src/renderer/lib/utils.ts @@ -137,3 +137,10 @@ export function renderPitchContour(options: { }, }); } + +export function imgErrorToDefalut(e: React.SyntheticEvent) { + const target = e.target as HTMLImageElement; + target.onerror = null; + target.src = "assets/default-img.jpg"; +} +