Skip to content
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

✨ スケジュール一覧画面から詳細画面への画面遷移を実装 #123

Merged
merged 4 commits into from
Dec 5, 2023

Conversation

tatsutakein
Copy link
Member

@tatsutakein tatsutakein commented Dec 5, 2023

Issue

  • close #ISSUE_NUMBER 🦕

概要

スケジュール一覧画面から詳細画面への画面遷移を実装します。

レビュー観点

特になし

レビューレベル

  • Lv0: まったく見ないで Approve する
  • Lv1: ぱっとみて違和感がないかチェックして Approve する
  • Lv2: 仕様レベルまで理解して、仕様通りに動くかある程度検証して Approve する
  • Lv3: 実際に環境で動作確認したうえで Approve する

レビュー優先度

  • すぐに見てもらいたい ( hotfix など ) 🚀
  • 今日中に見てもらいたい 🚗
  • 今日〜明日中で見てもらいたい 🚶
  • 数日以内で見てもらいたい 🐢

参考リンク

スクリーンショット

Before After

Summary by CodeRabbit

  • 新機能

    • スケジュールリスト画面にアイテムクリック時のイベントハンドリングを追加しました。
    • スケジュール詳細画面に参加機能を追加しました。
  • バグ修正

    • スケジュールアイテムクリック時のナビゲーションの不具合を修正しました。
  • 改善

    • スケジュール参加宣言のデータ型をLongからStringに変更しました。
    • ユーザーインターフェースの一部要素を削除し、ユーザビリティを向上させました。
  • リファクタリング

    • 内部コードのリファクタリングを行い、パフォーマンスを向上させました。

@tatsutakein tatsutakein requested a review from a team as a code owner December 5, 2023 12:52
Copy link

coderabbitai bot commented Dec 5, 2023

Walkthrough

アプリケーションのスケジュール機能に関する一連の変更が行われました。これには、スケジュールリストの項目クリック時の動作をカスタマイズするためのコールバックの追加、参加者のデータ型の変更、およびスケジュール詳細画面での参加処理のための新しいユースケースの導入が含まれます。これらの変更は、ユーザーインターフェースとバックエンドの両方に影響を及ぼし、アプリケーションのユーザー体験を向上させることを目的としています。

Changes

File Path Change Summary
app/.../RootView.swift RootViewscheduleListケースにonScheduleItemClickパラメータを追加して、アイテムクリック時にstateMachineを介してインテントをディスパッチするように変更
app/.../ComposeScheduleListScreen.swift ComposeScheduleListScreenonScheduleItemClickクロージャを追加し、makeUIViewControllerメソッドを更新
app/shared/.../NitoNavHost.kt scheduleListScreen関数にonScheduleItemClick引数を追加して、アイテムクリックイベントの処理を変更
core/network/.../NetworkParticipantDeclaration.kt NetworkParticipantDeclarationscheduleIdmemberIdのデータ型をLongからStringに変更し、memberIduserIdにリネーム
feature/schedule/.../ScheduleDetailScreen.kt ArrowBackアイコンのインポートを削除し、TopAppBarからnavigationIconセクションを削除
feature/schedule/.../ScheduleDetailStateMachine.kt ScheduleDetailStateMachineParticipateUseCaseを追加し、参加処理に使用
feature/schedule/.../ScheduleFeatureModule.kt scheduleFeatureModule宣言にparticipate依存関係を追加
feature/schedule/.../ScheduleListEvent.kt NavigateToScheduleDetailOnScheduleItemClickに変更し、コメントを更新
feature/schedule/.../ScheduleListScreen.kt ScheduleListRoute関数にonScheduleItemClickパラメータを追加
feature/schedule/.../ScheduleListStateMachine.kt ClickShowConfirmParticipateDialogの処理を変更し、新しいOnScheduleItemClickイベントを発行
feature/schedule/.../ScheduleNavigation.kt scheduleListScreen関数にonScheduleItemClickコールバックを追加し、ScheduleIdの新しいインポートを追加
feature/schedule/.../ScheduleListScreen.ios.kt ScheduleListRouteViewController関数にonScheduleItemClickパラメータを追加
feature/top/.../TopScreenEvent.kt OnRecentScheduleClickedのコメントを"スケジュールリスト画面へのナビゲーション"から"スケジュール詳細画面へのナビゲーション"に変更
app/.../ComposeScheduleDetailScreen.swift ComposeScheduleDetailScreenParticipateUseCase依存関係を追加

