-
-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
授業追加時の重複チェックを実装 #665
授業追加時の重複チェックを実装 #665
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
e35aa06
to
48d4bcc
Compare
48d4bcc
to
64baddb
Compare
64baddb
to
75b20cb
Compare
await Promise.all( | ||
selectedSearchResults.filter( | ||
({ schedules }) => | ||
!Usecase.checkScheduleDuplicate(ports)(year.value, schedules) | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
以下の理由で常に !Usecase.checkScheduleDuplicate
が false になっていました
await Promise.all(
selectedSearchResults.filter(
({ schedules }) =>
!Usecase.checkScheduleDuplicate(ports)(year.value, schedules) // !Boolean(Promise<T>) なので常に false になる
)
)
const duplicatedCourses = selectedSearchResults | ||
.filter(({ course: { code: selectedCourseCode } }) => { | ||
return registeredCourse.some( | ||
({ code: registeredCourseCode }) => | ||
registeredCourseCode === selectedCourseCode | ||
); | ||
}) | ||
.map(({ course }) => course); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここらへんを checkScheduleDuplicate
のように Usecase にするべきかどうかは迷ったので意見があればぜひ!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Usecaseにした方がいいかなと思いました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます!エラー数が増えてきたので一旦これで Merge しますが、後ほど UseCase に直します。
Ref: #666
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
修正ありがとうございます!
去年の夏からずっとバグってたと思うと恐ろしいですね。
Resolves #664
変更点
この PR の変更点は以下です。
重複スケジュール検知のロジックがバグっていたので修正しました ( 7c9c727 )
Promise
を待たずに.filter
を適応しているなどのミスで、常に重複スケジュールがないと判断されていました。このロジックは今回の機能追加と関連がある領域だったので、この PR で直しました。
↓が出てくるように修正した
すでに登録した講義がある場合に Toast でエラーを通知するようにしました ( 45fb9e3 )
1.
はあくまで重複スケジュールがあったときの警告で、さらに通常講義のみに限定されます。したがって 1 とは別に同じ講義を追加しようとしたらエラー Toast を出現させる仕組みが必要です。これをこのコミットで追加しました。また Toast の表示時間も調整しました。
前述の
2.
のエラーに遭遇したユーザ数を数えるための Tracking を追加しました ( 75b20cb )Sentry を見ると同様のエラーに遭遇したユーザは多く、そもそも重複した講義を登録しようとさせない UX が必要かもしれません(登録済みの講義はチェックボックスが押せないなど)
今回は暫定的な対応で修正しますが、今後上記のような改善をする場合、どれぐらいのユーザがこのエラー Toast を見たのかを知るために、Tracking を追加しました。