<template> <div> <a ref="dropdownLink" class="header__filter-link" @click="$refs.dropdown.toggle($refs.dropdownLink)" > <i class="header__filter-icon iconoir-table-rows"></i> <span class="header__filter-name">{{ $t('gridViewRowHeight.name') }}</span> </a> <Dropdown ref="dropdown" :show-search="false" :show-input="false" :value="view.row_height_size" @input="setSize" > <DropdownItem :name="$t('gridViewRowHeight.small')" value="small" :disabled="readOnly && !isPublic" ></DropdownItem> <DropdownItem :name="$t('gridViewRowHeight.medium')" value="medium" :disabled="readOnly && !isPublic" ></DropdownItem> <DropdownItem :name="$t('gridViewRowHeight.large')" value="large" :disabled="readOnly && !isPublic" ></DropdownItem> </Dropdown> </div> </template> <script> import { mapGetters } from 'vuex' import { notifyIf } from '@baserow/modules/core/utils/error' export default { name: 'GridViewRowHeight', props: { database: { type: Object, required: true, }, view: { type: Object, required: true, }, readOnly: { type: Boolean, required: true, }, storePrefix: { type: String, required: true, }, }, computed: { ...mapGetters({ isPublic: 'page/view/public/getIsPublic', }), }, methods: { async setSize(value) { try { await this.$store.dispatch('view/update', { view: this.view, values: { row_height_size: value }, readOnly: this.readOnly || !this.$hasPermission( 'database.table.view.update', this.view, this.database.workspace.id ), }) } catch (error) { notifyIf(error, 'view') } }, }, } </script>