Fixes some bugs with how the editing monster is passed around.
Removes the custom cancel since we don't need it now.
This commit is contained in:
@@ -15,7 +15,8 @@ struct EditMonster: View {
|
|||||||
|
|
||||||
var monster: Monster
|
var monster: Monster
|
||||||
|
|
||||||
@ObservedObject private var monsterViewModel: MonsterViewModel = MonsterViewModel(nil)
|
@StateObject private var monsterViewModel: MonsterViewModel = MonsterViewModel(nil)
|
||||||
|
@State private var hasInitializedViewModel = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
List {
|
List {
|
||||||
@@ -226,13 +227,9 @@ struct EditMonster: View {
|
|||||||
ToolbarItem(placement: .primaryAction) {
|
ToolbarItem(placement: .primaryAction) {
|
||||||
Button("Save", action: saveMonster)
|
Button("Save", action: saveMonster)
|
||||||
}
|
}
|
||||||
ToolbarItem(placement: ToolbarItemPlacement.cancellationAction) {
|
|
||||||
Button("Cancel", action: cancel)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.navigationTitle(monster.name ?? "")
|
.navigationTitle(monsterViewModel.name)
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
.navigationBarBackButtonHidden(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func addSkill() {
|
private func addSkill() {
|
||||||
@@ -259,6 +256,7 @@ struct EditMonster: View {
|
|||||||
copyLocalToMonster()
|
copyLocalToMonster()
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
// Save core data context
|
||||||
try viewContext.save()
|
try viewContext.save()
|
||||||
} catch {
|
} catch {
|
||||||
// Replace this implementation with code to handle the error appropriately.
|
// Replace this implementation with code to handle the error appropriately.
|
||||||
@@ -266,16 +264,14 @@ struct EditMonster: View {
|
|||||||
let nsError = error as NSError
|
let nsError = error as NSError
|
||||||
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
|
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
|
||||||
}
|
}
|
||||||
// TODO: save coredata context
|
|
||||||
dismissView()
|
|
||||||
}
|
|
||||||
|
|
||||||
private func cancel() {
|
|
||||||
dismissView()
|
dismissView()
|
||||||
}
|
}
|
||||||
|
|
||||||
private func copyMonsterToLocal() {
|
private func copyMonsterToLocal() {
|
||||||
monsterViewModel.copyFromMonster(monster: monster)
|
if (!hasInitializedViewModel) {
|
||||||
|
monsterViewModel.copyFromMonster(monster: monster)
|
||||||
|
hasInitializedViewModel = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func copyLocalToMonster() {
|
private func copyLocalToMonster() {
|
||||||
|
|||||||
Reference in New Issue
Block a user