Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions today-s-sound/Data/Models/Subscription.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ struct CreateSubscriptionRequest: Codable {
let keywordIds: [Int64]
let alias: String?
let isAlarmEnabled: Bool

enum CodingKeys: String, CodingKey {
case urlId
case keywordIds
Expand All @@ -22,11 +22,11 @@ struct UpdateSubscriptionRequest: Codable {
let keywordIds: [Int64]
let alias: String?
let isAlarmEnabled: Bool

enum CodingKeys: String, CodingKey {
case keywordIds
case alias
case isAlarmEnabled = "isAlarmEnabled"
case isAlarmEnabled
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ struct AddSubscriptionView: View {
@EnvironmentObject var appTheme: AppThemeManager
@Environment(\.dismiss) var dismiss
var onSuccess: (() -> Void)?

init(subscriptionToEdit: SubscriptionItem? = nil, onSuccess: (() -> Void)? = nil) {
_viewModel = StateObject(wrappedValue: AddSubscriptionViewModel(subscriptionToEdit: subscriptionToEdit))
self.onSuccess = onSuccess
Expand All @@ -30,7 +30,7 @@ struct AddSubscriptionView: View {
.accessibilityHint("탭하거나 두 손가락을 아래로 스와이프하면 창이 닫힙니다")

// 화면 제목
ScreenSubTitle(text: viewModel.isEditMode ? "구독 수정" : "새 웹페이지 추가", theme: appTheme.theme)
ScreenSubTitle(text: viewModel.isEditMode ? "구독 웹페이지 수정" : "새 웹페이지 추가", theme: appTheme.theme)
.padding(.bottom, 8)
.padding(.top, 4)

Expand Down Expand Up @@ -86,7 +86,7 @@ struct AddSubscriptionView: View {
}
.onAppear {
// 수정 모드일 때 키워드 목록 자동 로드
if viewModel.isEditMode && viewModel.availableKeywords.isEmpty {
if viewModel.isEditMode, viewModel.availableKeywords.isEmpty {
viewModel.loadKeywords()
}
}
Expand Down Expand Up @@ -242,7 +242,7 @@ struct AddSubscriptionView: View {
HStack(alignment: .top, spacing: 16) {
// 타이틀과 설명을 왼쪽에 배치 (보이스오버 순서: 타이틀 → 설명)
VStack(alignment: .leading, spacing: 12) {
Text("알림 받기")
Text("새로운 글을 알림으로 받기")
.font(.KoddiBold20)
.foregroundColor(Color.text(appTheme.theme))

Expand All @@ -258,7 +258,7 @@ struct AddSubscriptionView: View {
// 토글을 오른쪽에 배치 (보이스오버에서는 마지막에 읽힘)
Toggle("", isOn: $viewModel.isAlarmEnabled)
.labelsHidden()
.accessibilityLabel("알림 받기")
.accessibilityLabel("알림")
.accessibilityValue(viewModel.isAlarmEnabled ? "켜짐" : "꺼짐")
}
.padding(.vertical)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ final class AddSubscriptionViewModel: ObservableObject {
init(subscriptionToEdit: SubscriptionItem? = nil, apiService: APIService = APIService()) {
self.subscriptionToEdit = subscriptionToEdit
self.apiService = apiService

// 수정 모드일 때 기존 값 로드
if let subscription = subscriptionToEdit {
nameText = subscription.alias
isAlarmEnabled = subscription.isAlarmEnabled
selectedKeywordIds = subscription.keywords.map { $0.id }
selectedKeywordIds = subscription.keywords.map(\.id)
// URL은 수정 불가이므로 표시만 하기 위해 URLItem을 찾아서 설정
// 실제로는 URL 선택 섹션을 비활성화할 예정
}
Expand Down Expand Up @@ -77,7 +77,7 @@ final class AddSubscriptionViewModel: ObservableObject {
createSubscriptionInternal(completion: completion)
}
}

/// 구독 생성 API 호출
private func createSubscriptionInternal(completion: @escaping (Bool) -> Void) {
guard !isLoading else { return }
Expand Down Expand Up @@ -145,13 +145,13 @@ final class AddSubscriptionViewModel: ObservableObject {
completion(true)
}
)
.store(in: &cancellables)
.store(in: &cancellables)
}

/// 구독 수정 API 호출
private func updateSubscription(completion: @escaping (Bool) -> Void) {
guard !isLoading else { return }
guard let subscriptionId = subscriptionId else {
guard let subscriptionId else {
errorMessage = "구독 정보가 없습니다"
completion(false)
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,10 @@ struct SubscriptionCardView: View {
Image(systemName: "pencil")
.resizable()
.scaledToFit()
.frame(width: 44, height: 44)
.frame(width: 44, height: 44)
.foregroundColor(Color.text(theme))
.frame(width: 40, height: 40)
.foregroundColor(.primaryGreen)
.contentShape(Rectangle())
}
.buttonStyle(.plain)
.accessibilityLabel("구독 수정")
.accessibilityHint("탭하면 구독 정보를 수정할 수 있습니다")
}
Expand Down
Loading