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

✨ ID を元にスケジュールを取得するユースケースを追加 #117

Merged
merged 5 commits into from
Dec 5, 2023

Conversation

tatsutakein
Copy link
Member

@tatsutakein tatsutakein commented Dec 4, 2023

Issue

  • close #ISSUE_NUMBER 🦕

概要

ID を元にスケジュールを取得するユースケースを追加します。

レビュー観点

特になし

レビューレベル

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

レビュー優先度

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

参考リンク

スクリーンショット

Before After

Summary by CodeRabbit

  • 新機能

    • スケジュールリスト機能が追加されました。
    • スケジュール検索機能が改善されました。
  • バグ修正

    • スケジュール表示に関する複数のバグが修正されました。
  • ドキュメント

    • ユーザー向けのドキュメントが更新されました。
  • リファクタリング

    • スケジュール関連のコードが整理され、より効率的になりました。
  • スタイル

    • スケジュールリストのUIが改善され、使いやすくなりました。
  • テスト

    • スケジュール機能のテストカバレッジが向上しました。
  • その他の作業

    • 内部コードの整理が行われ、パフォーマンスが向上しました。
  • リバート

    • 不具合を引き起こす変更がリバートされ、安定性が回復しました。

@tatsutakein tatsutakein requested a review from a team as a code owner December 4, 2023 16:32
Copy link

coderabbitai bot commented Dec 4, 2023

Walkthrough

全体的な変更は、スケジュール関連の機能の再編成とリファクタリングに焦点を当てています。特に、ScheduleListViewModelScheduleListStateMachineに置き換えられ、関連する関数やパラメータ名が更新されています。また、スケジュールIDの取り扱いを改善するために、新しいScheduleId型が導入されています。

Changes

ファイルパス 変更概要
.../ios/combined/src/iosTest/kotlin/.../EntryPointTest.kt FetchParticipantScheduleByIdUseCaseの追加とテストでの使用
.../app/shared/src/commonMain/kotlin/.../NitoNavHost.kt navigateToSchedulescheduleScreenのインポートと関数呼び出しをnavigateToScheduleListscheduleListScreenに変更
.../core/data/src/commonMain/kotlin/.../OfflineFirstScheduleRepository.kt scheduleFlowメソッドを削除し、fetchScheduleメソッドを追加
.../core/data/src/commonMain/kotlin/.../ScheduleRepository.kt fetchScheduleメソッドを新たに追加
.../core/domain/src/commonMain/kotlin/.../FetchParticipantScheduleByIdUseCase.kt FetchParticipantScheduleByIdUseCaseインターフェースとFetchParticipantScheduleByIdExecutorクラスを追加
.../core/domain/src/commonMain/kotlin/.../UseCaseModule.kt FetchParticipantScheduleByIdExecutorをモジュール設定に追加
.../core/domain/src/commonMain/kotlin/.../ParticipantExtensions.kt List<Participant>に対する新しい拡張関数を追加
.../core/domain/src/commonMain/kotlin/.../ParticipantSchedule.kt ParticipantScheduleデータクラスのidフィールドの型をStringからScheduleIdに変更
.../core/model/src/commonMain/kotlin/.../Schedule.kt ScheduleId型エイリアスの削除
.../core/model/src/commonMain/kotlin/.../ScheduleId.kt 新しい型エイリアスScheduleIdを追加
.../core/network/src/commonMain/kotlin/.../FakeScheduleRemoteDataSource.kt getSchedule関数のシグネチャをfetchScheduleに変更し、ScheduleIdインポートを追加
.../core/network/src/commonMain/kotlin/.../ScheduleRemoteDataSource.kt getSchedule関数をfetchScheduleにリネームし、パラメータタイプをStringからScheduleIdに変更
.../core/network/src/commonMain/kotlin/.../SupabaseScheduleRemoteDataSource.kt getSchedule関数をfetchScheduleにリネームし、ID列との等価性をチェックする新しいフィルタ条件を追加
.../feature/schedule/src/commonMain/kotlin/.../di/ScheduleFeatureModule.kt ScheduleListViewModelのインポートをScheduleListStateMachineに変更し、関連するパラメータとインスタンス化を更新
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleListEvent.kt パッケージ名をclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleListIntent.kt パッケージ宣言をclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleListScreen.kt ScheduleRouteScheduleListRouteにリネームし、viewModelパラメータをstateMachineに変更
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleListScreenUiState.kt パッケージ宣言をclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleListStateMachine.kt ScheduleListViewModelScheduleListStateMachineにリネームし、getParticipantScheduleListUseCaseパラメータをgetParticipantScheduleListに変更
.../feature/schedule/src/commonMain/kotlin/.../list/ScheduleNavigation.kt パッケージ名、定数値、関数名をscheduleからschedule.list関連に変更
.../feature/schedule/src/iosMain/kotlin/.../list/ScheduleListScreen.ios.kt パッケージ宣言をclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更し、viewModelパラメータをstateMachineに変更
.../Modules/Sources/Schedule/ComposeScheduleListScreen.swift makeUIViewControllerメソッドでviewModelパラメータをstateMachineに変更し、プロパティ名を更新

