fix: register code

This commit is contained in:
Yusuke Hosonuma
2020-08-12 17:51:58 +09:00
parent b0588fa475
commit 00a23dccd8
3 changed files with 19 additions and 10 deletions
@@ -10,6 +10,8 @@ import FirebaseFirestoreSwift
protocol FirestoreBoardRepositoryProtorol: ObservableObject {
var items: [BoardDocument] { get }
func add(_ document: BoardDocument)
func get(by id :String, handler: @escaping (BoardDocument) -> Void)
func getAll(handler: @escaping ([BoardDocument]) -> Void) // TODO: Combine
func update(_ document: BoardDocument)
@@ -41,6 +43,11 @@ final class FirestoreBoardRepository: ObservableObject, FirestoreBoardRepository
}
}
func add(_ document: BoardDocument) {
_ = try! collection
.addDocument(from: document)
}
func get(by id :String, handler: @escaping (BoardDocument) -> Void) {
collection
.document(id)
@@ -11,6 +11,10 @@ final class DesigntimeFirestoreBoardRepository: FirestoreBoardRepositoryProtorol
BoardDocument(id: "2", title: "Spaceship", board: BoardPreset.spaceShip.board),
]
func add(_ document: BoardDocument) {
items.append(document)
}
func get(by id: String, handler: @escaping (BoardDocument) -> Void) {
guard let item = items.first(where: { $0.id == id }) else { return }
handler(item)
+8 -10
View File
@@ -16,22 +16,20 @@ struct MainGameView: View {
@ObservedObject var viewModel: MainGameViewModel
// For register:
// @State var title: String = ""
// @State var title: String = ""
var body: some View {
GeometryReader { geometry in
VStack {
// For register:
//
// TextField("Title", text: $title)
// Button("Save") {
// let trimed = viewModel.board.board.trimed(by: { $0 == .die }).centering(by:{ $0 == .die })
// let document = BoardDocument(title: title, board: LifeGameBoard(board: trimed))
// _ = try! Firestore.firestore()
// .collection("presets")
// .addDocument(from: document)
// title = ""
// }
// TextField("Title", text: $title)
// Button("Save") {
// let trimed = viewModel.board.board.trimed(by: { $0 == .die }).centering(by:{ $0 == .die })
// let document = BoardDocument(title: title, board: LifeGameBoard(board: trimed))
// FirestoreBoardRepository.shared.add(document)
// title = ""
// }
HeaderView(generation: viewModel.board.generation, size: viewModel.board.size)
.padding([.horizontal])