Fixed Save Button for new Feed Entries
This commit is contained in:
parent
b1dc6bc473
commit
b1848da797
@ -20,7 +20,7 @@
|
|||||||
96BD33132A5C400B007A6E53 /* FeedListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96BD33122A5C400B007A6E53 /* FeedListView.swift */; };
|
96BD33132A5C400B007A6E53 /* FeedListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96BD33122A5C400B007A6E53 /* FeedListView.swift */; };
|
||||||
96BD33162A5C403C007A6E53 /* PeeringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96BD33152A5C403C007A6E53 /* PeeringView.swift */; };
|
96BD33162A5C403C007A6E53 /* PeeringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96BD33152A5C403C007A6E53 /* PeeringView.swift */; };
|
||||||
F581F59B2A5AE72F0081C383 /* BluetoothController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F581F59A2A5AE72F0081C383 /* BluetoothController.swift */; };
|
F581F59B2A5AE72F0081C383 /* BluetoothController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F581F59A2A5AE72F0081C383 /* BluetoothController.swift */; };
|
||||||
F5847B622A599BF4009E28D4 /* Body.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B612A599BF4009E28D4 /* Body.swift */; };
|
F5847B622A599BF4009E28D4 /* Bodyy.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B612A599BF4009E28D4 /* Bodyy.swift */; };
|
||||||
F5847B642A599CC3009E28D4 /* LogEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B632A599CC3009E28D4 /* LogEntry.swift */; };
|
F5847B642A599CC3009E28D4 /* LogEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B632A599CC3009E28D4 /* LogEntry.swift */; };
|
||||||
F5847B662A599EA4009E28D4 /* Feed.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B652A599EA4009E28D4 /* Feed.swift */; };
|
F5847B662A599EA4009E28D4 /* Feed.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B652A599EA4009E28D4 /* Feed.swift */; };
|
||||||
F5847B6A2A59AB24009E28D4 /* FeedStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B692A59AB24009E28D4 /* FeedStore.swift */; };
|
F5847B6A2A59AB24009E28D4 /* FeedStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847B692A59AB24009E28D4 /* FeedStore.swift */; };
|
||||||
@ -68,7 +68,7 @@
|
|||||||
96BD33122A5C400B007A6E53 /* FeedListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListView.swift; sourceTree = "<group>"; };
|
96BD33122A5C400B007A6E53 /* FeedListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListView.swift; sourceTree = "<group>"; };
|
||||||
96BD33152A5C403C007A6E53 /* PeeringView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeeringView.swift; sourceTree = "<group>"; };
|
96BD33152A5C403C007A6E53 /* PeeringView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeeringView.swift; sourceTree = "<group>"; };
|
||||||
F581F59A2A5AE72F0081C383 /* BluetoothController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothController.swift; sourceTree = "<group>"; };
|
F581F59A2A5AE72F0081C383 /* BluetoothController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothController.swift; sourceTree = "<group>"; };
|
||||||
F5847B612A599BF4009E28D4 /* Body.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Body.swift; sourceTree = "<group>"; };
|
F5847B612A599BF4009E28D4 /* Bodyy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bodyy.swift; sourceTree = "<group>"; };
|
||||||
F5847B632A599CC3009E28D4 /* LogEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogEntry.swift; sourceTree = "<group>"; };
|
F5847B632A599CC3009E28D4 /* LogEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogEntry.swift; sourceTree = "<group>"; };
|
||||||
F5847B652A599EA4009E28D4 /* Feed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Feed.swift; sourceTree = "<group>"; };
|
F5847B652A599EA4009E28D4 /* Feed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Feed.swift; sourceTree = "<group>"; };
|
||||||
F5847B692A59AB24009E28D4 /* FeedStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedStore.swift; sourceTree = "<group>"; };
|
F5847B692A59AB24009E28D4 /* FeedStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedStore.swift; sourceTree = "<group>"; };
|
||||||
@ -139,7 +139,7 @@
|
|||||||
F5A4B1222A5D5F8B00F5AE01 /* BTPeripheral.swift */,
|
F5A4B1222A5D5F8B00F5AE01 /* BTPeripheral.swift */,
|
||||||
96454F1E2A558EBD0040BEBD /* Assets.xcassets */,
|
96454F1E2A558EBD0040BEBD /* Assets.xcassets */,
|
||||||
96454F202A558EBD0040BEBD /* Preview Content */,
|
96454F202A558EBD0040BEBD /* Preview Content */,
|
||||||
F5847B612A599BF4009E28D4 /* Body.swift */,
|
F5847B612A599BF4009E28D4 /* Bodyy.swift */,
|
||||||
F5847B632A599CC3009E28D4 /* LogEntry.swift */,
|
F5847B632A599CC3009E28D4 /* LogEntry.swift */,
|
||||||
F5847B652A599EA4009E28D4 /* Feed.swift */,
|
F5847B652A599EA4009E28D4 /* Feed.swift */,
|
||||||
F5847B692A59AB24009E28D4 /* FeedStore.swift */,
|
F5847B692A59AB24009E28D4 /* FeedStore.swift */,
|
||||||
@ -321,7 +321,7 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
F5847B622A599BF4009E28D4 /* Body.swift in Sources */,
|
F5847B622A599BF4009E28D4 /* Bodyy.swift in Sources */,
|
||||||
96BD33162A5C403C007A6E53 /* PeeringView.swift in Sources */,
|
96BD33162A5C403C007A6E53 /* PeeringView.swift in Sources */,
|
||||||
F5847B662A599EA4009E28D4 /* Feed.swift in Sources */,
|
F5847B662A599EA4009E28D4 /* Feed.swift in Sources */,
|
||||||
96BD33132A5C400B007A6E53 /* FeedListView.swift in Sources */,
|
96BD33132A5C400B007A6E53 /* FeedListView.swift in Sources */,
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public struct Body: Codable {
|
public struct Bodyy: Codable {
|
||||||
|
|
||||||
let tag: String
|
let tag: String
|
||||||
let value: String
|
let value: String
|
||||||
@ -10,7 +10,7 @@ import Foundation
|
|||||||
struct Feed: Codable {
|
struct Feed: Codable {
|
||||||
|
|
||||||
let feedID: String
|
let feedID: String
|
||||||
let feed: [LogEntry]
|
var feed: [LogEntry]
|
||||||
|
|
||||||
init(feedID: String = "", feed: [LogEntry] = []) {
|
init(feedID: String = "", feed: [LogEntry] = []) {
|
||||||
self.feedID = feedID
|
self.feedID = feedID
|
||||||
@ -25,23 +25,27 @@ struct Feed: Codable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mutating func appendLogEntry(log: LogEntry) {
|
||||||
|
self.feed.append(log)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Feed {
|
extension Feed {
|
||||||
|
|
||||||
static let sampleData: [LogEntry] =
|
static let sampleData: [LogEntry] =
|
||||||
[
|
[
|
||||||
LogEntry(feedid: "BOB", sequenceNumber: 1, body: Body(tag: Apps.nam, value: "Bob")),
|
LogEntry(feedid: "BOB", sequenceNumber: 1, body: Bodyy(tag: Apps.nam, value: "Bob")),
|
||||||
LogEntry(feedid: "BOB", sequenceNumber: 2, body: Body(tag: Apps.txt, value: "My first post!")),
|
LogEntry(feedid: "BOB", sequenceNumber: 2, body: Bodyy(tag: Apps.txt, value: "My first post!")),
|
||||||
LogEntry(feedid: "BOB", sequenceNumber: 3, body: Body(tag: Apps.txt, value: "Welcome Alice"))
|
LogEntry(feedid: "BOB", sequenceNumber: 3, body: Bodyy(tag: Apps.txt, value: "Welcome Alice"))
|
||||||
]
|
]
|
||||||
|
|
||||||
static let sampleData2: [LogEntry] =
|
static let sampleData2: [LogEntry] =
|
||||||
[
|
[
|
||||||
LogEntry(feedid: "ALI", sequenceNumber: 1, body: Body(tag: Apps.nam, value: "Alice")),
|
LogEntry(feedid: "ALI", sequenceNumber: 1, body: Bodyy(tag: Apps.nam, value: "Alice")),
|
||||||
LogEntry(feedid: "ALI", sequenceNumber: 2, body: Body(tag: Apps.txt, value: "Alice' first post!")),
|
LogEntry(feedid: "ALI", sequenceNumber: 2, body: Bodyy(tag: Apps.txt, value: "Alice' first post!")),
|
||||||
LogEntry(feedid: "ALI", sequenceNumber: 3, body: Body(tag: Apps.txt, value: "Welcome Bob")),
|
LogEntry(feedid: "ALI", sequenceNumber: 3, body: Bodyy(tag: Apps.txt, value: "Welcome Bob")),
|
||||||
LogEntry(feedid: "ALI", sequenceNumber: 4, body: Body(tag: Apps.txt, value: "Whaddup DAWG"))
|
LogEntry(feedid: "ALI", sequenceNumber: 4, body: Bodyy(tag: Apps.txt, value: "Whaddup DAWG"))
|
||||||
]
|
]
|
||||||
|
|
||||||
static let sampleFeed: Feed = Feed(feedID: "BOB", feed: sampleData)
|
static let sampleFeed: Feed = Feed(feedID: "BOB", feed: sampleData)
|
||||||
|
|||||||
@ -13,9 +13,9 @@ struct LogEntry: Codable, Identifiable {
|
|||||||
|
|
||||||
let feedid: String
|
let feedid: String
|
||||||
let sequenceNumber: Int
|
let sequenceNumber: Int
|
||||||
let body: Body
|
let body: Bodyy
|
||||||
|
|
||||||
init(feedid: String = "", sequenceNumber: Int = 0, body: Body = Body()) {
|
init(feedid: String = "", sequenceNumber: Int = 0, body: Bodyy = Bodyy()) {
|
||||||
self.feedid = feedid
|
self.feedid = feedid
|
||||||
self.sequenceNumber = sequenceNumber
|
self.sequenceNumber = sequenceNumber
|
||||||
self.body = body
|
self.body = body
|
||||||
@ -24,5 +24,5 @@ struct LogEntry: Codable, Identifiable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extension LogEntry {
|
extension LogEntry {
|
||||||
static let sampleLogEntry = LogEntry(feedid: "BOB", sequenceNumber: 2, body: Body(tag: Apps.txt, value: "My first post!"))
|
static let sampleLogEntry = LogEntry(feedid: "BOB", sequenceNumber: 2, body: Bodyy(tag: Apps.txt, value: "My first post!"))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,12 +16,22 @@ struct NewFeedEntryView: View {
|
|||||||
HStack {
|
HStack {
|
||||||
TextField("Enter your new feed message:", text: $newEntry)
|
TextField("Enter your new feed message:", text: $newEntry)
|
||||||
Button(action: {
|
Button(action: {
|
||||||
let nextSeq = dataStore.personalFeed.getLastLogEntry().sequenceNumber + 1
|
let nextSeq = dataStore.personalFeed.getLastLogEntry().sequenceNumber + 1
|
||||||
let newBody = Body(tag: Apps.txt, value: newEntry)
|
let newBody = Bodyy(tag: Apps.txt, value: newEntry)
|
||||||
let newLogEntry = LogEntry(feedid: dataStore.personalID, sequenceNumber: nextSeq, body: newBody)
|
let newLogEntry = LogEntry(feedid: dataStore.personalID, sequenceNumber: nextSeq, body: newBody)
|
||||||
|
dataStore.personalFeed.appendLogEntry(log: newLogEntry)
|
||||||
}) {
|
}) {
|
||||||
Text("Send")
|
Text("Send")
|
||||||
}
|
}
|
||||||
|
.task {
|
||||||
|
do {
|
||||||
|
try await dataStore.savePersonalFeed()
|
||||||
|
} catch {
|
||||||
|
// Handle the error
|
||||||
|
print("Error loading data: \(error)")
|
||||||
|
fatalError(error.localizedDescription)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Text("New entry: \(newEntry)")
|
Text("New entry: \(newEntry)")
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user