Fixes crash when typing a new post without permissions to do a draft post.
This commit is contained in:
@@ -1145,6 +1145,8 @@ class Account(
|
||||
template: EventTemplate<out Event>,
|
||||
broadcast: Set<Event> = emptySet(),
|
||||
) {
|
||||
if (!isWriteable()) return
|
||||
|
||||
val extraRelays = cache.getAddressableNoteIfExists(DraftWrapEvent.createAddressTag(signer.pubKey, draftTag))?.relays ?: emptyList()
|
||||
|
||||
val rumor = RumorAssembler.assembleRumor(signer.pubKey, template)
|
||||
@@ -1163,6 +1165,8 @@ class Account(
|
||||
}
|
||||
|
||||
suspend fun deleteDraft(draftTag: String) {
|
||||
if (!isWriteable()) return
|
||||
|
||||
val extraRelays = cache.getAddressableNoteIfExists(DraftWrapEvent.createAddressTag(signer.pubKey, draftTag))?.relays ?: emptyList()
|
||||
|
||||
val deletedDraft = DraftWrapEvent.createDeletedEvent(draftTag, signer)
|
||||
|
||||
+1
-1
@@ -317,7 +317,7 @@ open class CommentPostViewModel :
|
||||
cancel()
|
||||
|
||||
accountViewModel.account.signAndComputeBroadcast(template, extraNotesToBroadcast)
|
||||
accountViewModel.deleteDraft(version)
|
||||
accountViewModel.account.deleteDraft(version)
|
||||
}
|
||||
|
||||
suspend fun sendDraftSync() {
|
||||
|
||||
-4
@@ -1506,10 +1506,6 @@ class AccountViewModel(
|
||||
|
||||
fun dataSources() = app.sources
|
||||
|
||||
suspend fun deleteDraft(draftTag: String) {
|
||||
account.deleteDraft(draftTag)
|
||||
}
|
||||
|
||||
suspend fun createTempDraftNote(noteEvent: DraftWrapEvent): Note? = draftNoteCache.update(noteEvent)
|
||||
|
||||
fun createTempDraftNote(
|
||||
|
||||
+4
-2
@@ -112,7 +112,9 @@ class ChatNewMessageViewModel :
|
||||
draftTag.versions.collectLatest {
|
||||
// don't save the first
|
||||
if (it > 0) {
|
||||
sendDraftSync()
|
||||
accountViewModel.runIOCatching {
|
||||
sendDraftSync()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -349,7 +351,7 @@ class ChatNewMessageViewModel :
|
||||
val version = draftTag.current
|
||||
innerSendPost(null)
|
||||
cancel()
|
||||
accountViewModel.deleteDraft(version)
|
||||
accountViewModel.account.deleteDraft(version)
|
||||
}
|
||||
|
||||
suspend fun sendDraftSync() {
|
||||
|
||||
+5
-3
@@ -106,7 +106,9 @@ open class ChannelNewMessageViewModel :
|
||||
draftTag.versions.collectLatest {
|
||||
// don't save the first
|
||||
if (it > 0) {
|
||||
sendDraftSync()
|
||||
accountViewModel.runIOCatching {
|
||||
sendDraftSync()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -260,7 +262,7 @@ open class ChannelNewMessageViewModel :
|
||||
}
|
||||
|
||||
fun sendPost(onDone: suspend () -> Unit) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
accountViewModel.runIOCatching {
|
||||
sendPostSync()
|
||||
onDone()
|
||||
}
|
||||
@@ -274,7 +276,7 @@ open class ChannelNewMessageViewModel :
|
||||
cancel()
|
||||
|
||||
accountViewModel.account.signAndSendPrivately(template, channelRelays)
|
||||
accountViewModel.deleteDraft(version)
|
||||
accountViewModel.account.deleteDraft(version)
|
||||
}
|
||||
|
||||
suspend fun sendDraftSync() {
|
||||
|
||||
+9
-6
@@ -104,20 +104,22 @@ open class NewProductViewModel :
|
||||
IZapRaiser {
|
||||
val draftTag = DraftTagState()
|
||||
|
||||
var accountViewModel: AccountViewModel? = null
|
||||
var account: Account? = null
|
||||
|
||||
init {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
draftTag.versions.collectLatest {
|
||||
// don't save the first
|
||||
if (it > 0) {
|
||||
sendDraftSync()
|
||||
accountViewModel?.runIOCatching {
|
||||
sendDraftSync()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var accountViewModel: AccountViewModel? = null
|
||||
var account: Account? = null
|
||||
|
||||
var productImages by mutableStateOf<List<ProductImageMeta>>(emptyList())
|
||||
val iMetaDescription = IMetaAttachments()
|
||||
|
||||
@@ -288,14 +290,15 @@ open class NewProductViewModel :
|
||||
}
|
||||
|
||||
suspend fun sendPostSync() {
|
||||
val accountViewModel = accountViewModel ?: return
|
||||
val template = createTemplate() ?: return
|
||||
|
||||
accountViewModel?.account?.signAndSendPrivatelyOrBroadcast(
|
||||
accountViewModel.account.signAndSendPrivatelyOrBroadcast(
|
||||
template,
|
||||
relayList = { relayList },
|
||||
)
|
||||
|
||||
accountViewModel?.deleteDraft(draftTag.current)
|
||||
accountViewModel.account.deleteDraft(draftTag.current)
|
||||
|
||||
cancel()
|
||||
}
|
||||
|
||||
+4
-2
@@ -146,7 +146,9 @@ open class ShortNotePostViewModel :
|
||||
draftTag.versions.collectLatest {
|
||||
// don't save the first
|
||||
if (it > 0) {
|
||||
sendDraftSync()
|
||||
accountViewModel.runIOCatching {
|
||||
sendDraftSync()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -481,7 +483,7 @@ open class ShortNotePostViewModel :
|
||||
cancel()
|
||||
|
||||
accountViewModel.account.signAndComputeBroadcast(template, extraNotesToBroadcast)
|
||||
accountViewModel.deleteDraft(version)
|
||||
accountViewModel.account.deleteDraft(version)
|
||||
}
|
||||
|
||||
suspend fun sendDraftSync() {
|
||||
|
||||
+4
-2
@@ -127,7 +127,9 @@ class NewPublicMessageViewModel :
|
||||
draftTag.versions.collectLatest {
|
||||
// don't save the first
|
||||
if (it > 0) {
|
||||
sendDraftSync()
|
||||
accountViewModel.runIOCatching {
|
||||
sendDraftSync()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -319,7 +321,7 @@ class NewPublicMessageViewModel :
|
||||
cancel()
|
||||
|
||||
accountViewModel.account.signAndComputeBroadcast(template, extraNotesToBroadcast)
|
||||
accountViewModel.deleteDraft(version)
|
||||
accountViewModel.account.deleteDraft(version)
|
||||
}
|
||||
|
||||
suspend fun sendDraftSync() {
|
||||
|
||||
Reference in New Issue
Block a user