Skip to content

Commit

Permalink
Fixed #3131 - Speeddial items visible even if MenuItem object propert…
Browse files Browse the repository at this point in the history
…y "visible" is false
  • Loading branch information
tugcekucukoglu committed Oct 20, 2022
1 parent 0e00587 commit b87500d
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions src/components/speeddial/SpeedDial.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,24 @@
<SDButton type="button" :class="buttonClassName" :icon="iconClassName" @click="onClick($event)" :disabled="disabled" />
</slot>
<ul :ref="listRef" class="p-speeddial-list" role="menu">
<li v-for="(item, index) of model" :key="index" class="p-speeddial-item" :style="getItemStyle(index)" role="none">
<template v-if="!$slots.item">
<a
v-tooltip:[tooltipOptions]="{ value: item.label, disabled: !tooltipOptions }"
v-ripple
:href="item.url || '#'"
role="menuitem"
:class="['p-speeddial-action', { 'p-disabled': item.disabled }]"
:target="item.target"
@click="onItemClick($event, item)"
>
<span v-if="item.icon" :class="['p-speeddial-action-icon', item.icon]"></span>
</a>
</template>
<component v-else :is="$slots.item" :item="item"></component>
</li>
<template v-for="(item, index) of model" :key="index">
<li v-if="isItemVisible(item)" class="p-speeddial-item" :style="getItemStyle(index)" role="none">
<template v-if="!$slots.item">
<a
v-tooltip:[tooltipOptions]="{ value: item.label, disabled: !tooltipOptions }"
v-ripple
:href="item.url || '#'"
role="menuitem"
:class="['p-speeddial-action', { 'p-disabled': item.disabled }]"
:target="item.target"
@click="onItemClick($event, item)"
>
<span v-if="item.icon" :class="['p-speeddial-action-icon', item.icon]"></span>
</a>
</template>
<component v-else :is="$slots.item" :item="item"></component>
</li>
</template>
</ul>
</div>
<template v-if="mask">
Expand Down Expand Up @@ -233,6 +235,9 @@ export default {
isOutsideClicked(event) {
return this.container && !(this.container.isSameNode(event.target) || this.container.contains(event.target) || this.isItemClicked);
},
isItemVisible(item) {
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
},
containerRef(el) {
this.container = el;
},
Expand Down

0 comments on commit b87500d

Please sign in to comment.