Add projects

This commit is contained in:
Ivan Vorobei
2019-06-07 09:02:12 +03:00
parent f385cd4929
commit fce7627f56
42 changed files with 2011 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
//
// NoteDetail.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
struct NoteDetail : View {
@EnvironmentObject var userData: UserData
var note: Note
private var text: State<String>
init(note: Note) {
self.note = note
self.text = .init(initialValue: note.text)
}
var noteIndex: Int {
userData.notes.firstIndex(where: { $0.id == note.id })!
}
var body: some View {
VStack {
TextField(self.text.binding,
placeholder: nil,
onEditingChanged: { _ in self.updateNote()},
onCommit: {})
Spacer()
}
.padding()
.navigationBarTitle(
Text(NoteData.dateToString(date: note.date)), displayMode: .inline)
}
private func updateNote() {
self.userData.notes[noteIndex].text = self.text.value
}
}
#if DEBUG
struct NoteDetail_Previews : PreviewProvider {
static var previews: some View {
NoteDetail(note: NoteData.shared.notes[0])
.environmentObject(UserData())
}
}
#endif
+43
View File
@@ -0,0 +1,43 @@
//
// NoteList.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
struct NoteList : View {
@EnvironmentObject var userData: UserData
var body: some View {
NavigationView {
List(userData.notes) { note in
NavigationButton(destination: NoteDetail(note: note)) {
NoteRow(note: note)
}
}
.navigationBarTitle(Text("Notes"), displayMode: .large)
.navigationBarItems(trailing: Button(action: self.createNote, label: { Text("New") }))
}
}
private func createNote() {
let newNote = Note(text: "")
self.userData.notes.insert(newNote, at: 0)
}
}
#if DEBUG
struct NoteList_Previews : PreviewProvider {
static var previews: some View {
ForEach(["iPhone SE", "iPhone XS Max"].identified(by: \.self)) { deviceName in
NoteList()
.environmentObject(UserData())
.previewDevice(PreviewDevice(rawValue: deviceName))
.previewDisplayName(deviceName)
}
}
}
#endif
+31
View File
@@ -0,0 +1,31 @@
//
// NoteRow.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
struct NoteRow : View {
var note: Note
var body: some View {
HStack {
Text(note.text)
}
}
}
#if DEBUG
struct NoteRow_Previews : PreviewProvider {
static var previews: some View {
Group {
NoteRow(note: Note(text: "New Note"))
NoteRow(note: Note(text: "Another Note"))
}
.previewLayout(.fixed(width: 300, height: 50))
}
}
#endif