週刊ニュース Lv9(2023年1月14日~2023年1月20日)
Metadata
Date: January 21st, 2023
Category: 週刊ニュース
今週もいつも通り淡々とやりたいことを進めていました。今週も振り返っていきましょう。
1月14日(土)
Apollo Clientと@graphql-codegen/typescript-react-apolloと仲良くなった
以前、諦めたのですがやっぱり気になって色々調べてみました。
Apollo Clientの方向性では難しいと思いつつ調べていると、ほぼ同じ悩みの記事を見つけました。
記事では、@graphql-codegen/typescript-react-apolloの
apolloReactHooksImportFrom
を使いcodegenで自動生成されるhooksを独自のhooksを使うことで解消していました。色々省略するのですが、codegenすると生成されるhooks内部ではApolloから下記を呼び出しているようでした。
Apollo.MutationHookOptions
Apollo.useMutation
Apollo.QueryHookOptions
Apollo.useQuery
Apollo.LazyQueryHookOptions
Apollo.useLazyQuery
このApollo部分がApolloReactHooksに置き換わるので、ApolloReactHooksで使えるようにする必要がありそうなことがわかりました。
ここまで調べたり、試してみて実装できそうなことはわかったのですが、思った以上に対応に時間がかかりそうだと思い、以前諦めたApollo Clientについては実装をしっかり見れていなかったのでコードを読んだりしてこの日は力尽きました。
1月15日(日)
特になし
1月16日(月)
attr_accessorのセッターを使って値をセットしようとしてもセットされない
まさに下記の記事と同じ内容でした。Formオブジェクト内でattr_accessorのセッターを使って値をセットしようとしてもセットできませんでしたが、selfをつけるとセッターと認識し値をセットできました。
1月17日(火)
報告が苦手だなと思った
アジャイルの現場なので毎朝デイリースクラムがあり、そこで各自やったこと、やること共有するのですが報告が上手い人は内容が整理されていてぱっと状態を把握できるのですごいと思いました。
メールクライアントで送信者名を表示させる
特別な対応をする必要はなく、
送信者名 <noreply@example.com>
という形式でFromを設定することでよかったです。また、Railsではemail_address_with_name
というメソッドが用意されていたのでこれを使いました。
1月18日(水)
@graphql-codegen/typescript-react-apollo + react-routerを組み合わせてエラー内容に合わせてコンポーネントを出し分けする
フロントが得意な人の力を借りることでGraphQLリクエストで404エラーを受け取ったときにエラー用コンポーネントを表示するという土台を構築することができました。
エラーをthrowする部分については、@graphql-codegen/typescript-react-apolloの
apolloReactHooksImportFrom
を使いcodegenで自動生成されるhooksを独自のhooksを使うことで実現しました。エラーをcatchする部分については、react-routerv6.4から導入されたerrorElement機能を使ってrouter内のエラーをcatchしたらerrorElementで対応するエラー用コンポーネントを表示するようにしました。
エラーをthrowする部分がApollo Clientを使うとonErrorを使ってthrowしても内部で握りつぶされていたりで共通化のボトルネックとなっていましたが、@graphql-codegen/typescript-react-apolloの
apolloReactHooksImportFrom
のおかげで実現することができました。@graphql-codegen/typescript-react-apolloの
apolloReactHooksImportFrom
はとても便利なのでぜひ活用してみてください。
1月19日(木)
特になし
1月20日(金)
Ruby3.2へのバージョンアップ
破壊的な変更があったり、gem側がまだサポートされていなかったり、サポートされていてもgemをアップデートする必要があったりと一筋縄ではいかなさそうです…
https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/