Skip to content

Commit 38648a2

Browse files
committed
[fix] #111 카테고리 추가 후 링크 추가 및 수정화면 반영
1 parent fc946bb commit 38648a2

File tree

4 files changed

+36
-10
lines changed

4 files changed

+36
-10
lines changed

Projects/App/Sources/MainTab/MainTabFeature.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public struct MainTabFeature {
3838
var pokit: PokitRootFeature.State
3939
var remind: RemindFeature.State = .init()
4040
@Presents var contentDetail: ContentDetailFeature.State?
41+
@Shared(.inMemory("SelectCategory")) var selectedPokit: BaseCategoryItem?
4142

4243
public init() {
4344
self.pokit = .init()
@@ -144,7 +145,7 @@ private extension MainTabFeature {
144145
state.isBottomSheetPresented = false
145146
switch type {
146147
case .링크추가: return .send(.delegate(.링크추가하기))
147-
case .포킷추가: return .send(.delegate(.포킷추가하기))
148+
case .포킷추가: return .send(.delegate(.포킷추가하기))
148149
}
149150

150151
case .linkCopyButtonTapped:

Projects/App/Sources/MainTab/MainTabPath.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,13 +156,13 @@ public extension MainTabFeature {
156156
}
157157

158158
case let .inner(.링크추가및수정이동(contentId: id)):
159-
state.path.append(.링크추가및수정(
160-
ContentSettingFeature.State(contentId: id)
161-
))
159+
state.selectedPokit = nil
160+
state.path.append(.링크추가및수정(ContentSettingFeature.State(contentId: id)))
162161
return .send(.contentDetail(.dismiss))
163162

164163
/// - 링크 추가하기
165164
case .delegate(.링크추가하기):
165+
state.selectedPokit = nil
166166
state.path.append(.링크추가및수정(ContentSettingFeature.State(urlText: state.link)))
167167
state.link = nil
168168
return .none
@@ -238,4 +238,3 @@ public extension MainTabFeature {
238238
.forEach(\.path, action: \.path) { MainTabPath() }
239239
}
240240
}
241-

Projects/Feature/FeatureCategorySetting/Sources/PokitCategorySettingFeature.swift

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public struct PokitCategorySettingFeature {
5151
let type: SettingType
5252
var isProfileSheetPresented: Bool = false
5353
var pokitNameTextInpuState: PokitInputStyle.State = .default
54+
@Shared(.inMemory("SelectCategory")) var selectCateogry: BaseCategoryItem?
5455
/// - 포킷 수정 API / 추가 API
5556
/// categoryName
5657
/// categoryImageId
@@ -92,6 +93,7 @@ public struct PokitCategorySettingFeature {
9293
case 카테고리_목록_조회_결과(BaseCategoryListInquiry)
9394
case 프로필_목록_조회_결과(images: [BaseCategoryImage])
9495
case 포킷_오류_핸들링(BaseError)
96+
case 카테고리_인메모리_저장(BaseCategoryItem)
9597
}
9698

9799
public enum AsyncAction: Equatable {
@@ -167,7 +169,19 @@ private extension PokitCategorySettingFeature {
167169
case .추가:
168170
guard let image = domain.categoryImage else { return }
169171
let request = CategoryEditRequest(categoryName: domain.categoryName, categoryImageId: image.id)
170-
let _ = try await categoryClient.카테고리_생성(request)
172+
let response = try await categoryClient.카테고리_생성(request)
173+
let responseToCategoryDomain = BaseCategoryItem(
174+
id: response.categoryId,
175+
userId: 0,
176+
categoryName: response.categoryName,
177+
categoryImage: BaseCategoryImage(
178+
imageId: response.categoryImage.imageId,
179+
imageURL: response.categoryImage.imageUrl
180+
),
181+
contentCount: 0,
182+
createdAt: ""
183+
)
184+
await send(.inner(.카테고리_인메모리_저장(responseToCategoryDomain)))
171185
await send(.delegate(.settingSuccess))
172186
case .수정:
173187
guard let categoryId = domain.categoryId else { return }
@@ -226,6 +240,10 @@ private extension PokitCategorySettingFeature {
226240
case let .포킷_오류_핸들링(baseError):
227241
state.pokitNameTextInpuState = .error(message: baseError.message)
228242
return .none
243+
244+
case let .카테고리_인메모리_저장(response):
245+
state.selectCateogry = response
246+
return .none
229247
}
230248
}
231249

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public struct ContentSettingFeature {
6262
var linkTextInputState: PokitInputStyle.State = .default
6363
var titleTextInpuState: PokitInputStyle.State = .default
6464
var memoTextAreaState: PokitInputStyle.State = .default
65-
var selectedPokit: BaseCategoryItem? = nil
65+
@Shared(.inMemory("SelectCategory")) var selectedPokit: BaseCategoryItem?
6666
var linkTitle: String? = nil
6767
var linkImageURL: String? = nil
6868
var showMaxCategoryPopup: Bool = false
@@ -107,6 +107,7 @@ public struct ContentSettingFeature {
107107
case 카테고리_갱신(category: BaseCategory)
108108
case 카테고리_목록_갱신(categoryList: BaseCategoryListInquiry)
109109
case 링크미리보기_presented
110+
case 선택한_포킷_인메모리_삭제
110111
}
111112

112113
public enum AsyncAction: Equatable {
@@ -297,9 +298,10 @@ private extension ContentSettingFeature {
297298
/// [3]. 도메인 항목 리스트에 list 할당
298299
state.domain.categoryListInQuiry = list
299300

300-
/// [4]. 선택한 카테고리는 최초 진입시 항상 `미분류`이므로 설정 추가
301-
state.selectedPokit = unclassifiedItem
302-
301+
/// [4]. 최초 진입시: `미분류`로 설정함. 포킷 추가하고 왔다면 `@Shared`에 값이 있기 때문에 기존 값을 업데이트함
302+
if state.selectedPokit == nil {
303+
state.selectedPokit = unclassifiedItem
304+
}
303305
return .none
304306
case let .showLinkPopup(url):
305307
guard let url else { return .none }
@@ -309,6 +311,10 @@ private extension ContentSettingFeature {
309311
case .링크미리보기_presented:
310312
state.showLinkPreview = true
311313
return .none
314+
315+
case .선택한_포킷_인메모리_삭제:
316+
state.selectedPokit = nil
317+
return .none
312318
}
313319
}
314320

@@ -365,6 +371,7 @@ private extension ContentSettingFeature {
365371
thumbNail: thumbNail
366372
)
367373
)
374+
await send(.inner(.선택한_포킷_인메모리_삭제))
368375
await send(.delegate(.저장하기_완료))
369376
}
370377
case .컨텐츠_추가:
@@ -390,6 +397,7 @@ private extension ContentSettingFeature {
390397
thumbNail: thumbNail
391398
)
392399
)
400+
await send(.inner(.선택한_포킷_인메모리_삭제))
393401
await send(.delegate(.저장하기_완료))
394402
}
395403
}

0 commit comments

Comments
 (0)