Skip to content

Commit 00bc933

Browse files
committed
fix(webapp): clip org avatar and fall back on image load error
1 parent aca234d commit 00bc933

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

apps/webapp/app/components/primitives/Avatar.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
StarIcon,
1010
} from "@heroicons/react/20/solid";
1111
import type { Prisma } from "@trigger.dev/database";
12+
import { useState } from "react";
1213
import { z } from "zod";
1314
import { cn } from "~/utils/cn";
1415

@@ -190,20 +191,26 @@ function AvatarIcon({
190191
}
191192

192193
function AvatarImage({ avatar, size }: { avatar: ImageAvatar; size: number }) {
193-
if (!avatar.url) {
194+
const [failed, setFailed] = useState(false);
195+
196+
if (!avatar.url || failed) {
194197
return (
195-
<span className="grid shrink-0 place-items-center" style={styleFromSize(size)}>
198+
<span
199+
className="grid shrink-0 place-items-center overflow-hidden"
200+
style={styleFromSize(size)}
201+
>
196202
<GlobeLinesIcon className="size-[90%] text-text-dimmed" />
197203
</span>
198204
);
199205
}
200206

201207
return (
202-
<span className="grid shrink-0 place-items-center" style={styleFromSize(size)}>
208+
<span className="grid shrink-0 place-items-center overflow-hidden" style={styleFromSize(size)}>
203209
<img
204210
src={avatar.url}
205211
alt="Organization avatar"
206212
className="size-full rounded-[10%] object-contain"
213+
onError={() => setFailed(true)}
207214
/>
208215
</span>
209216
);

0 commit comments

Comments
 (0)