@@ -10,9 +10,9 @@ import SwiftUI
10
10
11
11
public struct BlobMenuView : View {
12
12
13
- @EnvironmentObject var environment : BlobMenuEnvironment
14
- @State var selectedIndex : Int = 0
13
+ @State public var selectedIndex : Int
15
14
15
+ @EnvironmentObject private var environment : BlobMenuEnvironment
16
16
private let items : [ MenuItem ]
17
17
18
18
public static func createMenu( items: [ MenuItem ] , selectedIndex: Int = 0 ) -> some View {
@@ -21,7 +21,11 @@ public struct BlobMenuView: View {
21
21
22
22
private init ( items: [ MenuItem ] , selectedIndex: Int = 0 ) {
23
23
self . items = items
24
- self . selectedIndex = selectedIndex. limited ( 0 , items. count - 1 )
24
+
25
+ let limitedIndex = selectedIndex. limited ( 0 , items. count - 1 )
26
+ _selectedIndex = State< Int> . init( initialValue: limitedIndex)
27
+
28
+ BlobMenuEnvironmentKey . defaultValue. selectedIndex = limitedIndex
25
29
26
30
UIWindow . current? . addGesture ( type: . tap) { _ in
27
31
BlobMenuEnvironmentKey . defaultValue. isMenuItemsVisible = false
@@ -69,7 +73,6 @@ public struct BlobMenuView: View {
69
73
70
74
return AnyView ( effectView. fill ( Color . backgroundColor)
71
75
. frame ( size: CGSize ( width: w, height: f. height) ) )
72
- //.position(CGPoint(x: b.maxX + w / 2 - r, y: f.height / 2))
73
76
}
74
77
75
78
private var background : some View {
@@ -107,6 +110,7 @@ public struct BlobMenuView: View {
107
110
MenuItemView ( item: item, isSelected: self . selectedIndex == index, isOpened: self . $environment. isMenuItemsVisible) . onTapGesture {
108
111
109
112
self . selectedIndex = index
113
+ BlobMenuEnvironmentKey . defaultValue. selectedIndex = index
110
114
}
111
115
}
112
116
}
0 commit comments