55 lines
1.6 KiB
Swift
55 lines
1.6 KiB
Swift
//
|
|
// GameSeriesDetailView.swift
|
|
// Zockerhoehle
|
|
//
|
|
// Created by Julian-Steffen Müller on 05.08.19.
|
|
// Copyright © 2019 Julian-Steffen Müller. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import CoreData
|
|
|
|
struct GameSeriesLibraryView: View {
|
|
@Environment(\.managedObjectContext) private var viewContext
|
|
@FetchRequest var games: FetchedResults<Game>
|
|
|
|
@ObservedObject var gameSeries : GameSeries
|
|
|
|
@State var isDetailActivated : Bool = false
|
|
|
|
init(gameSeries : GameSeries) {
|
|
self.gameSeries = gameSeries
|
|
|
|
let gamesFR = NSFetchRequest<Game>(entityName: "Game")
|
|
gamesFR.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
|
|
gamesFR.predicate = NSPredicate(format: "series == %@", gameSeries)
|
|
|
|
_games = FetchRequest(fetchRequest: gamesFR)
|
|
}
|
|
|
|
let columns : [GridItem] = [
|
|
GridItem(.adaptive(minimum: 100))
|
|
]
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
LazyVGrid(columns: columns, spacing: 20) {
|
|
ForEach(games) { game in
|
|
NavigationLink(destination: GameEditMode(game: game)) {
|
|
GameCover(game: game)
|
|
}
|
|
}
|
|
}.padding()
|
|
}
|
|
.navigationBarTitle(Text(self.gameSeries.name ?? "n/a"))
|
|
.navigationBarItems(trailing:
|
|
NavigationLink(destination: GameSeriesEditView(gameSeries: self.gameSeries)) {
|
|
Image(systemName: "pencil.and.ellipsis.rectangle")
|
|
}
|
|
)
|
|
.padding()
|
|
}
|
|
}
|
|
|
|
|