AtCoderProblems icon indicating copy to clipboard operation
AtCoderProblems copied to clipboard

react-refetch を置き換える

Open kenkoooo opened this issue 4 years ago • 33 comments

フロントエンドとバックエンドの通信にはかつては react-refetch を使っていましたが、react-refetch がメンテされなそうということと、一部の swr による置き換えがうまくいっているので、残った react-refetch の実装も swr を中心としたものに置き換えていきます。

Progress

  • [x] TablePage by @Atsuyoshi-N (#951, #958)
  • [x] ListPage #1040
  • [x] RecentContestList by @yb173 #1063
  • [x] RecentSubmissions by @yb173 #1065
  • [x] ContestUpdatePage by @atsuya02 #1074
  • [x] SingleProblemList by @atsuya02 #1076
  • [x] ResetProgress @atsuya02 #1080
  • [ ] MyAccountPage
  • [ ] UserProblemListPage

フロントエンドの開発環境をセットアップする方法

https://github.com/kenkoooo/AtCoderProblems/tree/master/atcoder-problems-frontend

  1. yarn をインストールする
  2. yarn する
  3. yarn start する

kenkoooo avatar Apr 03 '21 14:04 kenkoooo

私がこのissueを担当する予定です。 まずは、kenkooooさんとのやり取りで、TablePageのsubmissionsuseMultipleUserSubmissionsに変更するところから着手します。

Atsuyoshi-N avatar May 18 '21 09:05 Atsuyoshi-N

@Atsuyoshi-N ではまずは TablePage をお願いしますね

kenkoooo avatar May 18 '21 11:05 kenkoooo

分からないことがあればいつでもここに書いてください

kenkoooo avatar May 18 '21 11:05 kenkoooo

Webアプリ開発初心者ですが、参加させていただきます。よろしくお願いします!

knagakura avatar May 18 '21 13:05 knagakura

@knagakura お願いします。まずは RecentContestList をお願いします。環境構築については上の方に書いてありますが、分からなければ聞いてください。やることは以下のとおりです。

  1. InternalAPIClient.ts に最近のコンテストをreact-hookで取得する関数 useRecentContests() を追加する。
  2. https://github.com/kenkoooo/AtCoderProblems/blob/0282bbde17f6b5628f3bb366fef2ac8cb2fca5f0/atcoder-problems-frontend/src/pages/Internal/VirtualContest/RecentContestList.tsx#L16 ここの部分を useRecentContests で置き換える。

わからないことがあれば、どんなレベルでも構いませんので聞いてください。

kenkoooo avatar May 18 '21 13:05 kenkoooo

@kenkoooo お疲れ様です。大きく3点質問があります。

質問事項 useMultipleUserSubmissions(userId, rivals)を作成するにあたって、

  • useSWRDataを使用することになると思いますが、第一引数のURLをuserIdごとに指定するにはどうしたら良いですか?
    • PromiseでuseSWRDataを囲もうと思ったのですが、それだと、レスポンスが返ってきたかが判断できなさそうだと思い混乱しています。
  • fetcherには、既存の fetchUserSubmissions を使用すれば良いですか?
    • こちらの関数の中でfetchするURLを指定できればuseSWRDataの第一引数は特に気にしなくても良いですか?
  • yarn start(react-scripts start)をしてブラウザで挙動を確認する時、コンソールにinternal server errorが出たときのエラーログの確認方法を教えていただきたいです。

Atsuyoshi-N avatar May 19 '21 05:05 Atsuyoshi-N

@Atsuyoshi-N

  • useMultipleUserSubmissions は既にあるのでそれを使ってください。上の方にある検索ボックスから検索できますのでご活用ください。
  • バックエンドのログはAWSコンソールに入れば確認することは出来ますが、基本的にはフロントエンドで不正な引数でAPIを叩いていることが原因なので、まずはどのURLでどんな引数で叩いているかを教えてください。もしコードを読めるようでしたら実装は全てこのリポジトリにありますので探していただいても構いませんが、聞いていただくのが手っ取り早いかと思います。

kenkoooo avatar May 19 '21 06:05 kenkoooo

ありがとうございます。 useMultipleUserSubmissions を独自実装しようとしてつまづいていたのでアドバイス非常に助かりました。

TablePageを実装し、draft PRにしたのでお手隙で確認していただきたいです。

他のPageでも追加で実装が発生すると思ったのでdraft PRにしています。 TablePageで1 PRということであれば普通のPRに変更します。

Atsuyoshi-N avatar May 19 '21 11:05 Atsuyoshi-N

@Atsuyoshi-N TablePage で 1PRにしましょう

kenkoooo avatar May 19 '21 15:05 kenkoooo

@kenkoooo 1PRにしてdraftを外しました。お手隙で確認よろしくお願いします。

Atsuyoshi-N avatar May 19 '21 19:05 Atsuyoshi-N

@knagakura 調子はどうでしょう?とりあえずローカルで実行できましたか?

kenkoooo avatar May 24 '21 04:05 kenkoooo

@kenkoooo お疲れ様です。 もし次に取り組むタスクがあれば頂きたいです。

Atsuyoshi-N avatar May 26 '21 12:05 Atsuyoshi-N

@Atsuyoshi-N

TablePage の react-refetch を置き換える作業をやっていただいても良いですか?まだ少し残っているかと思います。

kenkoooo avatar May 27 '21 03:05 kenkoooo

@kenkoooo かしこまりました。 progressResetList が残っていそうなのでそちらを置き換えます。

Atsuyoshi-N avatar May 27 '21 08:05 Atsuyoshi-N

@kenkoooo progressResetList を置き換えるのに際して質問です。

前回のsubmissionsを取得するための関数は用意されていましたが、今回は、APIClient.tsに新たに足して対応するという理解で正しいですか?

Atsuyoshi-N avatar May 27 '21 13:05 Atsuyoshi-N

はい、たしかInternalAPIClient.tsみたいなのがあって、AtCoder Problems独自のデータに関してはこちらを使っているので、今回もこのファイルに足していただければと思います。

kenkoooo avatar May 27 '21 16:05 kenkoooo

@knagakura 連絡がつかないので一旦 unassign しておきますが、やりたくなったらいつでも言ってください!

kenkoooo avatar Jun 10 '21 01:06 kenkoooo

@kenkoooo 初めまして。 RecentContestList を担当してもよろしいでしょうか?

yb173 avatar Sep 19 '21 03:09 yb173

@yb173 ぜひ!分からないことがあればいつでも聞いてください!

kenkoooo avatar Sep 19 '21 05:09 kenkoooo

@kenkoooo 順番前後しますが、次は RecentSubmissions を担当してもよろしいですか?

yb173 avatar Sep 22 '21 10:09 yb173

@yb173 ぜひ〜〜〜

kenkoooo avatar Sep 23 '21 02:09 kenkoooo

@kenkoooo 初めまして! ContestUpdatePageを担当してもよろしいですか?

a-yossy avatar Oct 27 '21 13:10 a-yossy

@atsuya02 ぜひお願いします!

kenkoooo avatar Oct 28 '21 02:10 kenkoooo

@kenkoooo ContestUpdatePageの動作確認方法を教えていただきたいです。

a-yossy avatar Oct 29 '21 09:10 a-yossy

@atsuya02 yarn start でローカルで走るのはできていますか?

kenkoooo avatar Oct 30 '21 15:10 kenkoooo

@kenkoooo yarn startでローカルで走るのはできています。 ログインをしておらず、Create New Contestボタンが表示されていませんでした。 解決しました、申し訳ありません!

a-yossy avatar Oct 31 '21 06:10 a-yossy

良かったです!

kenkoooo avatar Oct 31 '21 07:10 kenkoooo

@kenkoooo SingleProblemListを担当してもよろしいでしょうか?

a-yossy avatar Nov 13 '21 08:11 a-yossy

@atsuya02 ぜひ!

kenkoooo avatar Nov 13 '21 08:11 kenkoooo

@kenkoooo ResetProgressを担当してもよろしいでしょうか?

a-yossy avatar Nov 20 '21 07:11 a-yossy