annotate GeoQuiz/Components/PlayedGamesList.swift @ 21:b145c408f791

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Tue, 25 Oct 2022 15:30:01 +0200
parents e281791e0494
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // PlayedGamesList.swift
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 23/10/22.
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct PlayedGamesList: View {
21
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
11 @FetchRequest(sortDescriptors: [
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
12 SortDescriptor(\.date, order: .reverse),
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
13 ]) var playedGames: FetchedResults<PlayedGame>
20
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 @Environment(\.managedObjectContext) var moc
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 var body: some View {
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 List {
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 ForEach(playedGames, id: \.id) { game in
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 RecentGame(game: game)
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 }
21
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
22 .onDelete{ indexSet in
20
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 CoreDataController.deleteGame(at: indexSet, from: playedGames, with: moc)
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 }
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 }
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 .navigationTitle("Played games")
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 .navigationBarTitleDisplayMode(.inline)
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 .toolbar {
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 EditButton()
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 }
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 }
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 }
21
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
33
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
34 struct PlayedGamesList_Previews: PreviewProvider {
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
35 static var previews: some View {
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
36 NavigationView {
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
37 PlayedGamesList()
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
38 .environment(\.managedObjectContext, PersistenceController.preview.container.viewContext)
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
39 }
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
40 }
b145c408f791 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
41 }