From 3b49c258259fbc45ea0cf5f91f525fc57c3ea4da Mon Sep 17 00:00:00 2001 From: JunYoung Date: Tue, 25 Aug 2026 17:36:49 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix/#352:=20=EC=95=84=EC=9D=B4=ED=85=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=20=EC=A7=81=EC=97=85=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 시그너스 나이츠 5개 직업 추가 소울마스터(1100) / 플레임위자드(1200) / 윈드브레이커(1300) / 나이트워커(1400) / 스트라이커(1500) --- .../Domain/Usecases/ParseItemFilterResultUseCaseImpl.swift | 3 ++- .../ItemFilterBottomSheet/ItemFilterBottomSheetReactor.swift | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Domain/Usecases/ParseItemFilterResultUseCaseImpl.swift b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Domain/Usecases/ParseItemFilterResultUseCaseImpl.swift index db6fdba9..76f78f15 100644 --- a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Domain/Usecases/ParseItemFilterResultUseCaseImpl.swift +++ b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Domain/Usecases/ParseItemFilterResultUseCaseImpl.swift @@ -3,7 +3,8 @@ import MLSDictionaryFeatureInterface public final class ParseItemFilterResultUseCaseImpl: ParseItemFilterResultUseCase { private let jobIdMap: [String: Int] = [ - "전사": 100, "마법사": 200, "도적": 400, "궁수": 300, "해적": 500 + "전사": 100, "마법사": 200, "도적": 400, "궁수": 300, "해적": 500, + "소울마스터": 1100, "플레임위자드": 1200, "윈드브레이커": 1300, "나이트워커": 1400, "스트라이커": 1500 ] private let categoryIdMap: [String: Int] = [ "한손검": 7, "한손도끼": 8, "한손둔기": 9, "단검": 10, "완드": 12, diff --git a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/ItemFilterBottomSheet/ItemFilterBottomSheetReactor.swift b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/ItemFilterBottomSheet/ItemFilterBottomSheetReactor.swift index 99b2c8ad..6c64b960 100644 --- a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/ItemFilterBottomSheet/ItemFilterBottomSheetReactor.swift +++ b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/ItemFilterBottomSheet/ItemFilterBottomSheetReactor.swift @@ -32,7 +32,7 @@ public final class ItemFilterBottomSheetReactor: Reactor { public struct State { var sections: [String] = ["직업/레벨", "무기", "발사체", "방어구", "장신구", "주문서", "기타"] - var jobs: [String] = ["없음", "공용", "마법사", "전사", "궁수", "도적", "해적"] + var jobs: [String] = ["없음", "공용", "마법사", "전사", "궁수", "도적", "해적", "소울마스터", "플레임위자드", "윈드브레이커", "나이트워커", "스트라이커"] var weapons: [String] = ["한손검", "한손도끼", "한손둔기", "창", "단검", "두손검", "두손도끼", "두손둔기", "폴암", "활", "석궁", "완드", "스태프", "아대", "건", "너클"] var projectiles: [String] = ["화살", "표창", "불릿"] var armors: [String] = ["모자", "상의", "하의", "장갑", "신발", "방패", "전신갑옷"] // 전신 = 전신갑옷? From b0700d7be5f854d8d0e0f4cd891912a734e1be4b Mon Sep 17 00:00:00 2001 From: JunYoung Date: Tue, 25 Aug 2026 17:56:24 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix/#352:=20=EC=95=84=EC=9D=B4=ED=85=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=20=EC=A0=81=EC=9A=A9=20=ED=9B=84=20=EB=B0=98?= =?UTF-8?q?=EB=B3=B5=20API=20=ED=98=B8=EC=B6=9C=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DictionaryList/DictionaryListViewController.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/DictionaryList/DictionaryListViewController.swift b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/DictionaryList/DictionaryListViewController.swift index e4707c30..a321f406 100644 --- a/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/DictionaryList/DictionaryListViewController.swift +++ b/MLS/MLSDictionaryFeature/Sources/MLSDictionaryFeature/Presentation/DictionaryList/DictionaryListViewController.swift @@ -424,14 +424,17 @@ extension DictionaryListViewController: UICollectionViewDelegate, UICollectionVi let now = Date() guard now.timeIntervalSince(lastPagingTime) > 0.5 else { return } + guard let reactor = reactor, + reactor.currentState.listItems.count < reactor.currentState.totalCounts else { return } + let offsetY = scrollView.contentOffset.y let contentHeight = scrollView.contentSize.height let height = scrollView.frame.size.height if offsetY > contentHeight - height - 100 { lastPagingTime = now - reactor?.action.onNext(.setCurrentPage) - reactor?.action.onNext(.fetchList) + reactor.action.onNext(.setCurrentPage) + reactor.action.onNext(.fetchList) } } }