summaryrefslogtreecommitdiff
path: root/Hutch/Extensions/PowerUserActions.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 09:57:23 -0500
committerChristian Cleberg <[email protected]>2026-04-13 09:57:23 -0500
commit0e461a382257979037e8927e5f6b468635b0a7fe (patch)
tree0aa3a19f6f8f966b0e90f4874ed54359a7898107 /Hutch/Extensions/PowerUserActions.swift
parentee9f2904aa319231b7047fca3cb069f0c07019cd (diff)
downloadhutch-0e461a382257979037e8927e5f6b468635b0a7fe.tar.gz
hutch-0e461a382257979037e8927e5f6b468635b0a7fe.tar.bz2
hutch-0e461a382257979037e8927e5f6b468635b0a7fe.zip
feat: add power user actions
Implements: https://todo.sr.ht/~ccleberg/hutch/52 Implements: https://todo.sr.ht/~ccleberg/hutch/53 Implements: https://todo.sr.ht/~ccleberg/hutch/54
Diffstat (limited to 'Hutch/Extensions/PowerUserActions.swift')
-rw-r--r--Hutch/Extensions/PowerUserActions.swift40
1 files changed, 40 insertions, 0 deletions
diff --git a/Hutch/Extensions/PowerUserActions.swift b/Hutch/Extensions/PowerUserActions.swift
new file mode 100644
index 0000000..97e4d52
--- /dev/null
+++ b/Hutch/Extensions/PowerUserActions.swift
@@ -0,0 +1,40 @@
+import SwiftUI
+
+struct DebugTextBlock: View {
+ let title: String
+ let content: String
+
+ var body: some View {
+ VStack(alignment: .leading, spacing: 8) {
+ Text(title)
+ .font(.caption.weight(.semibold))
+ .foregroundStyle(.secondary)
+ .textCase(.uppercase)
+
+ Text(content)
+ .font(.caption.monospaced())
+ .foregroundStyle(.primary)
+ .textSelection(.enabled)
+ .frame(maxWidth: .infinity, alignment: .leading)
+ .padding(12)
+ .background(Color(.secondarySystemBackground), in: RoundedRectangle(cornerRadius: 12))
+ }
+ }
+}
+
+struct CopyConfirmationBadge: View {
+ let message: String
+
+ var body: some View {
+ HStack(spacing: 6) {
+ Image(systemName: "checkmark.circle.fill")
+ .font(.caption)
+ Text(message)
+ .font(.caption.weight(.medium))
+ }
+ .foregroundStyle(.white)
+ .padding(.horizontal, 12)
+ .padding(.vertical, 8)
+ .background(.green.gradient, in: Capsule())
+ }
+}