1
0
mirror of git://jb55.com/damus synced 2024-09-18 19:23:49 +00:00

replying works

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin 2022-04-17 08:49:02 -07:00
parent b4660bd58f
commit 700a0e2625
5 changed files with 53 additions and 3 deletions

View File

@ -17,6 +17,7 @@
4C75EFB728049D990006080F /* RelayPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C75EFB628049D990006080F /* RelayPool.swift */; };
4C75EFB92804A2740006080F /* EventView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C75EFB82804A2740006080F /* EventView.swift */; };
4C75EFBB2804A34C0006080F /* ProofOfWork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C75EFBA2804A34C0006080F /* ProofOfWork.swift */; };
4CACA9D5280C31E100D9BBE8 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */; };
4CACA9DC280C38C000D9BBE8 /* Profiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CACA9DB280C38C000D9BBE8 /* Profiles.swift */; };
4CE6DEE727F7A08100C66700 /* damusApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6DEE627F7A08100C66700 /* damusApp.swift */; };
4CE6DEE927F7A08100C66700 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6DEE827F7A08100C66700 /* ContentView.swift */; };
@ -67,6 +68,7 @@
4C75EFB628049D990006080F /* RelayPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayPool.swift; sourceTree = "<group>"; };
4C75EFB82804A2740006080F /* EventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventView.swift; sourceTree = "<group>"; };
4C75EFBA2804A34C0006080F /* ProofOfWork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProofOfWork.swift; sourceTree = "<group>"; };
4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = "<group>"; };
4CACA9DB280C38C000D9BBE8 /* Profiles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Profiles.swift; sourceTree = "<group>"; };
4CE6DEE327F7A08100C66700 /* damus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = damus.app; sourceTree = BUILT_PRODUCTS_DIR; };
4CE6DEE627F7A08100C66700 /* damusApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = damusApp.swift; sourceTree = "<group>"; };
@ -128,6 +130,7 @@
4CEE2AF6280B2DEA00AB5EEF /* ProfileName.swift */,
4CEE2AF8280B2EAC00AB5EEF /* PowView.swift */,
4CEE2B01280B39E800AB5EEF /* EventActionBar.swift */,
4CACA9D4280C31E100D9BBE8 /* ReplyView.swift */,
);
path = Views;
sourceTree = "<group>";
@ -375,6 +378,7 @@
4CEE2AF9280B2EAC00AB5EEF /* PowView.swift in Sources */,
4CE6DEE727F7A08100C66700 /* damusApp.swift in Sources */,
4CEE2AED2805B22500AB5EEF /* NostrRequest.swift in Sources */,
4CACA9D5280C31E100D9BBE8 /* ReplyView.swift in Sources */,
4C75EFA427FA577B0006080F /* PostView.swift in Sources */,
4C75EFB528049D790006080F /* Relay.swift in Sources */,
4CEE2AF1280B216B00AB5EEF /* EventDetailView.swift in Sources */,

View File

@ -112,7 +112,7 @@ struct ContentView: View {
.sheet(item: $active_sheet) { item in
switch item {
case .post:
PostView()
PostView(references: [])
}
}
.onReceive(NotificationCenter.default.publisher(for: .post)) { obj in
@ -120,6 +120,10 @@ struct ContentView: View {
print("post \(post.content)")
let privkey = ""
let new_ev = NostrEvent(content: post.content, pubkey: pubkey)
for id in post.references {
new_ev.tags.append(["e", id])
}
new_ev.calculate_id()
new_ev.sign(privkey: privkey)
self.pool?.send(.event(new_ev))
}

View File

@ -85,7 +85,13 @@ class NostrEvent: Codable, Identifiable {
return false
}
public func reply_ids() -> [String] {
var ids = self.referenced_ids.map { $0.ref_id }
ids.append(self.id)
return ids
}
public var referenced_ids: [ReferencedId] {
return get_referenced_ids(key: "e")
}

View File

@ -15,12 +15,14 @@ extension Notification.Name {
struct NostrPost {
let content: String
let references: [String]
}
struct PostView: View {
@State var post: String = ""
@FocusState var focus: Bool
let references: [String]
@Environment(\.presentationMode) var presmode
@ -33,7 +35,7 @@ struct PostView: View {
}
func send_post() {
let new_post = NostrPost(content: self.post)
let new_post = NostrPost(content: self.post, references: references)
NotificationCenter.default.post(name: .post, object: new_post)
dismiss()
}

View File

@ -0,0 +1,34 @@
//
// ReplyView.swift
// damus
//
// Created by William Casarin on 2022-04-17.
//
import SwiftUI
struct ReplyView: View {
let replying_to: NostrEvent
var body: some View {
VStack {
Text("Replying to:")
EventView(event: replying_to, highlight: .none, has_action_bar: false)
PostView(references: replying_to.reply_ids())
Spacer()
}
.padding()
}
}
/*
struct ReplyView_Previews: PreviewProvider {
static var previews: some View {
ReplyView()
}
}
*/