Skip to content

Commit

Permalink
use object (#474)
Browse files Browse the repository at this point in the history
<!--変更したい場合は、`/.github/pull_request_template.md` を修正して下さい。-->
# PRの概要

<!-- 変更の目的 もしくは 関連する Issue 番号 -->
<!-- 以下のように書くと Issue にリンクでき、マージ時に自動で Issue を閉じられる-->
<!-- closes #1 -->

## 具体的な変更内容
<!-- ビューの変更がある場合はスクショによる比較などがあるとわかりやすい -->

## 影響範囲
<!-- この関数を変更したのでこの機能にも影響がある、など -->

## 動作要件
<!-- 動作に必要な 環境変数 / 依存関係 / DBの更新 など -->

## 補足
<!-- レビューをする際に見てほしい点、ローカル環境で試す際の注意点、など -->

## レビューリクエストを出す前にチェック!

- [ ] 改めてセルフレビューしたか
- [ ] 手動での動作検証を行ったか
- [ ] server の機能追加ならば、テストを書いたか
  - 理由: 書いた | server の機能追加ではない
- [ ] 間違った使い方が存在するならば、それのドキュメントをコメントで書いたか
  - 理由: 書いた | 間違った使い方は存在しない
- [ ] わかりやすいPRになっているか

<!-- レビューリクエスト後は、Slackでもメンションしてお願いすることを推奨します。 -->
  • Loading branch information
aster-void authored Nov 11, 2024
1 parent 67993bd commit 412b1ce
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 22 deletions.
Binary file modified web/bun.lockb
Binary file not shown.
37 changes: 16 additions & 21 deletions web/components/ImageFallback.tsx
Original file line number Diff line number Diff line change
@@ -1,43 +1,38 @@
"use client";

import { useEffect, useState } from "react";

type Props = {
url?: string;
fallback: React.ReactElement;
width: string;
height: string;
alt: string;
};

// https://medium.com/@abhishekmicosoft/handling-img-fallback-307653b2f30
export function ImageFallback({ width, height, url, fallback, alt }: Props) {
const [ok, setOK] = useState<boolean>(true);
useEffect(() => {
url;
setOK(true);
}, [url]);
export function ImageFallback({ width, height, url }: Props) {
const URL = url?.startsWith("/")
? `${process.env.NEXT_PUBLIC_API_ENDPOINT}${url}`
: url;

return ok ? (
<img
src={URL}
return (
<object
data={URL}
type="image/webp"
width={width} // there probably prevent style shaking
height={height}
style={{
width,
height,
objectFit: "cover",
borderRadius: "50%",
pointerEvents: "none",
}}
onError={() => {
console.log("failed to fetch image data of:", URL);
setOK(false);
}}
alt={alt}
/>
) : (
<>{fallback}</>
>
<img
src="/avatar.svg"
width={width}
height={height}
style={{ width, height }}
alt=""
/>
</object>
);
}
1 change: 0 additions & 1 deletion web/components/human/WithFallback.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ export function AvatarWithFallback({ width, height, url }: Props) {
sx={{ width: `${width}`, height: `${height}`, objectFit: "cover" }}
/>
}
alt=""
/>
);
}
6 changes: 6 additions & 0 deletions web/public/avatar.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 412b1ce

Please sign in to comment.