Skip to content

Commit 22a27db

Browse files
committed
refactor: Calendar 중복 생성 제거
1 parent db2121e commit 22a27db

1 file changed

Lines changed: 1 addition & 7 deletions

File tree

DevLog/Presentation/ViewModel/ProfileViewModel.swift

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ final class ProfileViewModel: Store {
5353
private let upsertStatusMessageUseCase: UpsertStatusMessageUseCase
5454
private let fetchHeatmapActivityTypesUseCase: FetchProfileHeatmapActivityTypesUseCase
5555
private let updateHeatmapActivityTypesUseCase: UpdateProfileHeatmapActivityTypesUseCase
56+
private let calendar = Calendar.current
5657

5758
var resetButtonEnabled: Bool {
5859
!state.statusMessage.isEmpty && state.showDoneButton
@@ -67,7 +68,6 @@ final class ProfileViewModel: Store {
6768
guard let selectedDay = state.selectedDay,
6869
let selectedQuarterStart = state.selectedQuarterStart,
6970
let todos = state.quarterTodosCache[selectedQuarterStart] else { return [] }
70-
let calendar = Calendar.current
7171
let dayStart = calendar.startOfDay(for: selectedDay.date)
7272

7373
return todos.compactMap { todo in
@@ -87,7 +87,6 @@ final class ProfileViewModel: Store {
8787

8888
var canMoveToPreviousQuarter: Bool {
8989
guard let selectedQuarterStart = state.selectedQuarterStart else { return false }
90-
let calendar = Calendar.current
9190
guard let previousQuarterStart = calendar.date(byAdding: .month, value: -3, to: selectedQuarterStart) else {
9291
return false
9392
}
@@ -97,7 +96,6 @@ final class ProfileViewModel: Store {
9796

9897
var canMoveToNextQuarter: Bool {
9998
guard let selectedQuarterStart = state.selectedQuarterStart else { return false }
100-
let calendar = Calendar.current
10199
guard let nextQuarterStart = calendar.date(byAdding: .month, value: 3, to: selectedQuarterStart) else {
102100
return false
103101
}
@@ -125,7 +123,6 @@ final class ProfileViewModel: Store {
125123
var effects: [SideEffect] = []
126124
switch action {
127125
case .onAppear:
128-
let calendar = Calendar.current
129126
if state.selectedQuarterStart == nil {
130127
state.selectedQuarterStart = quarterStart(for: Date(), calendar: calendar)
131128
}
@@ -161,7 +158,6 @@ final class ProfileViewModel: Store {
161158
state.selectedActivityForSheet = activity
162159
case .moveQuarter(let delta):
163160
guard let selectedQuarterStart = state.selectedQuarterStart else { break }
164-
let calendar = Calendar.current
165161
let monthDelta = 3 * delta
166162
guard let nextQuarterStart = calendar.date(
167163
byAdding: .month,
@@ -242,7 +238,6 @@ final class ProfileViewModel: Store {
242238

243239
private extension ProfileViewModel {
244240
func fetchQuarterTodos(from quarterStart: Date) async throws -> [Todo] {
245-
let calendar = Calendar.current
246241
guard let nextQuarterStart = calendar.date(byAdding: .month, value: 3, to: quarterStart) else {
247242
return []
248243
}
@@ -266,7 +261,6 @@ private extension ProfileViewModel {
266261
}
267262

268263
func makeCompletionMonths(from todos: [Todo], quarterStart: Date) -> [ProfileCompletionMonth] {
269-
let calendar = Calendar.current
270264
var dailyCreatedCount: [Date: Int] = [:]
271265
var dailyCompletedCount: [Date: Int] = [:]
272266

0 commit comments

Comments
 (0)