From 3955a130503f6830d5d3cf9a44ab49b5ba0591a7 Mon Sep 17 00:00:00 2001 From: zyh Date: Tue, 22 Oct 2024 06:23:17 +0000 Subject: [PATCH] =?UTF-8?q?feat(Avatar):=20=E6=9B=B4=E6=96=B0Avatar?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E4=BB=A5=E4=BD=BF=E7=94=A8=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/ui/Avatar.tsx | 5 +++-- app/config/env.client.ts | 13 +++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 app/config/env.client.ts diff --git a/app/components/ui/Avatar.tsx b/app/components/ui/Avatar.tsx index a6a5d2b..d37dc84 100644 --- a/app/components/ui/Avatar.tsx +++ b/app/components/ui/Avatar.tsx @@ -1,4 +1,5 @@ import { useState } from 'react'; +import { env } from '~/config/env.client'; interface AvatarProps { src: string; @@ -7,13 +8,13 @@ interface AvatarProps { } export function Avatar({ src, alt, className = '' }: AvatarProps) { - const [imgSrc, setImgSrc] = useState(src.startsWith('http') ? src : `${window.ENV.OSS_HOST}${src}`); + const [imgSrc, setImgSrc] = useState(src.startsWith('http') ? src : `${env.OSS_HOST}${src}`); const [error, setError] = useState(false); const handleError = () => { setError(true); // 设置一个默认的头像 URL - setImgSrc(`${window.ENV.OSS_HOST}/avatars/default-avatar.png`); + setImgSrc(`${env.OSS_HOST}/avatars/default-avatar.png`); }; return ( diff --git a/app/config/env.client.ts b/app/config/env.client.ts new file mode 100644 index 0000000..54f487b --- /dev/null +++ b/app/config/env.client.ts @@ -0,0 +1,13 @@ +declare global { + interface Window { + ENV: { + OSS_HOST: string; + }; + } +} + +export const env = { + get OSS_HOST() { + return window.ENV?.OSS_HOST ?? ''; + }, +};