🐰🌟
コードの森を駆け巡る
リファクタの風が吹く
新たな型でスケジュールを繋ぎ
うさぎも跳ねる変更の春


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: 2

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 1b7c5c6 and f7fe80f.
Files selected for processing (21)
  • app/ios-combined/src/iosTest/kotlin/club/nito/ios/combined/EntryPointTest.kt (2 hunks)
  • app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (3 hunks)
  • core/data/src/commonMain/kotlin/club/nito/core/data/OfflineFirstScheduleRepository.kt (2 hunks)
  • core/data/src/commonMain/kotlin/club/nito/core/data/ScheduleRepository.kt (2 hunks)
  • core/domain/src/commonMain/kotlin/club/nito/core/domain/FetchParticipantScheduleByIdUseCase.kt (1 hunks)
  • core/domain/src/commonMain/kotlin/club/nito/core/domain/di/UseCaseModule.kt (2 hunks)
  • core/domain/src/commonMain/kotlin/club/nito/core/domain/extension/ParticipantExtensions.kt (1 hunks)
  • core/domain/src/commonMain/kotlin/club/nito/core/domain/model/ParticipantSchedule.kt (1 hunks)
  • core/model/src/commonMain/kotlin/club/nito/core/model/schedule/Schedule.kt (1 hunks)
  • core/model/src/commonMain/kotlin/club/nito/core/model/schedule/ScheduleId.kt (1 hunks)
  • core/network/src/commonMain/kotlin/club/nito/core/network/schedule/FakeScheduleRemoteDataSource.kt (2 hunks)
  • core/network/src/commonMain/kotlin/club/nito/core/network/schedule/ScheduleRemoteDataSource.kt (2 hunks)
  • core/network/src/commonMain/kotlin/club/nito/core/network/schedule/SupabaseScheduleRemoteDataSource.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/ScheduleListIntent.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/ScheduleListScreenUiState.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (2 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (1 hunks)
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
Files skipped from review due to trivial changes (1)
  • core/model/src/commonMain/kotlin/club/nito/core/model/schedule/ScheduleId.kt
Additional comments: 37
app/ios-combined/src/iosTest/kotlin/club/nito/ios/combined/EntryPointTest.kt (2)
  • 3-15: インポートステートメントの追加は問題なく、適切な場所に配置されています。

  • 40-46: FetchParticipantScheduleByIdUseCaseのテストが追加され、kmpEntryPointから正しく取得できることが確認されています。

app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt (3)
  • 7-14: 変更されたインポートステートメントは、スケジュール機能に関連するコントロールフローとロジックの変更を示しています。これは、PRの目的と要約に一致しています。

  • 43-46: topScreen関数のonScheduleListClickパラメータがnavigateToScheduleListを使用するように更新されています。これは、スケジュールリスト機能への変更を反映しています。

  • 59-62: scheduleListScreenが追加され、settingsScreen関数のonSignedOutパラメータがnavigateToLoginを使用するように更新されています。これは、ログイン機能と設定機能の間のフローを適切に管理するための変更です。

core/data/src/commonMain/kotlin/club/nito/core/data/OfflineFirstScheduleRepository.kt (1)
  • 29-29: 新しいメソッドfetchScheduleScheduleIdを引数に取るように追加されています。これはPRの目的と要約に合致しており、変更は適切に見えます。
core/data/src/commonMain/kotlin/club/nito/core/data/ScheduleRepository.kt (1)
  • 23-23: 新しいメソッドfetchScheduleは、PRの目的に沿って正しく追加されています。このメソッドは、スケジュールIDに基づいてスケジュールを取得するためのもので、suspend修飾子が付けられているため、コルーチンから呼び出すことができます。この変更は、レビューの焦点となる新しい機能性をコードベースに導入するものです。
core/domain/src/commonMain/kotlin/club/nito/core/domain/FetchParticipantScheduleByIdUseCase.kt (1)
  • 18-64: コードはPRの目的に沿っており、FetchParticipantScheduleByIdUseCaseとその実行者FetchParticipantScheduleByIdExecutorが正しく実装されています。例外処理も適切に行われており、invokeメソッドは予期しないエラーが発生した場合にFetchSingleContentResult.Failureを返すようになっています。また、transformToParticipantScheduleメソッドはスケジュールIDとユーザーIDに基づいて参加者とユーザープロファイルを正しくフィルタリングしています。全体として、レビュー対象のコードは問題ないと思われます。
core/domain/src/commonMain/kotlin/club/nito/core/domain/di/UseCaseModule.kt (3)
  • 5-6: 新しいユースケースとエグゼキューターが追加されたことを確認してください。これは、スケジュールをIDで取得する新しい機能をサポートするための変更です。

  • 29-29: FetchParticipantScheduleByIdExecutorFetchParticipantScheduleByIdUseCaseにバインドされていることを確認してください。これは、依存性注入モジュールに正しく追加されています。

  • 2-9: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [3-32]

他のコードベースの部分にも、ScheduleIdの導入やコンポーネントの名前変更・再編成による影響がないか確認してください。

core/domain/src/commonMain/kotlin/club/nito/core/domain/extension/ParticipantExtensions.kt (1)
  • 5-13: コードのロジックに明らかな問題は見当たりません。ただし、これらの関数が他のコードとどのように統合されているかについてのコンテキストが提供されていないため、システム全体への影響についてはコメントできません。Participant クラスに userId フィールドが存在することを前提としていますが、このレビューではそのクラスの定義は表示されていません。これらの関数が意図した通りに動作することを確認するためには、Participant クラスの定義を確認する必要があります。
core/domain/src/commonMain/kotlin/club/nito/core/domain/model/ParticipantSchedule.kt (1)
  • 7-11: 変更はParticipantScheduleデータクラスのidフィールドの型をStringからScheduleIdに変更することを示しています。この変更は、PRの目的と提供された要約と一致しています。コードに明らかな問題は見られません。
core/model/src/commonMain/kotlin/club/nito/core/model/schedule/Schedule.kt (1)
  • 3-7: スケジュールクラスのidフィールドがScheduleId型を使用するように変更されました。この変更がコードベース全体で適切に反映されているか確認してください。
core/network/src/commonMain/kotlin/club/nito/core/network/schedule/FakeScheduleRemoteDataSource.kt (2)
  • 5-5: 新しいインポート文 ScheduleId が追加されています。これはPRの目的と要約に一致しています。

  • 31-35: fetchSchedule 関数のシグネチャが String から ScheduleId に変更されています。これはPRの目的と要約に一致しています。また、戻り値を処理するために let 関数が使用されていますが、これはコードの正確さに影響を与えません。

core/network/src/commonMain/kotlin/club/nito/core/network/schedule/ScheduleRemoteDataSource.kt (3)
  • 3-5: 新しいインポートが追加されています。これは、ScheduleId型を使用するために必要です。

  • 8-8: ScheduleRemoteDataSourceインターフェースの変更は、プルリクエストの目的に沿っています。

  • 18-18: 関数名の変更とパラメータの型の変更は、プルリクエストの目的に沿っています。fetchSchedule関数は、ScheduleId型のidを受け取るようになりました。

core/network/src/commonMain/kotlin/club/nito/core/network/schedule/SupabaseScheduleRemoteDataSource.kt (4)
  • 3-7: 新しいインポート文が追加されました。ScheduleIdのインポートは、このファイルでScheduleId型を使用するために必要です。

  • 13-17: Column列挙型にIDという新しい定数が追加されました。これは、IDによるスケジュールの取得機能をサポートするための変更です。

  • 43-54: 関数getSchedulefetchScheduleに名前が変更され、そのパラメータの型がStringからScheduleIdに変更されました。これは、PRの目的に沿った重要な変更です。

  • 45-53: fetchSchedule関数には、ID列との等価性をチェックする新しいフィルタ条件が追加されました。これは、IDによるスケジュールの取得に必要です。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListEvent.kt (1)
  • 4-4: The NavigateToScheduleDetail event still uses a String for scheduleId instead of the ScheduleId type mentioned in the PR summary. Please verify if this is intentional or an oversight.
- public data class NavigateToScheduleDetail(val scheduleId: String) : ScheduleListEvent()
+ public data class NavigateToScheduleDetail(val scheduleId: ScheduleId) : ScheduleListEvent()
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListIntent.kt (1)
  • 1-1: パッケージ宣言がclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更されました。これは、PRの目的と要約に記載されている通りです。
feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt (2)
  • 51-56: ScheduleListScreen関数がprivateに変更されました。これは他のコードベースの部分からのアクセシビリティに影響を与える可能性があります。この変更が意図的であるかどうかを確認してください。

  • 56-56: dispatchパラメータにデフォルト値として空のラムダが設定されています。この関数がディスパッチ関数を提供せずに呼び出された場合、問題が発生する可能性があります。意図的なデザインかどうかを確認してください。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt (2)
  • 3-4: インポート文に問題は見受けられません。ScheduleListScreenUiStateクラスの定義も適切です。

  • 3-4: ConfirmParticipateDialogUiStateシールドクラスは適切に定義されており、Kotlinのベストプラクティスに従っています。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (4)
  • 1-1: パッケージ宣言がclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更されています。これは、概要で述べられた変更と一致しています。

  • 19-19: クラス名がScheduleListViewModelからScheduleListStateMachineに変更されています。これは、概要で述べられた変更と一致しています。

  • 20-20: パラメータgetParticipantScheduleListUseCasegetParticipantScheduleListに名前が変更されています。これは、概要で述べられた変更と一致しています。

  • 27-30: scheduleListの初期化がgetParticipantScheduleListUseCase()からgetParticipantScheduleList()を使用するように変更されています。これは、概要で述べられた変更と一致しています。

feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleNavigation.kt (1)
  • 1-19: > 💡 NOTE

Codebase verification is a beta feature.

変更された関数名navigateToScheduleListscheduleListScreen、定数scheduleNavigationRouteがコードベース内で適切に更新されていることが確認されました。特に、app/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.ktファイルでの使用が確認されています。古い関数名や定数が検索結果に現れなかったため、これらの変更は問題なく適用されていると考えられます。

feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (3)
  • 1-1: パッケージ宣言がclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更されています。これはPRの目的と提供されたサマリーに一致しています。

  • 9-9: ScheduleListRouteViewController関数のパラメータがviewModelからstateMachineに変更されています。これはViewModelからStateMachineへのアーキテクチャの変更に合わせています。

  • 12-13: ScheduleListRoute関数がリネームされたパラメータstateMachineを使用しており、変更内容と一致しています。

Comment on lines 3 to 13
import club.nito.feature.schedule.list.ScheduleListStateMachine
import org.koin.core.module.Module
import org.koin.dsl.module

public val scheduleFeatureModule: Module = module {
factory {
ScheduleListViewModel(
getParticipantScheduleListUseCase = get(),
ScheduleListStateMachine(
getParticipantScheduleList = get(),
userMessageStateHolder = get(),
dateTimeFormatter = get(),
)
Copy link

Choose a reason for hiding this comment

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

💡 NOTE
Codebase verification is a beta feature.

ScheduleListViewModelからScheduleListStateMachineへの変更が確認されました。しかし、app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swiftにおいてScheduleListViewModelの参照が残っているため、この部分の更新が必要です。新しいScheduleListStateMachineの使用は他のファイルで確認されています。

@@ -1,4 +1,4 @@
package club.nito.feature.schedule
package club.nito.feature.schedule.list
Copy link

Choose a reason for hiding this comment

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

💡 NOTE
Codebase verification is a beta feature.

パッケージ宣言がclub.nito.feature.scheduleからclub.nito.feature.schedule.listに変更されたことが確認されました。この変更は、以下のファイルに影響を与える可能性があります:

  • feature/schedule/build.gradle.kts: ネームスペースの宣言が古いパッケージ名を参照しています。
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt: インポート文が新しいパッケージ構造を反映しているか確認が必要です。
  • app/shared/src/commonMain/kotlin/club/nito/app/shared/di/FeatureModules.ktapp/shared/src/commonMain/kotlin/club/nito/app/shared/NitoNavHost.kt: これらのファイルは古いパッケージ名をインポートしているため、更新が必要です。

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 f7fe80f and df257bd.
Files selected for processing (6)
  • app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (1 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/ScheduleListScreen.kt (4 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt (1 hunks)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt (4 hunks)
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt (1 hunks)
Files skipped from review due to trivial changes (1)
  • feature/schedule/src/iosMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.ios.kt
Files skipped from review as they are similar to previous changes (4)
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/di/ScheduleFeatureModule.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreen.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListScreenUiState.kt
  • feature/schedule/src/commonMain/kotlin/club/nito/feature/schedule/list/ScheduleListStateMachine.kt
Additional comments: 1
app/ios/Modules/Sources/Schedule/ComposeScheduleListScreen.swift (1)
  • 9-18: 変更されたmakeUIViewControllerメソッドにおいて、ScheduleListStateMachineの初期化が適切に行われており、PRの目的と提供されたサマリーに沿っています。viewModelからstateMachineへの置き換え、getParticipantScheduleListUseCaseからgetParticipantScheduleListへの名称変更、dateTimeFormatterからdateFormatterへの名称変更が反映されています。

@tatsutakein tatsutakein merged commit a82bf48 into main Dec 5, 2023
3 checks passed
@tatsutakein tatsutakein deleted the rt/add-schedule-detail branch December 5, 2023 00:30
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