Files
RenewCMS/web/src/components/EditorMobileBar.vue
T

55 lines
1.2 KiB
Vue

<script setup lang="ts">
import { t } from '@/i18n'
import PublishControl from '@/components/PublishControl.vue'
import type { ArticleDraftState } from '@/composables/useArticleDraft'
defineProps<{
online: boolean
state: ArticleDraftState
saveEnabled: boolean
publishPending: string | undefined
publishDisabled: boolean
}>()
const emit = defineEmits<{
details: []
save: []
publish: []
unpublish: []
}>()
</script>
<template>
<div class="flex flex-shrink-0 gap-2 border-t border-default bg-default p-3 lg:hidden">
<UButton
icon="i-lucide-panel-right"
color="neutral"
variant="outline"
class="size-11 justify-center"
:aria-label="t('Details')"
@click="emit('details')"
/>
<UButton
data-testid="save-button-mobile"
color="neutral"
variant="outline"
class="h-11 flex-1 justify-center"
:disabled="!saveEnabled"
@click="emit('save')"
>
{{ t('Save') }}
</UButton>
<PublishControl
class="h-11 flex-1 justify-center"
hide-icon
:online="online"
:dirty="state === 'dirty'"
:pending="publishPending"
:disabled="publishDisabled"
@publish="emit('publish')"
@unpublish="emit('unpublish')"
/>
</div>
</template>