fix: register code
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user