Amplifyの公式チュートリアルをTypeScript×ReduxToolkit×Chakra uiでやってみた(Todoアプリ)
今回 こちらのAmplifyの公式チュートリアルをやってみました。
公式では言語をJS、状態管理をHooks、UIキットをMaterial-uiでした。
アレンジを加えるために言語をTS、状態管理をRTK、UIキットをChakraでやってみました。
UIの共有
とてもシンプルなTodoアプリになりしました。
制作を通じて学んだこと
Authenticationはかなりカスタマイズ性あるなと改めて実感しました。
デフォルト?だとwithAuthenticatorでログイン機能を以下のように実装するのかなと思います。
import { withAuthenticator } from '@aws-amplify/ui-react'
function App() {
return (
<Box
w={{ base: "90%", md: "50%" }}
mx="auto"
mt="50px"
bg="gray.50"
minH="100vh"
>
<Heading as="h1" textAlign="center" pt="5">
Amplify Todo
</Heading>
<InputArea />
<TodoList />
</Box>
);
}
export default withAuthenticator(App)
ユーザーはサインアップするにはあれこれ入力する必要があります。
ここまでユーザーに入力してもらわなくて大丈夫という時には以下のようなコンポーネントを作るだけで簡単にカスタマイズできます。ちなみに下の例では電話番号を省略しています。
他にも色々とカスタマイズできるので公式ドキュメントを見てみてください。
import {AmplifyAuthenticator, AmplifySignUp} from '@aws-amplify/ui-react';
const App = () => {
return (
<AmplifyAuthenticator>
<AmplifySignUp
slot="sign-up"
formFields={[
{ type: "username" },
{ type: "password" },
{ type: "email" }
]}
/>
</AmplifyAuthenticator>
)
}
苦労した点
graphql周りの型定義にかなり苦戦しました。回避策としてasを使って型アサーションで強行突破しました。
型安全性が損なわれているような実装になってしまってので、もっと堅牢な方法を見つけていきたいと思います。
最後に
Amplify SNS Workshopも同じようにやってみたので改めて記事にします。
参考記事
Author And Source
この問題について(Amplifyの公式チュートリアルをTypeScript×ReduxToolkit×Chakra uiでやってみた(Todoアプリ)), 我々は、より多くの情報をここで見つけました https://qiita.com/takeiin/items/1349a7e511c10d1ee585著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .