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