WEBアプリの初期状態をセットアップしよう
🐰 Web アプリケーションから NFT キャラクターを Mint する
前回のレッスンでは、Webアプリケーションからユーザーのウォレットアドレスにアクセスする機能を実装しました。
これから、Webアプリケーションから、コントラクトを呼び出しNFTキャラクターをMintする機能を実装していきます。
下記に、Webアプリケーションのレンダリングロジックを記します。
シナリオ 1. ユーザーが Web アプリケーションにログインしていない場合
👉 WEBアプリ上に、"Connect Wallet to Get Started" ボタンを表示します。
シナリオ 2. ユーザーは Web アプリケーションにログインしており、かつ NFT キャラクターを持っていない場合
👉 WEBアプリ上に、SelectCharacter コンポーネントを表示します。
シナリオ 3. ユーザーは Web アプリケーションにログインしており、かつ NFT キャラクターを持っている場合
👉 WEBアプリ上に、「Arena Component」を表示します。
- 「Arena Component」は、プレイヤーがボスと戦う場所です。
それでは、上記のシナリオを実装するロジックを構築していきましょう。
🧱 SelectCharacterコンポーネントを作る
ターミナルに向かい、client/src/Components/SelectCharacterフォルダに移動してください。
clientディレクトリ上で下記を実行すると、スムーズに移動できます。
cd src/Components/SelectCharacter
SelectCharacterの中に、SelectCharacterコンポーネントのロジックと、スタイルを保存していきます。
それでは、SelectCharacterフォルダの中にindex.jsというファイルを新しく作成しましょう。
ターミナル上で、SelectCharacterフォルダにいる状態で、下記を実行すると、index.jsが簡単に作成できます。
touch index.js
VS Codeでindex.jsを開いて、下記のコードをは貼り付けましょう。
import React, { useEffect, useState } from "react";
import "./SelectCharacter.css";
// setCharacterNFTについては、あとで詳しく説明します。
const SelectCharacter = ({ setCharacterNFT }) => {
return (
<div className="select-character-container">
<h2>⏬ 一緒に戦う NFT キャラクターを選択 ⏬</h2>
</div>
);
};
export default SelectCharacter;
index.jsが更新できたら、App.jsを編集して、条件つきレンダリングを実装していきます。