@@ -8,10 +8,6 @@ struct GameView {
88 game. handleKey ( key)
99 }
1010
11- func onRestart( ) {
12- game = Game ( )
13- }
14-
1511 var content : some View {
1612 main ( . class( " flex flex-col gap-5 items-center h-screen bg-black text-white " ) ) {
1713 div ( . class( " flex gap-4 items-center pt-5 " ) ) {
@@ -28,7 +24,7 @@ struct GameView {
2824
2925 div ( . class( " relative " ) ) {
3026 KeyboardView ( keyboard: game. keyboard, onKeyPressed: onKeyPressed)
31- GameEndOverlay ( game: game, onRestart : onRestart )
27+ GameEndOverlay ( game: $ game)
3228 }
3329
3430 footer {
@@ -50,13 +46,15 @@ struct GameView {
5046 }
5147}
5248
53- struct SwiftLogo : View {
49+ @View
50+ struct SwiftLogo {
5451 var content : some View {
5552 img ( . src( " swift-bird.svg " ) , . class( " h-10 " ) )
5653 }
5754}
5855
59- struct GuessView : View {
56+ @View
57+ struct GuessView {
6058 var guess : Guess
6159
6260 var content : some View {
@@ -68,7 +66,8 @@ struct GuessView: View {
6866 }
6967}
7068
71- struct LetterView : View {
69+ @View
70+ struct LetterView {
7271 var guess : LetterGuess ?
7372
7473 var content : some View {
@@ -85,7 +84,8 @@ struct LetterView: View {
8584 }
8685}
8786
88- struct KeyboardView : View {
87+ @View
88+ struct KeyboardView {
8989 var keyboard : Keyboard
9090 var onKeyPressed : ( EnteredKey ) -> Void
9191
@@ -112,7 +112,8 @@ struct KeyboardView: View {
112112 }
113113}
114114
115- struct KeyboardLetterView : View {
115+ @View
116+ struct KeyboardLetterView {
116117 var guess : LetterGuess
117118 var onKeyPressed : ( EnteredKey ) -> Void
118119
@@ -133,7 +134,8 @@ struct KeyboardLetterView: View {
133134 }
134135}
135136
136- struct EnterKeyView : View {
137+ @View
138+ struct EnterKeyView {
137139 var onKeyPressed : ( EnteredKey ) -> Void
138140
139141 var content : some View {
@@ -148,7 +150,8 @@ struct EnterKeyView: View {
148150 }
149151}
150152
151- struct BackspaceKeyView : View {
153+ @View
154+ struct BackspaceKeyView {
152155 var onKeyPressed : ( EnteredKey ) -> Void
153156
154157 var content : some View {
@@ -163,9 +166,9 @@ struct BackspaceKeyView: View {
163166 }
164167}
165168
166- struct GameEndOverlay : View {
167- var game : Game
168- var onRestart : ( ) -> Void
169+ @ View
170+ struct GameEndOverlay {
171+ @ Binding var game : Game
169172
170173 var content : some View {
171174 if game. state != . playing {
@@ -177,7 +180,7 @@ struct GameEndOverlay: View {
177180 button ( . class( " bg-orange-500 py-2 px-6 rounded-md shadow-lg " ) ) {
178181 " Restart "
179182 } . onClick { _ in
180- onRestart ( )
183+ game = Game ( )
181184 }
182185 }
183186 }
0 commit comments