WebサイトにGIFを表示しよう!
🧪 テストデータを表示する
最終的には、ユーザーがWebアプリケーションにPhantom Walletを接続している場合のみ、Solanaチェーン上に保存されたGIFデータを表示していきます。
ですが、今はSolanaプログラムと連携する前段階ということで、WebアプリケーションにGIFのテストデータを表示していきます。
テストデータは好きなものを使用していただいて構いません。
今回の例ではGIF画像のシェアサービスGIPHYを利用していきます。
GIPHYで気に入った画像を選択し たら、Shareをクリックし、Copy GIF Linkボタンを押してリンクをコピーしておきます。

それでは、お気に入りのGIF画像へのリンクをApp.jsに反映させましょう。
App.jsの定数を宣言している場所に下記を追加します。
const TEST_GIFS = [
"https://media.giphy.com/media/ZqlvCTNHpqrio/giphy.gif",
"https://media.giphy.com/media/bC9czlgCMtw4cj8RgH/giphy.gif",
"https://media.giphy.com/media/kC8N6DPOkbqWTxkNTe/giphy.gif",
"https://media.giphy.com/media/26n6Gx9moCgs1pUuk/giphy.gif",
];
テストデータで使用するGIFは何枚でもOKです。
また、使用するGIFにあわせ、以下のようにWebサイトのタイトルと説明を変更しておきましょう。
<p className="header">🖼 GIF Portal</p>
<p className="sub-text">
View your GIF collection ✨
</p>
続いて、設定したGIFをWebアプリケーションに表示します。
アプローチとしてはrenderNotConnectedContainer関数と同じ方法をとります。
それではrenderNotConnectedContainer関数のすぐ下に、以下のとおりrenderConnectedContainer関数を追加しましょう。
const renderConnectedContainer = () => (
<div className="connected-container">
<div className="gif-grid">
{TEST_GIFS.map((gif) => (
<div className="gif-item" key={gif}>
<img src={gif} alt={gif} />
</div>
))}
</div>
</div>
);
renderConnectedContainer関数には、すべてのGIFをレンダリングするコードが書かれています。
ただし、これだけではWebアプリケーションの表示は変わりません。
renderConnectedContainer 関数もrenderNotConnectedContainer関数と同じように、呼び出す必要があります。
return文の中身を以下のとおり変更します。
return (
<div className="App">
<div className="container">
<div className="header-container">
<p className="header">🖼 GIF Portal</p>
<p className="sub-text">View your GIF collection ✨</p>
{!walletAddress && renderNotConnectedContainer()}
</div>
<main className="main">
{/* ウォレットが接続されている場合にrenderConnectedContainer関数を実行します。 */}
{walletAddress && renderConnectedContainer()}
</main>
<div className="footer-container">
<img alt="Twitter Logo" className="twitter-logo" src={twitterLogo} />
<a
className="footer-text"
href={TWITTER_LINK}
target="_blank"
rel="noreferrer"
>{`built on @${TWITTER_HANDLE}`}</a>
</div>
</div>
</div>
);
これらすべてを変更したうえでPhantom Walletを接続すると、設定したGIFが全て表示されているはずです。

WebアプリケーションのスタイルはApp.cssで設定済みですが、好みに合わせて変更してみてください。