pleroma-fe/src/components/draft/draft.vue

100 lines
2.4 KiB
Vue
Raw Normal View History

2023-03-10 12:10:39 -05:00
<template>
<article class="Draft">
2023-03-10 12:39:08 -05:00
<div class="actions">
2023-03-10 12:10:39 -05:00
<button
class="btn button-default"
2023-03-10 12:39:08 -05:00
:class="{ toggled: editing }"
2023-03-10 12:10:39 -05:00
:aria-expanded="editing"
@click.prevent.stop="toggleEditing"
>
{{ $t('drafts.continue') }}
</button>
2023-03-10 12:39:08 -05:00
<button
class="btn button-default"
@click.prevent.stop="abandon"
>
{{ $t('drafts.abandon') }}
</button>
2023-03-10 12:10:39 -05:00
</div>
<div
2023-03-10 12:39:08 -05:00
v-if="!editing"
class="status-content"
2023-03-10 12:39:08 -05:00
>
<div>
<i18n-t
v-if="draft.type === 'reply' || draft.type === 'edit'"
tag="span"
:keypath="draft.type === 'reply' ? 'drafts.replying' : 'drafts.editing'"
>
<template #statusLink>
<router-link
class="faint-link"
:to="{ name: 'conversation', params: { id: draft.refId } }"
>
{{ refStatus.external_url }}
</router-link>
</template>
</i18n-t>
<StatusContent
v-if="draft.refId"
class="status-content"
:status="refStatus"
:compact="true"
/>
</div>
<p>{{ draft.status }}</p>
</div>
2023-03-10 12:10:39 -05:00
<div v-if="editing">
2023-03-10 12:39:08 -05:00
<PostStatusForm
v-bind="postStatusFormProps"
@posted="handlePosted"
/>
2023-03-10 12:10:39 -05:00
</div>
2023-03-10 12:39:08 -05:00
<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>
2023-03-10 12:10:39 -05:00
</article>
</template>
<script src="./draft.js"></script>
<style lang="scss">
@import "src/variables";
2023-03-10 12:10:39 -05:00
.Draft {
margin: 1em;
2023-03-10 12:39:08 -05:00
.status-content {
border: 1px solid $fallback--faint;
border-color: var(--faint, $fallback--faint);
border-radius: $fallback--inputRadius;
border-radius: var(--inputRadius, $fallback--inputRadius);
color: $fallback--text;
color: var(--text, $fallback--text);
padding: 0.5em;
margin: 0.5em 0;
}
2023-03-10 12:39:08 -05:00
.actions {
display: flex;
flex-direction: row;
justify-content: space-evenly;
.btn {
flex: 1;
margin-left: 1em;
margin-right: 1em;
max-width: 10em;
}
}
2023-03-10 12:10:39 -05:00
}
</style>