Make it possible to abandon draft

This commit is contained in:
tusooa 2023-03-10 12:39:08 -05:00
commit a245379f43
No known key found for this signature in database
GPG key ID: 42AEC43D48433C51
4 changed files with 77 additions and 13 deletions

View file

@ -1,8 +1,10 @@
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
const Draft = {
components: {
PostStatusForm
PostStatusForm,
ConfirmModal
},
props: {
draft: {
@ -12,7 +14,8 @@ const Draft = {
},
data () {
return {
editing: false
editing: false,
showingConfirmDialog: false
}
},
computed: {
@ -35,6 +38,23 @@ const Draft = {
methods: {
toggleEditing () {
this.editing = !this.editing
},
abandon () {
this.showingConfirmDialog = true
},
doAbandon () {
console.debug('abandoning')
this.$store.dispatch('abandonDraft', { id: this.draft.id })
.then(() => {
this.hideConfirmDialog()
})
},
hideConfirmDialog () {
this.showingConfirmDialog = false
},
handlePosted () {
console.debug('posted')
this.doAbandon()
}
}
}

View file

@ -1,28 +1,48 @@
<template>
<article class="Draft">
<div>
{{ draft.id }}
</div>
<div v-if="draft.inReplyToStatusId">
{{ draft.inReplyToStatusId }}
</div>
<div
class="draft-content"
>
{{ draft.status }}
</div>
<div>
<div class="actions">
<button
class="btn button-default"
:class="{ toggled: editing }"
:aria-expanded="editing"
@click.prevent.stop="toggleEditing"
>
{{ $t('drafts.continue') }}
</button>
<button
class="btn button-default"
@click.prevent.stop="abandon"
>
{{ $t('drafts.abandon') }}
</button>
</div>
<p
v-if="!editing"
class="draft-content"
>
{{ draft.status }}
</p>
<div v-if="editing">
<PostStatusForm v-bind="postStatusFormProps" />
<PostStatusForm
v-bind="postStatusFormProps"
@posted="handlePosted"
/>
</div>
<teleport to="#modal">
<confirm-modal
v-if="showingConfirmDialog"
:title="$t('drafts.abandon_confirm_title')"
:confirm-text="$t('drafts.abandon_confirm_accept_button')"
:cancel-text="$t('drafts.abandon_confirm_cancel_button')"
@accepted="doAbandon"
@cancelled="hideConfirmDialog"
>
{{ $t('drafts.abandon_confirm') }}
</confirm-modal>
</teleport>
</article>
</template>
@ -31,5 +51,18 @@
<style lang="scss">
.Draft {
margin: 1em;
.actions {
display: flex;
flex-direction: row;
justify-content: space-evenly;
.btn {
flex: 1;
margin-left: 1em;
margin-right: 1em;
max-width: 10em;
}
}
}
</style>