diff --git a/packages/actions/src/Concerns/CanOpenModal.php b/packages/actions/src/Concerns/CanOpenModal.php index 41e149304b..e2e77277d8 100644 --- a/packages/actions/src/Concerns/CanOpenModal.php +++ b/packages/actions/src/Concerns/CanOpenModal.php @@ -528,6 +528,11 @@ trait CanOpenModal return $this->getCustomModalHeading() ?? $this->getLabel(); } + public function hasCustomModalHeading(): bool + { + return filled($this->getCustomModalHeading()); + } + public function getModalDescription(): string | Htmlable | null { return $this->evaluate($this->modalDescription); diff --git a/packages/actions/src/Concerns/CanRequireConfirmation.php b/packages/actions/src/Concerns/CanRequireConfirmation.php index 09775ee029..4fd7cbbccc 100644 --- a/packages/actions/src/Concerns/CanRequireConfirmation.php +++ b/packages/actions/src/Concerns/CanRequireConfirmation.php @@ -7,6 +7,7 @@ use Filament\Actions\MountableAction; use Filament\Support\Enums\Alignment; use Filament\Support\Enums\MaxWidth; use Filament\Support\Facades\FilamentIcon; +use Illuminate\Contracts\Support\Htmlable; trait CanRequireConfirmation { @@ -15,6 +16,7 @@ trait CanRequireConfirmation $this->modalAlignment(fn (MountableAction $action): ?Alignment => $action->evaluate($condition) ? Alignment::Center : null); $this->modalFooterActionsAlignment(fn (MountableAction $action): ?Alignment => $action->evaluate($condition) ? Alignment::Center : null); $this->modalIcon(fn (MountableAction $action): ?string => $action->evaluate($condition) ? (FilamentIcon::resolve('actions::modal.confirmation') ?? 'heroicon-o-exclamation-triangle') : null); + $this->modalHeading ??= fn (MountableAction $action): string | Htmlable | null => $action->evaluate($condition) ? $action->getLabel() : null; $this->modalDescription(fn (MountableAction $action): ?string => $action->evaluate($condition) ? __('filament-actions::modal.confirmation') : null); $this->modalSubmitActionLabel(fn (MountableAction $action): ?string => $action->evaluate($condition) ? __('filament-actions::modal.actions.confirm.label') : null); $this->modalWidth(fn (MountableAction $action): ?MaxWidth => $action->evaluate($condition) ? MaxWidth::Medium : null); diff --git a/packages/actions/src/Concerns/InteractsWithActions.php b/packages/actions/src/Concerns/InteractsWithActions.php index 596472457b..80c417fe02 100644 --- a/packages/actions/src/Concerns/InteractsWithActions.php +++ b/packages/actions/src/Concerns/InteractsWithActions.php @@ -209,7 +209,8 @@ trait InteractsWithActions return false; } - return $action->hasModalDescription() || + return $action->hasCustomModalHeading() || + $action->hasModalDescription() || $action->hasModalContent() || $action->hasModalContentFooter() || $action->getInfolist() || diff --git a/packages/forms/src/Concerns/HasFormComponentActions.php b/packages/forms/src/Concerns/HasFormComponentActions.php index e26c54f71a..32f7aa951e 100644 --- a/packages/forms/src/Concerns/HasFormComponentActions.php +++ b/packages/forms/src/Concerns/HasFormComponentActions.php @@ -175,7 +175,8 @@ trait HasFormComponentActions return false; } - return $action->hasModalDescription() || + return $action->hasCustomModalHeading() || + $action->hasModalDescription() || $action->hasModalContent() || $action->hasModalContentFooter() || $action->getInfolist() || diff --git a/packages/infolists/src/Concerns/InteractsWithInfolists.php b/packages/infolists/src/Concerns/InteractsWithInfolists.php index f4f6b40f48..2ffe64f70f 100644 --- a/packages/infolists/src/Concerns/InteractsWithInfolists.php +++ b/packages/infolists/src/Concerns/InteractsWithInfolists.php @@ -231,7 +231,8 @@ trait InteractsWithInfolists return false; } - return $action->hasModalDescription() || + return $action->hasCustomModalHeading() || + $action->hasModalDescription() || $action->hasModalContent() || $action->hasModalContentFooter() || $action->getInfolist() || diff --git a/packages/tables/src/Concerns/HasActions.php b/packages/tables/src/Concerns/HasActions.php index d31b694978..3aa1c479a2 100644 --- a/packages/tables/src/Concerns/HasActions.php +++ b/packages/tables/src/Concerns/HasActions.php @@ -198,7 +198,8 @@ trait HasActions return false; } - return $action->hasModalDescription() || + return $action->hasCustomModalHeading() || + $action->hasModalDescription() || $action->hasModalContent() || $action->hasModalContentFooter() || $action->getInfolist() || diff --git a/packages/tables/src/Concerns/HasBulkActions.php b/packages/tables/src/Concerns/HasBulkActions.php index 47d7e73351..21ea36df02 100644 --- a/packages/tables/src/Concerns/HasBulkActions.php +++ b/packages/tables/src/Concerns/HasBulkActions.php @@ -181,7 +181,8 @@ trait HasBulkActions return false; } - return $action->hasModalDescription() || + return $action->hasCustomModalHeading() || + $action->hasModalDescription() || $action->hasModalContent() || $action->hasModalContentFooter() || $action->getInfolist() ||