@@ -21,6 +21,7 @@ struct SnipItemView<Content: View>: View {
2121
2222 @State private var isExpanded : Bool = false
2323 @State private var isEditingName = false
24+ @State var hasTriggered : Bool = false
2425
2526 let content : ( ) -> Content ?
2627
@@ -72,6 +73,13 @@ struct SnipItemView<Content: View>: View {
7273 . frame ( maxWidth: . infinity, alignment: . leading)
7374 . padding ( EdgeInsets ( top: 4 , leading: 0 , bottom: 4 , trailing: 0 ) )
7475 . background ( themePrimaryColor)
76+ . introspectTextField { textField in
77+ if self . hasTriggered == false {
78+ textField. becomeFirstResponder ( )
79+ self . hasTriggered = true
80+ }
81+ }
82+ . onAppear ( perform: { self . hasTriggered = false } )
7583 . onHover { inside in
7684 if inside {
7785 NSCursor . iBeam. push ( )
@@ -168,11 +176,24 @@ struct SnipItemView<Content: View>: View {
168176 viewModel. onTrigger ( . rename( id: viewModel. snipItem. id, name: viewModel. snipItem. name) )
169177 }
170178 )
171- . disabled ( isEditingName == false )
172179 . foregroundColor ( appState. selectedSnippetId == viewModel. snipItem. id && appState. selectedSnippetFilter. case == viewModel. activeFilter. case ? . white : . text)
173180 . frame ( maxWidth: . infinity, alignment: . leading)
174181 . padding ( . leading, 4 )
175182 . background ( themePrimaryColor)
183+ . introspectTextField { textField in
184+ if self . hasTriggered == false {
185+ textField. becomeFirstResponder ( )
186+ self . hasTriggered = true
187+ }
188+ }
189+ . onAppear ( perform: { self . hasTriggered = false } )
190+ . onHover { inside in
191+ if inside {
192+ NSCursor . iBeam. push ( )
193+ } else {
194+ NSCursor . pop ( )
195+ }
196+ }
176197 }
177198 else {
178199 Text ( self . viewModel. snipItem. name)
0 commit comments