summaryrefslogtreecommitdiff
path: root/DomainDig/ExportPresenter.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-20 16:57:40 -0500
committerChristian Cleberg <[email protected]>2026-04-20 16:57:40 -0500
commit2e90ee4ceca73d5126118920b486149cb227c4e9 (patch)
tree32c726ba864f3e88e018452df3571f31bb518db0 /DomainDig/ExportPresenter.swift
parent9999f876feb9a2d419a79ad601f78053c44d44f8 (diff)
downloaddomain-dig-2e90ee4ceca73d5126118920b486149cb227c4e9.tar.gz
domain-dig-2e90ee4ceca73d5126118920b486149cb227c4e9.tar.bz2
domain-dig-2e90ee4ceca73d5126118920b486149cb227c4e9.zip
feat(v2.1.0): add bulk workflows, CSV export, and filtering
Diffstat (limited to 'DomainDig/ExportPresenter.swift')
-rw-r--r--DomainDig/ExportPresenter.swift28
1 files changed, 28 insertions, 0 deletions
diff --git a/DomainDig/ExportPresenter.swift b/DomainDig/ExportPresenter.swift
new file mode 100644
index 0000000..82ec7ae
--- /dev/null
+++ b/DomainDig/ExportPresenter.swift
@@ -0,0 +1,28 @@
+import SwiftUI
+import UIKit
+
+enum ExportPresenter {
+ static func share(filename: String, contents: String) {
+ let url = FileManager.default.temporaryDirectory.appendingPathComponent(filename)
+
+ do {
+ try contents.write(to: url, atomically: true, encoding: .utf8)
+ } catch {
+ return
+ }
+
+ let activityController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
+ guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
+ let rootViewController = windowScene.keyWindow?.rootViewController else {
+ return
+ }
+
+ var presenter = rootViewController
+ while let presentedViewController = presenter.presentedViewController {
+ presenter = presentedViewController
+ }
+
+ activityController.popoverPresentationController?.sourceView = presenter.view
+ presenter.present(activityController, animated: true)
+ }
+}