aboutsummaryrefslogtreecommitdiff
path: root/Sources/NorgUI/Views/Blocks/BlockTaskRow.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-06-15 14:35:36 +0200
committerRuben Beltran del Rio <jj@r.bdr.sh>2026-06-16 14:47:30 +0200
commit657aa83a5ca24dc35572c040df64a0abb85e8612 (patch)
treefe0b6fd425d8cad9dc6a28ada4ad8600e42b367e /Sources/NorgUI/Views/Blocks/BlockTaskRow.swift
Initial extraction from Norganize
Diffstat (limited to 'Sources/NorgUI/Views/Blocks/BlockTaskRow.swift')
-rw-r--r--Sources/NorgUI/Views/Blocks/BlockTaskRow.swift23
1 files changed, 23 insertions, 0 deletions
diff --git a/Sources/NorgUI/Views/Blocks/BlockTaskRow.swift b/Sources/NorgUI/Views/Blocks/BlockTaskRow.swift
new file mode 100644
index 0000000..45255cd
--- /dev/null
+++ b/Sources/NorgUI/Views/Blocks/BlockTaskRow.swift
@@ -0,0 +1,23 @@
+import NorgKit
+import SwiftUI
+
+/// Adapts any block with status to a NorgTaskView
+struct BlockTaskRow: View {
+ @Environment(\.norgTheme) private var theme
+
+ let status: TaskStatus
+ let content: [InlineSpan]
+ let font: Font
+ let line: Int
+ let onSetStatus: (Int, TaskStatus) -> Void
+
+ var body: some View {
+ NorgTaskView(
+ status: status,
+ text: AttributedString(norg: content, baseFont: font, theme: theme),
+ font: font,
+ onToggle: { onSetStatus(line, status == .done ? .undone : .done) },
+ onSetStatus: { onSetStatus(line, $0) }
+ )
+ }
+}