@@ -15,6 +15,7 @@ public struct WelcomeWindow<RecentsView: View, SubtitleView: View>: Scene {
1515 private let customRecentsList : ( ( _ dismissWindow: @escaping ( ) -> Void ) -> RecentsView ) ?
1616 private let onDrop : ( ( _ url: URL , _ dismiss: @escaping ( ) -> Void ) -> Void ) ?
1717 private let subtitleView : ( ( ) -> SubtitleView ) ?
18+ private let openHandler : WelcomeOpenHandler ?
1819
1920 let iconImage : Image ?
2021 let title : String ?
@@ -33,14 +34,16 @@ public struct WelcomeWindow<RecentsView: View, SubtitleView: View>: Scene {
3334 @ActionsBuilder actions: @escaping ( _ dismissWindow: @escaping ( ) -> Void ) -> WelcomeActions ,
3435 customRecentsList: ( ( _ dismissWindow: @escaping ( ) -> Void ) -> RecentsView ) ? = nil ,
3536 subtitleView: ( ( ) -> SubtitleView ) ? = nil ,
36- onDrop: ( ( _ url: URL , _ dismiss: @escaping ( ) -> Void ) -> Void ) ? = nil
37+ onDrop: ( ( _ url: URL , _ dismiss: @escaping ( ) -> Void ) -> Void ) ? = nil ,
38+ openHandler: WelcomeOpenHandler ? = nil
3739 ) {
3840 self . iconImage = iconImage
3941 self . title = title
4042 self . buildActions = actions
4143 self . customRecentsList = customRecentsList
4244 self . subtitleView = subtitleView
4345 self . onDrop = onDrop
46+ self . openHandler = openHandler
4447 }
4548
4649 public var body : some Scene {
@@ -52,7 +55,8 @@ public struct WelcomeWindow<RecentsView: View, SubtitleView: View>: Scene {
5255 subtitleView: subtitleView,
5356 buildActions: buildActions,
5457 onDrop: onDrop,
55- customRecentsList: customRecentsList
58+ customRecentsList: customRecentsList,
59+ openHandler: openHandler
5660 )
5761 . frame ( width: 740 , height: isMacOS26 ? 460 - 28 : 460 )
5862 . task {
@@ -71,6 +75,8 @@ public struct WelcomeWindow<RecentsView: View, SubtitleView: View>: Scene {
7175 }
7276}
7377
78+ public typealias WelcomeOpenHandler = @MainActor ( _ urls: [ URL ] , _ dismiss: @escaping ( ) -> Void ) -> Void
79+
7480// ──────────────────────────────────────────────────────────────
7581// 1) NEITHER a custom recents list NOR a subtitle view
7682// ──────────────────────────────────────────────────────────────
@@ -81,15 +87,17 @@ extension WelcomeWindow where RecentsView == EmptyView, SubtitleView == EmptyVie
8187 iconImage: Image ? = nil ,
8288 title: String ? = nil ,
8389 @ActionsBuilder actions: @escaping ( _ dismissWindow: @escaping ( ) -> Void ) -> WelcomeActions ,
84- onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil
90+ onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil ,
91+ openHandler: WelcomeOpenHandler ? = nil
8592 ) {
8693 self . init (
8794 iconImage: iconImage,
8895 title: title,
8996 actions: actions,
9097 customRecentsList: nil ,
9198 subtitleView: nil ,
92- onDrop: onDrop
99+ onDrop: onDrop,
100+ openHandler: openHandler
93101 )
94102 }
95103}
@@ -105,15 +113,17 @@ extension WelcomeWindow where RecentsView == EmptyView {
105113 title: String ? = nil ,
106114 subtitleView: @escaping ( ) -> SubtitleView ,
107115 @ActionsBuilder actions: @escaping ( _ dismissWindow: @escaping ( ) -> Void ) -> WelcomeActions ,
108- onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil
116+ onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil ,
117+ openHandler: WelcomeOpenHandler ? = nil
109118 ) {
110119 self . init (
111120 iconImage: iconImage,
112121 title: title,
113122 actions: actions,
114123 customRecentsList: nil ,
115124 subtitleView: subtitleView,
116- onDrop: onDrop
125+ onDrop: onDrop,
126+ openHandler: openHandler
117127 )
118128 }
119129}
@@ -129,15 +139,17 @@ extension WelcomeWindow where SubtitleView == EmptyView {
129139 title: String ? = nil ,
130140 @ActionsBuilder actions: @escaping ( _ dismissWindow: @escaping ( ) -> Void ) -> WelcomeActions ,
131141 customRecentsList: ( ( _ dismissWindow: @escaping ( ) -> Void ) -> RecentsView ) ? = nil ,
132- onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil
142+ onDrop: ( ( _ url: URL , _ dismissWindow: @escaping ( ) -> Void ) -> Void ) ? = nil ,
143+ openHandler: WelcomeOpenHandler ? = nil
133144 ) {
134145 self . init (
135146 iconImage: iconImage,
136147 title: title,
137148 actions: actions,
138149 customRecentsList: customRecentsList,
139150 subtitleView: nil ,
140- onDrop: onDrop
151+ onDrop: onDrop,
152+ openHandler: openHandler
141153 )
142154 }
143155}
0 commit comments