Simplify and inline Report event logic.

Closes: https://github.com/damus-io/damus/pull/1498
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
Grimless
2023-08-22 00:00:46 -04:00
committed by William Casarin
parent 8b600a9774
commit c5d8e4a4a1
3 changed files with 16 additions and 38 deletions

View File

@@ -7,6 +7,18 @@
import SwiftUI
fileprivate extension ReportTarget {
func reportTags(type: ReportType) -> [[String]] {
switch self {
case .user(let pubkey):
return [["p", pubkey.hex(), type.rawValue]]
case .note(let notet):
return [["e", notet.note_id.hex(), type.rawValue],
["p", notet.pubkey.hex()]]
}
}
}
struct ReportView: View {
let postbox: PostBox
let target: ReportTarget
@@ -47,10 +59,12 @@ struct ReportView: View {
func do_send_report() {
guard let selected_report_type,
let ev = send_report(keypair: keypair, postbox: postbox, target: target, type: selected_report_type, message: report_message) else {
let ev = NostrEvent(content: report_message, keypair: keypair.to_keypair(), kind: 1984, tags: target.reportTags(type: selected_report_type)) else {
return
}
postbox.send(ev)
report_sent = true
report_id = bech32_note_id(ev.id)
}
@@ -113,15 +127,6 @@ struct ReportView: View {
}
}
func send_report(keypair: FullKeypair, postbox: PostBox, target: ReportTarget, type: ReportType, message: String) -> NostrEvent? {
let report = Report(type: type, target: target, message: message)
guard let ev = create_report_event(keypair: keypair, report: report) else {
return nil
}
postbox.send(ev)
return ev
}
struct ReportView_Previews: PreviewProvider {
static var previews: some View {
let ds = test_damus_state()