Adds a view to show the monster being imported and confirm the user wants to import that monster.

This commit is contained in:
2021-04-04 01:36:49 -07:00
parent f8b6c1c45c
commit 1b0f2ee0df
3 changed files with 36 additions and 2 deletions

View File

@@ -15,6 +15,7 @@
E20209FC25D8E19100EFE733 /* MonsterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */; }; E20209FC25D8E19100EFE733 /* MonsterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */; };
E210B83A25B42D980083EAC5 /* MCProficiencyPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */; }; E210B83A25B42D980083EAC5 /* MCProficiencyPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */; };
E210B83F25B42DAB0083EAC5 /* MCAdvantagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */; }; E210B83F25B42DAB0083EAC5 /* MCAdvantagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */; };
E21661D12616E9A800117782 /* ImportMonster.swift in Sources */ = {isa = PBXBuildFile; fileRef = E21661D02616E9A800117782 /* ImportMonster.swift */; };
E216B791260C1FE800FB205F /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B790260C1FE800FB205F /* LanguageViewModel.swift */; }; E216B791260C1FE800FB205F /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B790260C1FE800FB205F /* LanguageViewModel.swift */; };
E216B799260C2DF200FB205F /* EditLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B798260C2DF200FB205F /* EditLanguages.swift */; }; E216B799260C2DF200FB205F /* EditLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B798260C2DF200FB205F /* EditLanguages.swift */; };
E216B79E260C396F00FB205F /* EditLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B79D260C396F00FB205F /* EditLanguage.swift */; }; E216B79E260C396F00FB205F /* EditLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E216B79D260C396F00FB205F /* EditLanguage.swift */; };
@@ -87,6 +88,7 @@
E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MonsterViewModel.swift; sourceTree = "<group>"; }; E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MonsterViewModel.swift; sourceTree = "<group>"; };
E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCProficiencyPicker.swift; sourceTree = "<group>"; }; E210B83925B42D980083EAC5 /* MCProficiencyPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCProficiencyPicker.swift; sourceTree = "<group>"; };
E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCAdvantagePicker.swift; sourceTree = "<group>"; }; E210B83E25B42DAB0083EAC5 /* MCAdvantagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MCAdvantagePicker.swift; sourceTree = "<group>"; };
E21661D02616E9A800117782 /* ImportMonster.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportMonster.swift; sourceTree = "<group>"; };
E216B790260C1FE800FB205F /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = "<group>"; }; E216B790260C1FE800FB205F /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = "<group>"; };
E216B798260C2DF200FB205F /* EditLanguages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLanguages.swift; sourceTree = "<group>"; }; E216B798260C2DF200FB205F /* EditLanguages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLanguages.swift; sourceTree = "<group>"; };
E216B79D260C396F00FB205F /* EditLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLanguage.swift; sourceTree = "<group>"; }; E216B79D260C396F00FB205F /* EditLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLanguage.swift; sourceTree = "<group>"; };
@@ -254,6 +256,7 @@
E2B5285825B3028700AAA69E /* EditMonster.swift */, E2B5285825B3028700AAA69E /* EditMonster.swift */,
E24ACE642607F55D009BF703 /* EditSavingThrows.swift */, E24ACE642607F55D009BF703 /* EditSavingThrows.swift */,
E2CB0DB226080C0500142591 /* EditSkill.swift */, E2CB0DB226080C0500142591 /* EditSkill.swift */,
E21661D02616E9A800117782 /* ImportMonster.swift */,
E24ACE692607F715009BF703 /* EditSkills.swift */, E24ACE692607F715009BF703 /* EditSkills.swift */,
E24ACE5A2607F0F2009BF703 /* EditSpeed.swift */, E24ACE5A2607F0F2009BF703 /* EditSpeed.swift */,
E2CB0DE526088CE400142591 /* EditStrings.swift */, E2CB0DE526088CE400142591 /* EditStrings.swift */,
@@ -435,6 +438,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
E20209FB25D8E19100EFE733 /* SkillViewModel.swift in Sources */, E20209FB25D8E19100EFE733 /* SkillViewModel.swift in Sources */,
E21661D12616E9A800117782 /* ImportMonster.swift in Sources */,
E24ACE602607F45E009BF703 /* EditAbilityScores.swift in Sources */, E24ACE602607F45E009BF703 /* EditAbilityScores.swift in Sources */,
E2570FC225B1AC550055B23B /* Persistence.swift in Sources */, E2570FC225B1AC550055B23B /* Persistence.swift in Sources */,
E216B799260C2DF200FB205F /* EditLanguages.swift in Sources */, E216B799260C2DF200FB205F /* EditLanguages.swift in Sources */,

View File

@@ -8,8 +8,13 @@
import SwiftUI import SwiftUI
import CoreData import CoreData
struct ImportInfo {
var monster: MonsterViewModel = MonsterViewModel()
}
struct ContentView: View { struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext @Environment(\.managedObjectContext) private var viewContext
@State private var importInfo = ImportInfo()
@State private var isShowingImportDialog = false @State private var isShowingImportDialog = false
var body: some View { var body: some View {
@@ -38,11 +43,12 @@ struct ContentView: View {
} }
.onOpenURL(perform: beginImportingMonster) .onOpenURL(perform: beginImportingMonster)
.sheet(isPresented: self.$isShowingImportDialog) { .sheet(isPresented: self.$isShowingImportDialog) {
Text("Importing Monster") ImportMonster(monster: $importInfo.monster)
} }
} }
func beginImportingMonster(url: URL) { func beginImportingMonster(url: URL) {
self.importInfo.monster.name = url.absoluteString
self.isShowingImportDialog = true self.isShowingImportDialog = true
} }
} }

View File

@@ -0,0 +1,24 @@
//
// ImportMonster.swift
// MonsterCards
//
// Created by Tom Hicks on 4/1/21.
//
import SwiftUI
struct ImportMonster: View {
@Binding var monster: MonsterViewModel
var body: some View {
MonsterDetailView(viewModel: monster)
}
}
struct ImportMonster_Previews: PreviewProvider {
static var previews: some View {
ImportMonster(
monster: .constant(MonsterViewModel())
)
}
}