Skip to content

Commit d8d5918

Browse files
committed
fix: 사용자 커스텀 카테고리 끼리는 검사하지 않아 추가
1 parent c2d5e0a commit d8d5918

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

DevLog/Presentation/ViewModel/TodoManageViewModel.swift

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,31 @@ final class TodoManageViewModel: Store {
6666
}
6767

6868
var canSubmitUserCategory: Bool {
69-
let trimmedCategoryName = state.category?.name.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
69+
guard let currentCategory = state.category else { return false }
70+
let trimmedCategoryName = currentCategory.name.trimmingCharacters(in: .whitespacesAndNewlines)
7071
if trimmedCategoryName.isEmpty {
7172
return false
7273
}
7374

74-
return !SystemTodoCategory.allCases.contains {
75-
$0.localizedName.localizedCaseInsensitiveCompare(trimmedCategoryName) == .orderedSame
75+
// 시스템 카테고리와 이름 중복 확인
76+
if SystemTodoCategory.allCases.contains(where: {
77+
$0.localizedName.caseInsensitiveCompare(trimmedCategoryName) == .orderedSame }
78+
) {
79+
return false
7680
}
81+
82+
// 다른 사용자 카테고리와 이름 중복 확인
83+
if state.preferences.contains(where: { preference in
84+
guard case .user(let userCategory) = preference.category,
85+
userCategory.id != currentCategory.id else {
86+
return false
87+
}
88+
return userCategory.name.caseInsensitiveCompare(trimmedCategoryName) == .orderedSame
89+
}) {
90+
return false
91+
}
92+
93+
return true
7794
}
7895

7996
init(_ preferences: [TodoCategoryPreference]) {

0 commit comments

Comments
 (0)