@@ -13,6 +13,8 @@ import SwiftUIIntrospect
13
13
typealias Scope = AppListModel . Scope
14
14
15
15
struct AppListView : View {
16
+ let isPad : Bool = UIDevice . current. userInterfaceIdiom == . pad
17
+
16
18
@StateObject var searchViewModel = AppListSearchModel ( )
17
19
@EnvironmentObject var appList : AppListModel
18
20
@@ -92,6 +94,47 @@ struct AppListView: View {
92
94
}
93
95
94
96
var content : some View {
97
+ styledNavigationView
98
+ . animation ( . easeOut, value: appList. activeScopeApps. keys)
99
+ . sheet ( item: $selectorOpenedURL) { urlWrapper in
100
+ AppListView ( )
101
+ . environmentObject ( AppListModel ( selectorURL: urlWrapper. url) )
102
+ }
103
+ . onOpenURL { url in
104
+ let ext = url. pathExtension. lowercased ( )
105
+ guard url. isFileURL,
106
+ ext == " dylib " || ext == " deb "
107
+ else {
108
+ return
109
+ }
110
+ let urlIdent = URLIdentifiable ( url: preprocessURL ( url) )
111
+ if !isWarningHidden && ext == " deb " {
112
+ temporaryOpenedURL = urlIdent
113
+ isWarningPresented = true
114
+ } else {
115
+ selectorOpenedURL = urlIdent
116
+ }
117
+ }
118
+ . onAppear {
119
+ if Double . random ( in: 0 ..< 1 ) < 0.1 {
120
+ isAdvertisementHidden = false
121
+ }
122
+ }
123
+ }
124
+
125
+ var styledNavigationView : some View {
126
+ Group {
127
+ if isPad {
128
+ navigationView
129
+ . navigationViewStyle ( . automatic)
130
+ } else {
131
+ navigationView
132
+ . navigationViewStyle ( . stack)
133
+ }
134
+ }
135
+ }
136
+
137
+ var navigationView : some View {
95
138
NavigationView {
96
139
ScrollViewReader { reader in
97
140
ZStack {
@@ -110,32 +153,6 @@ struct AppListView: View {
110
153
}
111
154
}
112
155
}
113
- . navigationViewStyle ( StackNavigationViewStyle ( ) )
114
- . animation ( . easeOut, value: appList. activeScopeApps. keys)
115
- . sheet ( item: $selectorOpenedURL) { urlWrapper in
116
- AppListView ( )
117
- . environmentObject ( AppListModel ( selectorURL: urlWrapper. url) )
118
- }
119
- . onOpenURL { url in
120
- let ext = url. pathExtension. lowercased ( )
121
- guard url. isFileURL,
122
- ext == " dylib " || ext == " deb "
123
- else {
124
- return
125
- }
126
- let urlIdent = URLIdentifiable ( url: preprocessURL ( url) )
127
- if !isWarningHidden && ext == " deb " {
128
- temporaryOpenedURL = urlIdent
129
- isWarningPresented = true
130
- } else {
131
- selectorOpenedURL = urlIdent
132
- }
133
- }
134
- . onAppear {
135
- if Double . random ( in: 0 ..< 1 ) < 0.1 {
136
- isAdvertisementHidden = false
137
- }
138
- }
139
156
}
140
157
141
158
var refreshableListView : some View {
0 commit comments