diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
index e9b08947e9..689fc60f05 100644
--- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
+++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
@@ -17,7 +17,7 @@
*ngTemplateOutlet="actionsTemplate || gridActions; context: { $implicit: row, index: i }"
>
- @if (hasAvailableActions(row)) {
+ @if (isVisibleActions(row)) {
}
diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
index 80321d4ef0..e7b8371240 100644
--- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
+++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
@@ -206,20 +206,25 @@ export class ExtensibleTableComponent implements OnChanges {
});
}
- hasAvailableActions(rowData): boolean {
- let isActionAvailable = true;
- this.actionList.toArray().map(action => {
+ isVisibleActions(rowData: any): boolean {
+ const actions = this.actionList.toArray();
+ const visibleActions = actions.filter(action => {
const { visible, permission } = action;
- if (rowData && action) {
- const visibilityCheck = visible({
- record: rowData,
- getInjected: this.getInjected,
- });
- const permissionCheck = this.permissionService.getGrantedPolicy(permission);
-
- isActionAvailable = visibilityCheck && permissionCheck;
+
+ let isVisible = true;
+ let hasPermission = true;
+
+ if (visible) {
+ isVisible = visible({ record: rowData, getInjected: this.getInjected });
+ }
+
+ if (permission) {
+ hasPermission = this.permissionService.getGrantedPolicy(permission);
}
+
+ return isVisible && hasPermission;
});
- return isActionAvailable;
+
+ return visibleActions.length > 0;
}
}