@@ -173,26 +173,32 @@ internal struct ThemeListView: View {
173173 }
174174
175175 private func exportActiveTheme( ) {
176+ guard let window = NSApp . keyWindow else { return }
176177 let panel = NSSavePanel ( )
177178 panel. allowedContentTypes = [ . json]
178179 panel. nameFieldStringValue = engine. activeTheme. name + " .json "
179180 panel. canCreateDirectories = true
180- guard panel. runModal ( ) == . OK, let url = panel. url else { return }
181- try ? engine. exportTheme ( engine. activeTheme, to: url)
181+ panel. beginSheetModal ( for: window) { response in
182+ guard response == . OK, let url = panel. url else { return }
183+ try ? engine. exportTheme ( engine. activeTheme, to: url)
184+ }
182185 }
183186
184187 private func importTheme( ) {
188+ guard let window = NSApp . keyWindow else { return }
185189 let panel = NSOpenPanel ( )
186190 panel. allowedContentTypes = [ . json]
187191 panel. allowsMultipleSelection = false
188192 panel. canChooseDirectories = false
189- guard panel. runModal ( ) == . OK, let url = panel. url else { return }
190- do {
191- let imported = try engine. importTheme ( from: url)
192- selectedThemeId = imported. id
193- } catch {
194- errorMessage = error. localizedDescription
195- showError = true
193+ panel. beginSheetModal ( for: window) { response in
194+ guard response == . OK, let url = panel. url else { return }
195+ do {
196+ let imported = try self . engine. importTheme ( from: url)
197+ self . selectedThemeId = imported. id
198+ } catch {
199+ self . errorMessage = error. localizedDescription
200+ self . showError = true
201+ }
196202 }
197203 }
198204}
0 commit comments