🐰✨
コードの森を駆け巡り、変更を織りなす
バグを避けて、機能を縫い合わせ
新たな旅路へとユーザーを導く
さあ、アップデートの時が来た!


Tips

Chat with CodeRabbit Bot (@coderabbitai)

  • If you reply to a review comment from CodeRabbit, the bot will automatically respond.
  • To engage with CodeRabbit bot directly around the specific lines of code in the PR, mention @coderabbitai in your review comment
  • Note: Review comments are made on code diffs or files, not on the PR overview.
  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Note: For conversation with the bot, please use the review comments on code diffs or files.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 0

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 7545806 and 99c82cc.
Files selected for processing (13)
  • app/ios/Modules/Sources/Navigation/RootView.swift (1 hunks)
  • app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (2 hunks)
  • app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (1 hunks)
  • core/network/src/commonMain/kotlin/club/nito/core/network/participation/model/NetworkParticipantDeclaration.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailScreen.kt (2 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailStateMachine.kt (3 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (2 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (2 hunks)
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
  • feature/top/src/commonMain/kotlin/club/nito/feature/top/TopScreenEvent.kt (1 hunks)
Files skipped from review due to trivial changes (1)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailScreen.kt
Additional comments: 18
app/ios/Modules/Sources/Navigation/RootView.swift (1)
  • 38-47: 変更点を確認しました。RootViewscheduleListケースでComposeScheduleListScreenをインスタンス化する際に、アイテムクリック時にstateMachineを介してルーティングインテントをディスパッチする新しいパラメータonScheduleItemClickが追加されています。この変更は、スケジュールリストから詳細画面へのナビゲーションを実装するPRの目的に沿っています。ロジックに問題は見受けられません。
app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (1)
  • 4-16: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [6-26]

変更点は適切に実装されており、ComposeScheduleListScreen 構造体に新しいクロージャパラメータ onScheduleItemClick が追加され、それが ScheduleListRouteViewController に渡されています。この変更により、スケジュールリスト画面から詳細スケジュール画面への遷移が可能になります。

app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (1)
  • 62-63: この変更は、スケジュールリスト画面から詳細スケジュール画面へのナビゲーションを実装するプルリクエストの目的と一致しています。scheduleListScreen関数にonScheduleItemClick引数が追加され、アイテムクリックイベントが発生したときにnavigator::navigateToScheduleDetailを呼び出すようになりました。この変更により、ユーザーがスケジュールリストのアイテムをクリックしたときに詳細ビューにナビゲートするフローが可能になります。
core/network/src/commonMain/kotlin/club/nito/core/network/participation/model/NetworkParticipantDeclaration.kt (2)
  • 7-11: データ型の変更と変数名の変更が正しく行われています。scheduleIduserIdString型に変更され、memberIduserIdにリネームされています。

  • 13-18: toNetworkModel関数の変換ロジックが、データ型と変数名の変更に適切に対応しています。scheduleIduserIdフィールドは、新しいStringデータ型に合わせて直接割り当てられています。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailStateMachine.kt (4)
  • 2-8: インポート文の追加が正しく行われています。

  • 19-25: ParticipateUseCaseScheduleDetailStateMachine のコンストラクタに追加されています。

  • 54-60: ScheduleDetailIntent.ClickParticipate インテントの処理が適切に行われており、participate メソッドの呼び出しとメッセージの表示が含まれています。

  • 57-57: participate メソッドに渡される空文字列がハードコードされています。これが意図的なものかどうかを確認してください。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt (1)
  • 18-24: この変更は、ScheduleDetailStateMachineのインスタンス生成時に新しい依存関係participateが追加されたことを示しています。この変更により、スケジュールの詳細状態マシンのロジックまたは振る舞いに影響を与える可能性があります。コードレビューの観点からは、この変更は適切に見えますが、participateの依存関係が正しく設定されていることを確認する必要があります。
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1)
  • 3-8: 変更は適切で、ScheduleListEventNavigateToScheduleDetailからOnScheduleItemClickへの名前変更は、スケジュール項目のクリックをより正確に表しています。この変更は、ユーザーがスケジュールリストから詳細画面に移動する際のイベントの意図を明確にするためのものです。
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (1)
  • 25-35: 変更点は適切に実装されており、スケジュールリストから詳細画面への遷移機能が正しく追加されています。新しいパラメータonScheduleItemClickが追加され、イベントタイプがScheduleListEvent.OnScheduleItemClickの場合に呼び出されるようになっています。
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (1)
  • 50-54: この変更は、ScheduleListIntent.ClickShowConfirmParticipateDialog インテントの処理を変更し、ScheduleListEvent.OnScheduleItemClick イベントを発行するようになりました。これは、ユーザーがスケジュールリストのアイテムをクリックしたときに詳細画面へのナビゲーションをトリガーするための変更です。この変更が意図した動作をしているか、また、他のイベントハンドリングに影響を与えていないかを確認してください。
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (3)
  • 3-3: 新しいインポート文が追加されました。これは、scheduleListScreen関数の変更に伴い、ScheduleId型のパラメータを使用するために必要です。

  • 14-24: scheduleListScreen関数は、onScheduleItemClickという新しいコールバックパラメータを受け取るように変更されました。これは、スケジュール項目がクリックされたときに呼び出されます。デフォルト値は空のラムダ式で、これはコールバックがオプショナルの場合に安全なデフォルトです。

  • 11-24: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [1-24]

提供されたコードの変更は、プルリクエストの目的と一致しており、ロジック、正確さ、セキュリティ、パフォーマンス、保守性に明らかな問題はありません。

feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1)
  • 9-19: 変更されたScheduleListRouteViewController関数は、新しいパラメータonScheduleItemClickを受け入れるようになりました。これは、スケジュール項目のクリックを処理する新しいコールバックメカニズムを導入しています。デフォルト値は安全な空のラムダ式{}です。この変更は、コードのロジックと制御フローに影響を与えますが、問題は見当たりません。
feature/top/src/commonMain/kotlin/club/nito/feature/top/TopScreenEvent.kt (1)
  • 7-9: コメントの変更は、PRの目的と提供された要約と一致しています。これは、OnRecentScheduleClickedイベントのロジックまたは動作が変更されたことを反映している可能性があります。

@tatsutakein tatsutakein merged commit 35b4ccc into main Dec 5, 2023
3 checks passed
@tatsutakein tatsutakein deleted the rt/list-to-detail branch December 5, 2023 13:48
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 0

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 7545806 and ba3e831.
Files selected for processing (14)
  • app/ios/Modules/Sources/Navigation/RootView.swift (1 hunks)
  • app/ios/Modules/Sources/Schedule/ComposeScheduleDetailScreen.swift (1 hunks)
  • app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (2 hunks)
  • app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (1 hunks)
  • core/network/src/commonMain/kotlin/club/nito/core/network/participation/model/NetworkParticipantDeclaration.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailScreen.kt (2 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailStateMachine.kt (3 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (2 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (2 hunks)
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
  • feature/top/src/commonMain/kotlin/club/nito/feature/top/TopScreenEvent.kt (1 hunks)
Files skipped from review due to trivial changes (2)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailScreen.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/detail/ScheduleDetailStateMachine.kt
Files skipped from review as they are similar to previous changes (10)
  • app/ios/Modules/Sources/Navigation/RootView.swift
  • app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift
  • app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt
  • feature/top/src/commonMain/kotlin/club/nito/feature/top/TopScreenEvent.kt
Additional comments: 2
app/ios/Modules/Sources/Schedule/ComposeScheduleDetailScreen.swift (1)
  • 17-23: 新しい依存関係participateScheduleDetailStateMachineの初期化子に追加されたことを確認しました。この変更は、スケジュール詳細画面における参加者のインタラクションや関与に関連するロジックまたは振る舞いの変更を示唆しています。コードに問題は見受けられません。
core/network/src/commonMain/kotlin/club/nito/core/network/participation/model/NetworkParticipantDeclaration.kt (1)
  • 5-18: 変更されたNetworkParticipantDeclarationクラスとtoNetworkModel関数は、要約に記載されている内容と一致しています。データ型の変更と変数名の変更が正しく反映されており、ロジックに問題は見受けられません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant