@@ -94,21 +94,11 @@ final class ProfileViewModel: Store {
9494 }
9595
9696 var canMoveToPreviousQuarter : Bool {
97- guard let selectedQuarterStart = state. selectedQuarterStart else { return false }
98- guard let previousQuarterStart = calendar. date ( byAdding: . month, value: - 3 , to: selectedQuarterStart) else {
99- return false
100- }
101- let today = calendar. startOfDay ( for: Date ( ) )
102- return canMove ( to: previousQuarterStart, calendar: calendar, today: today)
97+ canMoveToQuarter ( offsetMonths: - 3 )
10398 }
10499
105100 var canMoveToNextQuarter : Bool {
106- guard let selectedQuarterStart = state. selectedQuarterStart else { return false }
107- guard let nextQuarterStart = calendar. date ( byAdding: . month, value: 3 , to: selectedQuarterStart) else {
108- return false
109- }
110- let today = calendar. startOfDay ( for: Date ( ) )
111- return canMove ( to: nextQuarterStart, calendar: calendar, today: today)
101+ canMoveToQuarter ( offsetMonths: 3 )
112102 }
113103
114104 init (
@@ -245,6 +235,15 @@ final class ProfileViewModel: Store {
245235}
246236
247237private extension ProfileViewModel {
238+ func setAlert(
239+ _ state: inout State ,
240+ isPresented: Bool
241+ ) {
242+ state. alertTitle = " 오류 "
243+ state. alertMessage = " 문제가 발생했습니다. 잠시 후 다시 시도해주세요. "
244+ state. showAlert = isPresented
245+ }
246+
248247 func fetchQuarterTodos( from quarterStart: Date ) async throws -> [ Todo ] {
249248 guard let nextQuarterStart = calendar. date ( byAdding: . month, value: 3 , to: quarterStart) else {
250249 return [ ]
@@ -355,12 +354,14 @@ private extension ProfileViewModel {
355354 return calendar. date ( from: components) ?? startOfMonth ( for: date, calendar: calendar)
356355 }
357356
358- func setAlert(
359- _ state: inout State ,
360- isPresented: Bool
361- ) {
362- state. alertTitle = " 오류 "
363- state. alertMessage = " 문제가 발생했습니다. 잠시 후 다시 시도해주세요. "
364- state. showAlert = isPresented
357+ func canMoveToQuarter( offsetMonths: Int ) -> Bool {
358+ guard let selectedQuarterStart = state. selectedQuarterStart else { return false }
359+ guard let targetQuarterStart = calendar. date (
360+ byAdding: . month, value: offsetMonths, to: selectedQuarterStart)
361+ else {
362+ return false
363+ }
364+ let today = calendar. startOfDay ( for: Date ( ) )
365+ return canMove ( to: targetQuarterStart, calendar: calendar, today: today)
365366 }
366367}
0 commit comments