@@ -16,6 +16,7 @@ struct FlagDetailView<Value, RootGroup>: View where Value: FlagValue, RootGroup:
1616 // MARK: - Properties
1717
1818 let flag : UnfurledFlag < Value , RootGroup >
19+ let isEditable : Bool
1920
2021 @ObservedObject var manager : FlagValueManager < RootGroup >
2122
@@ -25,6 +26,7 @@ struct FlagDetailView<Value, RootGroup>: View where Value: FlagValue, RootGroup:
2526 init ( flag: UnfurledFlag < Value , RootGroup > , manager: FlagValueManager < RootGroup > ) {
2627 self . flag = flag
2728 self . manager = manager
29+ self . isEditable = manager. isEditable
2830 }
2931
3032
@@ -72,22 +74,24 @@ struct FlagDetailView<Value, RootGroup>: View where Value: FlagValue, RootGroup:
7274 }
7375 }
7476
75- FlagDetailSection ( header: Text ( " Current Source " ) ) {
76- HStack {
77- Text ( self . manager. source. name)
78- . font ( . headline)
79- Spacer ( )
80- self . description ( source: self . manager. source)
81- }
77+ if self . manager. source != nil {
78+ FlagDetailSection ( header: Text ( " Current Source " ) ) {
79+ HStack {
80+ Text ( self . manager. source!. name)
81+ . font ( . headline)
82+ Spacer ( )
83+ self . description ( source: self . manager. source!)
84+ }
8285
83- Button ( action: self . clearValue) {
84- Text ( " Clear Flag Value in Current Source " )
86+ Button ( action: self . clearValue) {
87+ Text ( " Clear Flag Value in Current Source " )
88+ }
89+ . foregroundColor ( . red)
90+ . opacity ( self . isCurrentSourceSet ? 1 : 0.3 )
91+ . frame ( minWidth: 0 , maxWidth: . infinity, alignment: . center)
92+ . disabled ( self . isCurrentSourceSet == false )
93+ . animation ( . easeInOut, value: self . isCurrentSourceSet)
8594 }
86- . foregroundColor ( . red)
87- . opacity ( self . isCurrentSourceSet ? 1 : 0.3 )
88- . frame ( minWidth: 0 , maxWidth: . infinity, alignment: . center)
89- . disabled ( self . isCurrentSourceSet == false )
90- . animation ( . easeInOut, value: self . isCurrentSourceSet)
9195 }
9296
9397 FlagDetailSection ( header: Text ( " FlagPole Source Hierarchy " ) ) {
@@ -125,11 +129,14 @@ struct FlagDetailView<Value, RootGroup>: View where Value: FlagValue, RootGroup:
125129 }
126130
127131 func clearValue ( ) {
128- try ? self . manager. source. setFlagValue ( Optional< Value> . none, key: self . flag. flag. key) // swiftlint:disable:this syntactic_sugar
132+ try ? self . manager. source? . setFlagValue ( Optional< Value> . none, key: self . flag. flag. key) // swiftlint:disable:this syntactic_sugar
129133 }
130134
131135 var isCurrentSourceSet : Bool {
132- self . flagValue ( source: self . manager. source) != nil
136+ guard let source = self . manager. source else {
137+ return false
138+ }
139+ return self . flagValue ( source: source) != nil
133140 }
134141
135142 private var flagKeyView : some View {
0 commit comments