@@ -22,6 +22,9 @@ final class HistoryListViewModel: ObservableObject {
22
22
let subscribeExercisesUsecase : SubscribeExercisesUsecase
23
23
let subscribeHistoriesGroupedByMonthUsecase : SubscribeHistoriesGroupedByMonthUsecase
24
24
let subscribeHeatMapColorUsecase : SubscribeHeatMapColorUsecase
25
+ let subscribeDateToSelectHistoryUsecase : SubscribeDateToSelectHistoryUsecase
26
+ let getHistoryFromDateUsecase : GetHistoryFromDateUsecase
27
+ let postHistoryUsecase : PostHistoryUsecase
25
28
26
29
private var cancellables = Set < AnyCancellable > ( )
27
30
init ( today: Date ,
@@ -34,6 +37,9 @@ final class HistoryListViewModel: ObservableObject {
34
37
subscribeExercisesUsecase = . init( exerciseRepository: exerciseRepository)
35
38
subscribeHistoriesGroupedByMonthUsecase = . init( historyRepository: historyRepository)
36
39
subscribeHeatMapColorUsecase = . init( userRepository: userRepository)
40
+ subscribeDateToSelectHistoryUsecase = . init( historyRepository: historyRepository)
41
+ getHistoryFromDateUsecase = . init( historyRepository: historyRepository)
42
+ postHistoryUsecase = . init( historyRepository: historyRepository)
37
43
38
44
bind ( )
39
45
}
@@ -88,6 +94,19 @@ final class HistoryListViewModel: ObservableObject {
88
94
self ? . hasExercise = !exercises. isEmpty
89
95
}
90
96
. store ( in: & cancellables)
97
+
98
+ subscribeDateToSelectHistoryUsecase
99
+ . implement ( )
100
+ . receive ( on: DispatchQueue . main)
101
+ . sink { [ weak self] date in
102
+ if let history = self ? . getHistoryFromDateUsecase. implement ( date: date) {
103
+ URLManager . shared. open ( url: " dgmuscle://history?id= \( history. id) " )
104
+ } else {
105
+ let history : Domain . History = . init( id: UUID ( ) . uuidString, date: date, memo: nil , records: [ ] , run: nil )
106
+ self ? . postHistoryUsecase. implement ( history: history)
107
+ URLManager . shared. open ( url: " dgmuscle://history?id= \( history. id) " )
108
+ }
109
+ }
110
+ . store ( in: & cancellables)
91
111
}
92
112
}
93
-
0 commit comments