Skip to content

Commit 060b764

Browse files
committed
wip
1 parent bbfe761 commit 060b764

6 files changed

Lines changed: 53 additions & 11 deletions

File tree

‎Projects/Domain/PomodoroService/Sources/PomodoroService.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extension PomodoroService: DependencyKey {
3232
},
3333
getSelectedCategory: { userDefaultsClient, databaseClient in
3434
let selectedCategoryID = userDefaultsClient.integerForKey(selectedCategoryKey)
35-
let results = try await databaseClient.read(PomodoroCategory.self, predicateFormat: "no == %d", args: selectedCategoryID)
35+
let results = try await databaseClient.read(PomodoroCategory.self, predicateFormat: "#no == %d", args: selectedCategoryID)
3636
return results.first
3737
}
3838
)

‎Projects/Feature/HomeFeature/Sources/CategorySelect/CategorySelectCore.swift‎

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import PomodoroServiceInterface
1010
import DatabaseClientInterface
11+
import UserDefaultsClientInterface
1112

1213
import ComposableArchitecture
1314

@@ -22,17 +23,20 @@ public struct CategorySelectCore {
2223
}
2324

2425
public enum Action {
26+
case onDismiss
2527
case onAppear
2628
case dismissButtonTapped
2729
case bottomCheckButtonTapped
2830

2931
case getCategoryListResponse(Result<[PomodoroCategory], Error>)
3032

33+
case setSelectedCategory(PomodoroCategory?)
3134
case selectCategory(PomodoroCategory)
3235
}
3336

3437
@Dependency(PomodoroService.self) var pomodoroService
3538
@Dependency(DatabaseClient.self) var databaseClient
39+
@Dependency(UserDefaultsClient.self) var userDefaultsClient
3640

3741
public init() {}
3842

@@ -42,6 +46,9 @@ public struct CategorySelectCore {
4246

4347
private func core(state: inout State, action: Action) -> EffectOf<Self> {
4448
switch action {
49+
case .onDismiss:
50+
return .none
51+
4552
case .onAppear:
4653
return .run { send in
4754
await send(
@@ -53,13 +60,28 @@ public struct CategorySelectCore {
5360
}
5461
)
5562
)
63+
let selectedCategory = try await self.pomodoroService.getSelectedCategory(
64+
userDefaultsClient: self.userDefaultsClient,
65+
databaseClient: self.databaseClient
66+
)
67+
await send(.setSelectedCategory(selectedCategory))
5668
}
5769

5870
case .dismissButtonTapped:
59-
return .none
71+
return .run { send in
72+
await send(.onDismiss)
73+
}
6074

6175
case .bottomCheckButtonTapped:
62-
return .none
76+
return .run { [selectedCategory = state.selectedCategory] send in
77+
if let selectedCategory {
78+
await self.pomodoroService.changeSelectedCategory(
79+
userDefaultsClient: self.userDefaultsClient,
80+
categoryID: selectedCategory.id
81+
)
82+
}
83+
await send(.onDismiss)
84+
}
6385

6486
case let .getCategoryListResponse(.success(response)):
6587
state.categoryList = response
@@ -68,6 +90,10 @@ public struct CategorySelectCore {
6890
case .getCategoryListResponse(.failure):
6991
return .none
7092

93+
case let .setSelectedCategory(category):
94+
state.selectedCategory = category
95+
return .none
96+
7197
case let .selectCategory(category):
7298
state.selectedCategory = category
7399
return .none

‎Projects/Feature/HomeFeature/Sources/Home/HomeCore.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public struct HomeCore {
116116
case .playButtonTapped:
117117
return .none
118118

119-
case .categorySelect(.presented(.dismissButtonTapped)):
119+
case .categorySelect(.presented(.onDismiss)):
120120
state.categorySelect = nil
121121
return .none
122122

‎Projects/Feature/HomeFeature/Sources/TimeSelect/TimeSelectCore.swift‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import Foundation
1010

1111
import FeedbackGeneratorClientInterface
1212
import PomodoroServiceInterface
13+
import UserDefaultsClientInterface
14+
import DatabaseClientInterface
1315

1416
import ComposableArchitecture
1517

@@ -27,9 +29,13 @@ public struct TimeSelectCore {
2729
public enum Action {
2830
case onAppear
2931
case pickerSelection(TimeItem?)
32+
case setSelectedCategory(PomodoroCategory?)
3033
}
3134

3235
@Dependency(FeedbackGeneratorClient.self) var feedbackGeneratorClient
36+
@Dependency(UserDefaultsClient.self) var userDefaultsClient
37+
@Dependency(DatabaseClient.self) var databaseClient
38+
@Dependency(PomodoroService.self) var pomodoroService
3339

3440
public init() {}
3541

@@ -42,13 +48,23 @@ public struct TimeSelectCore {
4248
case .onAppear:
4349
state.timeList = generateFocusTimeByMinute().map { .init(title: "\($0):00", data: $0) }
4450
state.selectedTime = state.timeList.last
45-
return .none
51+
return .run { send in
52+
let selectedCategory = try await self.pomodoroService.getSelectedCategory(
53+
userDefaultsClient: self.userDefaultsClient,
54+
databaseClient: self.databaseClient
55+
)
56+
await send(.setSelectedCategory(selectedCategory))
57+
}
4658

4759
case let .pickerSelection(selection):
4860
state.selectedTime = selection
4961
return .run { _ in
5062
await self.feedbackGeneratorClient.impactOccurred(.soft)
5163
}
64+
65+
case let .setSelectedCategory(category):
66+
state.selectedCategory = category
67+
return .none
5268
}
5369
}
5470

‎Projects/Feature/HomeFeature/Sources/TimeSelect/TimeSelectView.swift‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,9 @@ public struct TimeSelectView: View {
4040
selection: $store.selectedTime.sending(\.pickerSelection)
4141
)
4242

43-
Button(
44-
icon: DesignSystemAsset.Image._32PlayPrimary.swiftUIImage,
45-
action: {
46-
47-
}
48-
)
43+
Button(icon: DesignSystemAsset.Image._32PlayPrimary.swiftUIImage) {
44+
45+
}
4946
.buttonStyle(.round(level: .secondary))
5047
.padding(.bottom, 40)
5148
}

‎Projects/Shared/DesignSystem/Sources/Component/BottomSheet/BottomSheetViewModifier.swift‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ struct BottomSheetViewModifier<
1919
ZStack(alignment: .bottom) {
2020
content
2121
.frame(maxWidth: .infinity, maxHeight: .infinity)
22+
.transaction { transaction in
23+
transaction.disablesAnimations = true
24+
}
2225
.zIndex(1)
2326

2427
if let item {

0 commit comments

Comments
 (0)