Skip to content

Commit 5f42240

Browse files
committed
[refactor] #157 피드백 반영
1 parent a2a407e commit 5f42240

File tree

11 files changed

+44
-51
lines changed

11 files changed

+44
-51
lines changed

Projects/App/Sources/MainTab/MainTabFeature.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ private extension MainTabFeature {
205205
case let .linkCopySuccess(url):
206206
guard let url else { return .none }
207207
state.linkPopup = .link(
208-
title: "복사한 링크 저장하기",
208+
title: Constants.복사한_링크_저장하기_문구,
209209
url: url.absoluteString
210210
)
211211
state.link = url.absoluteString

Projects/App/Sources/MainTab/MainTabPath.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import FeatureContentSetting
1616
import FeatureContentList
1717
import FeatureCategorySharing
1818
import Domain
19+
import Util
1920

2021
@Reducer
2122
public struct MainTabPath {
@@ -180,10 +181,10 @@ public extension MainTabFeature {
180181
case .검색:
181182
return .merge(
182183
.send(.path(.element(id: stackElementId, action: .검색(.delegate(.컨텐츠_검색))))),
183-
.send(.inner(.링크팝업_활성화(.success(title: "링크 저장 완료"))), animation: .pokitSpring)
184+
.send(.inner(.링크팝업_활성화(.success(title: Constants.링크_저장_완료_문구))), animation: .pokitSpring)
184185
)
185186
default:
186-
return .send(.inner(.링크팝업_활성화(.success(title: "링크 저장 완료"))), animation: .pokitSpring)
187+
return .send(.inner(.링크팝업_활성화(.success(title: Constants.링크_저장_완료_문구))), animation: .pokitSpring)
187188
}
188189
/// - 각 화면에서 링크 복사 감지했을 때 (링크 추가 및 수정 화면 제외)
189190
case let .path(.element(_, action: .알림함(.delegate(.linkCopyDetected(url))))),

Projects/CoreKit/Sources/Data/DTO/Category/CategoryEditResponse.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ extension CategoryImageResponse {
3535
public static var mock: [Self] = [
3636
Self(
3737
imageId: 2312,
38-
imageUrl: "https://pokit-storage.s3.ap-northeast-2.amazonaws.com/logo/pokit.png"
38+
imageUrl: Constants.기본_썸네일_주소.absoluteString
3939
),
4040
Self(
4141
imageId: 23122,

Projects/DSKit/Sources/Components/PokitLinkPopup.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public struct PokitLinkPopup: View {
4040
.frame(width: 335, height: 60)
4141
.transition(.move(edge: .bottom).combined(with: .opacity))
4242
.onReceive(timer) { _ in
43-
guard second < 2 && type != nil else {
43+
guard second < 2 else {
4444
closedPopup()
4545
return
4646
}
@@ -99,8 +99,8 @@ public struct PokitLinkPopup: View {
9999

100100
private func closedPopup() {
101101
withAnimation(.pokitSpring) {
102-
second = 0
103102
type = nil
103+
second = 0
104104
}
105105
}
106106

Projects/Feature/FeatureContentDetail/Sources/ContentDetail/ContentDetailFeature.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,14 @@ private extension ContentDetailFeature {
141141
case .뷰가_나타났을때:
142142
/// - 나중에 공유 받은 컨텐츠인지 확인해야함
143143
state.memoTextAreaState = .memo(isReadOnly: false)
144-
145144
if let id = state.domain.contentId {
146145
return .send(.async(.컨텐츠_상세_조회_API(id: id)))
147-
} else if let content = state.domain.content {
146+
}
147+
if let content = state.domain.content {
148148
state.memo = content.memo
149149
return .none
150-
} else {
151-
return .none
152150
}
151+
return .none
153152
case .공유_버튼_눌렀을때:
154153
state.showShareSheet = true
155154
return .none
@@ -255,7 +254,7 @@ private extension ContentDetailFeature {
255254
model: request
256255
)
257256
await send(
258-
.inner(.링크팝업_활성화(.success(title: "메모 수정 완료"))),
257+
.inner(.링크팝업_활성화(.success(title: Constants.메모_수정_완료_문구))),
259258
animation: .pokitSpring
260259
)
261260
} catch: { error, send in

Projects/Feature/FeatureContentSetting/Sources/ContentSetting/ContentSettingFeature.swift

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public struct ContentSettingFeature {
100100
case 뒤로가기_버튼_눌렀을때
101101
}
102102

103-
public enum InnerAction: Equatable {
103+
public enum InnerAction {
104104
case linkPopup(URL?)
105105
case linkPreview
106106
case 메타데이터_조회_수행(url: URL)
@@ -112,6 +112,7 @@ public struct ContentSettingFeature {
112112
case 카테고리_목록_조회_API_반영(categoryList: BaseCategoryListInquiry)
113113
case 선택한_포킷_인메모리_삭제
114114
case 링크팝업_활성화(PokitLinkPopup.PopupType)
115+
case error(Error)
115116
}
116117

117118
public enum AsyncAction: Equatable {
@@ -198,7 +199,7 @@ private extension ContentSettingFeature {
198199
return .merge(mergeEffect)
199200
case .저장_버튼_눌렀을때:
200201
let isEdit = state.domain.categoryId != nil
201-
if state.domain.title == "제목을 입력해주세요" {
202+
if state.domain.title == Constants.제목을_입력해주세요_문구 {
202203
state.domain.title = state.title
203204
}
204205
state.saveIsLoading = true
@@ -209,7 +210,7 @@ private extension ContentSettingFeature {
209210
case .포킷추가_버튼_눌렀을때:
210211
guard state.domain.categoryTotalCount < 30 else {
211212
/// 🚨 Error Case [1]: 포킷 갯수가 30개 이상일 경우
212-
state.linkPopup = .text(title: "최대 30개의 포킷을 생성할 수 있습니다.\n포킷을 삭제한 뒤에 추가해주세요.")
213+
state.linkPopup = .text(title: Constants.포킷_최대_갯수_문구)
213214
return .none
214215
}
215216

@@ -237,7 +238,7 @@ private extension ContentSettingFeature {
237238
guard let url else { return .none }
238239
state.link = url.absoluteString
239240
state.linkPopup = .link(
240-
title: "복사한 링크 저장하기",
241+
title: Constants.복사한_링크_저장하기_문구,
241242
url: url.absoluteString
242243
)
243244
return .none
@@ -254,9 +255,11 @@ private extension ContentSettingFeature {
254255
)
255256
}
256257
case let .메타데이텨_조회_반영(title: title, imageURL: imageURL):
257-
let contentTitle = state.title.isEmpty ? "제목을 입력해주세요" : state.title
258+
let contentTitle = state.title.isEmpty
259+
? Constants.제목을_입력해주세요_문구
260+
: state.title
258261
state.linkTitle = title ?? contentTitle
259-
state.linkImageURL = imageURL ?? "https://pokit-storage.s3.ap-northeast-2.amazonaws.com/logo/pokit.png"
262+
state.linkImageURL = imageURL ?? Constants.기본_썸네일_주소.absoluteString
260263
if let title, state.domain.title.isEmpty {
261264
state.domain.title = title
262265
}
@@ -332,6 +335,12 @@ private extension ContentSettingFeature {
332335
state.linkPopup = type
333336
state.saveIsLoading = false
334337
return .none
338+
case let .error(error):
339+
guard let errorResponse = error as? ErrorResponse else { return .none }
340+
return .send(
341+
.inner(.링크팝업_활성화(.error(title: errorResponse.message))),
342+
animation: .pokitSpring
343+
)
335344
}
336345
}
337346

@@ -387,11 +396,7 @@ private extension ContentSettingFeature {
387396
await send(.inner(.선택한_포킷_인메모리_삭제))
388397
await send(.delegate(.저장하기_완료(contentId: contentId)))
389398
} catch: { error, send in
390-
guard let errorResponse = error as? ErrorResponse else { return }
391-
await send(
392-
.inner(.링크팝업_활성화(.error(title: errorResponse.message))),
393-
animation: .pokitSpring
394-
)
399+
await send(.inner(.error(error)))
395400
}
396401
case .컨텐츠_추가_API:
397402
guard let categoryId = state.selectedPokit?.id else {
@@ -410,11 +415,7 @@ private extension ContentSettingFeature {
410415
await send(.inner(.선택한_포킷_인메모리_삭제))
411416
await send(.delegate(.저장하기_완료(contentId: content.contentId)))
412417
} catch: { error, send in
413-
guard let errorResponse = error as? ErrorResponse else { return }
414-
await send(
415-
.inner(.링크팝업_활성화(.error(title: errorResponse.message))),
416-
animation: .pokitSpring
417-
)
418+
await send(.inner(.error(error)))
418419
}
419420
case .클립보드_감지:
420421
return .run { send in
@@ -425,7 +426,7 @@ private extension ContentSettingFeature {
425426
}
426427
}
427428
}
428-
429+
429430
/// - Scope Effect
430431
func handleScopeAction(_ action: Action.ScopeAction, state: inout State) -> Effect<Action> {
431432
return .none
@@ -436,21 +437,6 @@ private extension ContentSettingFeature {
436437
return .none
437438
}
438439

439-
func contentEdit(request: ContentBaseRequest, contentId: Int) -> Effect<Action> {
440-
return .run { _ in
441-
let _ = try await contentClient.컨텐츠_수정(
442-
"\(contentId)",
443-
request
444-
)
445-
} catch: { error, send in
446-
guard let errorResponse = error as? ErrorResponse else { return }
447-
await send(
448-
.inner(.링크팝업_활성화(.error(title: errorResponse.message))),
449-
animation: .pokitSpring
450-
)
451-
}
452-
}
453-
454440
func categoryListFetch(request: BasePageableRequest) -> Effect<Action> {
455441
return .run { send in
456442
let categoryList = try await categoryClient.카테고리_목록_조회(request, false).toDomain()

Projects/Feature/FeatureContentSetting/Sources/ContentSetting/ContentSettingView.swift

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

99
import ComposableArchitecture
1010
import DSKit
11+
import Util
1112

1213
@ViewAction(for: ContentSettingFeature.self)
1314
public struct ContentSettingView: View {
@@ -97,8 +98,8 @@ private extension ContentSettingView {
9798
let isParsed = store.linkTitle != nil || store.linkImageURL != nil
9899

99100
PokitLinkPreview(
100-
title: store.linkTitle == "제목을 입력해주세요"
101-
? store.title.isEmpty ? "제목을 입력해주세요" : store.title
101+
title: store.linkTitle == Constants.제목을_입력해주세요_문구
102+
? store.title.isEmpty ? Constants.제목을_입력해주세요_문구 : store.title
102103
: store.linkTitle,
103104
url: isParsed ? store.urlText : nil,
104105
imageURL: store.linkImageURL

Projects/Feature/FeatureLogin/Sources/RegisterNickname/RegisterNicknameView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import ComposableArchitecture
88
import SwiftUI
99
import DSKit
10+
import Util
1011

1112
@ViewAction(for: RegisterNicknameFeature.self)
1213
public struct RegisterNicknameView: View {
@@ -74,7 +75,7 @@ extension RegisterNicknameView {
7475
text: $store.nicknameText,
7576
shape: .rectangle,
7677
state: $store.textfieldState,
77-
info: "한글, 영어, 숫자로만 입력이 가능합니다.",
78+
info: Constants.한글_영어_숫자_입력_문구,
7879
maxLetter: 10,
7980
focusState: $isFocused,
8081
equals: true

Projects/Feature/FeatureRemind/Sources/Remind/RemindFeature.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,7 @@ private extension RemindFeature {
155155
case .컨텐츠_항목_케밥_버튼_눌렀을때(let content):
156156
return .send(.delegate(.링크상세(content: content)))
157157
case .컨텐츠_항목_눌렀을때(let content):
158-
guard let url = URL(string: content.data) else {
159-
return .none
160-
}
158+
guard let url = URL(string: content.data) else { return .none }
161159
return .run { _ in await openURL(url) }
162160
case .뷰가_나타났을때:
163161
return allContentFetch(animation: .pokitDissolve)
@@ -290,7 +288,6 @@ private extension RemindFeature {
290288
}
291289
/// - Scope Effect
292290
func handleScopeAction(_ action: Action.ScopeAction, state: inout State) -> Effect<Action> {
293-
/// - 링크에 대한 `공유` / `수정` / `삭제` delegate
294291
return .none
295292
}
296293
/// - Delegate Effect

Projects/Feature/FeatureSetting/Sources/Setting/NickNameSetting/NickNameSettingView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import SwiftUI
88

99
import ComposableArchitecture
1010
import DSKit
11+
import Util
1112

1213
@ViewAction(for: NickNameSettingFeature.self)
1314
public struct NickNameSettingView: View {
@@ -37,7 +38,7 @@ public extension NickNameSettingView {
3738
),
3839
shape: .rectangle,
3940
state: $store.textfieldState,
40-
info: "한글, 영어, 숫자로만 입력이 가능합니다.",
41+
info: Constants.한글_영어_숫자_입력_문구,
4142
maxLetter: 10,
4243
focusState: $isFocused,
4344
equals: true

0 commit comments

Comments
 (0)