To-Do List in SwiftUI with SwiftData
Se han refactorizado lo siguiente:
Componentización de la vista principal a vistas reutilizables
extension TaskView {
struct ListTasksView: View {
@Environment(TaskViewModel.self) var taskViewModel: TaskViewModel
@Binding var checkTasks: [TasksLocal]
@Binding var titleSelected: String
@Binding var idTaskFromPage: UUID
@Binding var pageSelected: Bool
var body: some View {
Group {
if pageSelected && !checkTasks.isEmpty {
List {
Section {
SectionListTaskView(idTaskFromPage: $idTaskFromPage, title: String(localized:"title_pending"),status: .pending)
}
Section {
SectionListTaskView(idTaskFromPage: $idTaskFromPage, title: String(localized:"title_inprocess"),status: .inProcess)
}
Section {
SectionListTaskView(idTaskFromPage: $idTaskFromPage, title: String(localized:"title_completed"), status: .completed)
}
}
} else {
EmptyTaskView(titleSelected: $titleSelected)
}
}
}
}
}
Reemplazo de alerta de sistema por PopUp personalizado
Añadido nuevo status: In process
Se añade la posibilidad de añadir un sticker
Diseño y features de DetailView: Añadido botón de cancelar que deshace cualquier cambio en la nota
Añadido el SwiftDataManager Fake a las previews
extension TaskViewModel {
static var preview: TaskViewModel {
let context = SwiftDataManagerFake.shared
let previewTaskUseCase = TaskUseCase(swiftDataManager: context)
let previewPageUseCase = TaskPageUseCase(swiftDataManager: context)
let previewTagUseCase = TagUseCase(swiftDataManager: context)
return TaskViewModel(taskUseCase: previewTaskUseCase, taskPageUseCase: previewPageUseCase, tagUseCase: previewTagUseCase)
}
}
¿Quieres recibir posts, cheatCodes, enlaces y katas en Swift para practicar?
Quincenalmente recibirás en tu correo electrónico la newsletter, solo hace falta tu correo electrónico.