[第10回] UIコンポーネントのカスタマイズ

AWS Amplify

 

はじめに

 

皆さん。こんにちは! DreamHanksのエルムです。

今回はUIコンポーネントのカスタマイズについて説明していきます。

前回の記事はUserプール認証フローです。

 

UIテーマのカスタマイズ (Customize UI theme)

 

Webフレームワークでは、CSS Variablesを使用することができます。

React Nativeでは、AmplifyTheme.jsで定義されたプロパティをここでオーバーライドする必要があります。

 

 

独自のUIを作る方法 (Create your own UI)

デフォルトの認証体験をさらにカスタマイズするために、独自の認証UIを作成することができます。

そのために、コンポーネントは以下のAuthenticatorプロパティを利用します:

 

 

次の例では、「Always On」Auth UIを作成し、アプリの現在の認証状態を継続的に表示しています:

 

 

独自のAuthenticatorを作成する方法 (Authentication flows)

 

Authenticatorは、いくつかのAuthコンポーネントのコンテナとして設計されています。各コンポーネントは、例えば、SignIn、SignUpなどの単一のジョブを実行します。デフォルトでは、認証の状態に応じて、これらの要素がすべて表示されます。

Authenticator 要素の一部またはすべてを置き換える場合は、hideDefault={true} を設定し、コンポーネントがデフォルトのビューをレンダリングしないようにする必要があります。そうすれば、authStateを聞いて何をすべきかを決める、独自の子コンポーネントのセットを渡すことができます。

また、使用したい子コンポーネントを渡すこともできます。例えば、以下のAuthenticatorの設定では、Sign Outボタンを持つGreetingコンポーネントのみがレンダリングされます:

 

 

グリーティングメッセージのカスタマイズする方法(Customize greeting message)

Greetingsコンポーネントには、signedInとsignedOutの2つの状態があります。グリーティングメッセージをカスタマイズするには、文字列や関数を使ってinGreetingoutGreetingのプロパティを設定します。

 

 

エラーメッセージをカスタマイズする方法 (Customize Error Messages)

認証フロー中、Amplifyはサーバーから返されたエラーメッセージを処理します。Amplifyでは、messageMapコールバックを使って、これらのエラーメッセージを簡単にカスタマイズすることができます。

この関数は、元のメッセージを引数として受け取り、目的のメッセージを出力します。AmplifyMessageMap.jsファイルをチェックして、Amplifyがどのようにマップを機能させているかを確認してください。

 

 

テキストラベルのカスタマイズする方法 (Customize Text Labels)

ログインコンポーネントの日本語化:

Amplify UI FrameworkではI18nモジュールを使って言語対応しているようです。 ちなみにI18nは、国際化という意味で、internationalizationのiとnの間に18文字あることからI18nと表記されているようです。

カスタム辞書を作成し、それをアプリのボキャブラリーとして設定することができます。辞書は、さまざまな用語や言語を実装できるJavaScriptのオブジェクトです。

 

 

日本語のリストをvocabulariesファイルにまとめて、app.jsで読み込んで、I18nのputVocabularies()に渡せば日本語化できます。

 

 

初期のauthStateをカスタマイズする方法:

Authenticatorの初期の認証状態を変更することができます。デフォルトでは、初期状態はsignInで、signInコンポーネントが表示されます。signUpコンポーネントが最初に表示されるようにしたい場合は、そうすることができます:

 

withAuthenticator HOCによるカスタマイズ      (Customize withAuthenticator HOC)

 

withAuthenticator HOCでは、デフォルトの認証画面が用意されています。提供されているデフォルトのコンポーネントではなく、独自のコンポーネントを使用したい場合は、カスタマイズされたコンポーネントのリストをwithAuthenticatorに渡すことができます。

 

 

UIコンポーネントにカスタムスタイルを追加したい場合は、上記の手順でwithAuthenticator HOCにカスタムテーマオブジェクトをパラメータとして渡すことができます:

 

終わりに

 

今回の記事は以上になります。

次回は[第11回] データストアの設定を学びましょう。

ご覧いただきありがとうございます。

 

 

コメント