diff options
| author | Christian Cleberg <[email protected]> | 2026-04-20 16:57:40 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-20 16:57:40 -0500 |
| commit | 2e90ee4ceca73d5126118920b486149cb227c4e9 (patch) | |
| tree | 32c726ba864f3e88e018452df3571f31bb518db0 /DomainDig/ExportPresenter.swift | |
| parent | 9999f876feb9a2d419a79ad601f78053c44d44f8 (diff) | |
| download | domain-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.swift | 28 |
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) + } +} |
