feedless/ios/feedless/screens/Wall.swift

73 lines
2.0 KiB
Swift
Raw Normal View History

2020-04-29 07:14:38 +02:00
//
// ContentView.swift
// feedless
//
// Created by Rogerio Chaves on 28/04/20.
// Copyright © 2020 Rogerio Chaves. All rights reserved.
//
import SwiftUI
class FetchPosts: ObservableObject {
@Published var posts = [Entry<AuthorContent<Post>>]()
init() {
let url = URL(string: "http://127.0.0.1:3000/posts")!
URLSession.shared.dataTask(with: url) {(data, response, error) in
do {
if let todoData = data {
let decodedData = try JSONDecoder().decode([Entry<AuthorContent<Post>>].self, from: todoData)
DispatchQueue.main.async {
self.posts = decodedData
}
} else {
print("No data loading posts")
}
} catch {
print("Error loading posts")
}
}.resume()
}
}
struct Wall: View {
2020-04-29 07:14:38 +02:00
@State private var selection = 0
@ObservedObject var fetch = FetchPosts()
2020-04-29 07:14:38 +02:00
var body: some View {
TabView(selection: $selection){
VStack {
List(fetch.posts, id: \.key) { post in
VStack(alignment: .leading) {
Text(post.value.content.text)
}
}
}
2020-04-29 07:14:38 +02:00
.tabItem {
VStack {
Image(uiImage: "🙂".image()!).renderingMode(.original)
Text("Profile")
2020-04-29 07:14:38 +02:00
}
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
VStack {
Image(uiImage: "👨‍👧‍👦".image()!).renderingMode(.original)
Text("Friends")
2020-04-29 07:14:38 +02:00
}
}
.tag(1)
}.accentColor(Color.purple)
2020-04-29 07:14:38 +02:00
}
}
struct Wall_Previews: PreviewProvider {
2020-04-29 07:14:38 +02:00
static var previews: some View {
Wall()
2020-04-29 07:14:38 +02:00
}
}