Bugfixes, simplifications

This commit is contained in:
2026-05-16 13:58:38 +02:00
parent db92487782
commit 10e08435a7
6 changed files with 150 additions and 162 deletions
@@ -8,10 +8,10 @@ import SwiftUI
struct SharedNoteEditor: View {
@State var note: String?
@State var sendTask: Task<Void, Never>?
@State var remoteNote: String? = nil
@State var invitation: NoteInvitation
@Bindable var noteClient: NoteEditingSessionClient
init(
invitation: NoteInvitation,
noteClient: NoteEditingSessionClient
@@ -19,27 +19,26 @@ struct SharedNoteEditor: View {
self._invitation = .init(initialValue: invitation)
self._noteClient = .init(noteClient)
}
var body: some View {
ZStack {
if let note = Binding($note) {
TextEditor(text: note)
} else {
ProgressView {
Text("Fetching note...")
}
}
}
.onChange(of: note) { _, newValue in
sendTask?.cancel()
sendTask = Task {
try? await Task.sleep(nanoseconds: 500000000)
guard let note else { return }
DispatchQueue.main.async {
noteClient.send(note: note, to: invitation.invitatorID)
if let note = Binding($note) {
NoteTextEditor(text: note, remoteText: remoteNote)
} else {
ProgressView {
Text("Fetching note...")
}
}
}
.onReceive(noteClient.noteChangesEmitter) { message in
guard message.senderID != noteClient.ownPeer.displayName else { return }
remoteNote = message.content
}
.task(id: note) {
try? await Task.sleep(nanoseconds: 500_000_000)
guard !Task.isCancelled, let note else { return }
noteClient.send(note: note, to: invitation.invitatorID)
}
.onAppear {
invitation.accept()
note = invitation.note.noteSnapshot