From b367120eef552a452a57febf330229111ec0e2b1 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Wed, 22 May 2024 08:10:49 +0200 Subject: [PATCH 1/2] Move action lifecycle hooks --- packages/actions/src/Concerns/InteractsWithActions.php | 10 ++++++---- .../forms/src/Concerns/HasFormComponentActions.php | 10 ++++++---- .../infolists/src/Concerns/InteractsWithInfolists.php | 10 ++++++---- packages/tables/src/Concerns/HasActions.php | 10 ++++++---- packages/tables/src/Concerns/HasBulkActions.php | 10 ++++++---- 5 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/actions/src/Concerns/InteractsWithActions.php b/packages/actions/src/Concerns/InteractsWithActions.php index 4008fd79110..90b9b22a044 100644 --- a/packages/actions/src/Concerns/InteractsWithActions.php +++ b/packages/actions/src/Concerns/InteractsWithActions.php @@ -84,13 +84,15 @@ public function callMountedAction(array $arguments = []): mixed if ($this->mountedActionHasForm(mountedAction: $action)) { $action->callBeforeFormValidated(); - $action->formData($form->getState()); + $action->formData( + $form->getState(afterValidate: function () use ($action) { + $action->callAfterFormValidated(); - $action->callAfterFormValidated(); + $action->callBefore(); + }), + ); } - $action->callBefore(); - $result = $action->call([ 'form' => $form, ]); diff --git a/packages/forms/src/Concerns/HasFormComponentActions.php b/packages/forms/src/Concerns/HasFormComponentActions.php index 4aa7e0d1054..b94883746a5 100644 --- a/packages/forms/src/Concerns/HasFormComponentActions.php +++ b/packages/forms/src/Concerns/HasFormComponentActions.php @@ -65,13 +65,15 @@ public function callMountedFormComponentAction(array $arguments = []): mixed if ($this->mountedFormComponentActionHasForm(mountedAction: $action)) { $action->callBeforeFormValidated(); - $action->formData($form->getState()); + $action->formData( + $form->getState(afterValidate: function () use ($action) { + $action->callAfterFormValidated(); - $action->callAfterFormValidated(); + $action->callBefore(); + }), + ); } - $action->callBefore(); - $result = $action->call([ 'form' => $form, ]); diff --git a/packages/infolists/src/Concerns/InteractsWithInfolists.php b/packages/infolists/src/Concerns/InteractsWithInfolists.php index c055b00ee70..1a868fa2b2e 100644 --- a/packages/infolists/src/Concerns/InteractsWithInfolists.php +++ b/packages/infolists/src/Concerns/InteractsWithInfolists.php @@ -109,13 +109,15 @@ public function callMountedInfolistAction(array $arguments = []): mixed if ($this->mountedInfolistActionHasForm(mountedAction: $action)) { $action->callBeforeFormValidated(); - $action->formData($form->getState()); + $action->formData( + $form->getState(afterValidate: function () use ($action) { + $action->callAfterFormValidated(); - $action->callAfterFormValidated(); + $action->callBefore(); + }), + ); } - $action->callBefore(); - $result = $action->call([ 'form' => $form, ]); diff --git a/packages/tables/src/Concerns/HasActions.php b/packages/tables/src/Concerns/HasActions.php index 5d9c8a06898..8afb8a0f8d1 100644 --- a/packages/tables/src/Concerns/HasActions.php +++ b/packages/tables/src/Concerns/HasActions.php @@ -99,13 +99,15 @@ public function callMountedTableAction(array $arguments = []): mixed if ($this->mountedTableActionHasForm(mountedAction: $action)) { $action->callBeforeFormValidated(); - $action->formData($form->getState()); + $action->formData( + $form->getState(afterValidate: function () use ($action) { + $action->callAfterFormValidated(); - $action->callAfterFormValidated(); + $action->callBefore(); + }), + ); } - $action->callBefore(); - $result = $action->call([ 'form' => $form, ]); diff --git a/packages/tables/src/Concerns/HasBulkActions.php b/packages/tables/src/Concerns/HasBulkActions.php index 3ab15c2da9d..413d6fcf7f5 100644 --- a/packages/tables/src/Concerns/HasBulkActions.php +++ b/packages/tables/src/Concerns/HasBulkActions.php @@ -70,13 +70,15 @@ public function callMountedTableBulkAction(array $arguments = []): mixed if ($this->mountedTableBulkActionHasForm(mountedBulkAction: $action)) { $action->callBeforeFormValidated(); - $action->formData($form->getState()); + $action->formData( + $form->getState(afterValidate: function () use ($action) { + $action->callAfterFormValidated(); - $action->callAfterFormValidated(); + $action->callBefore(); + }), + ); } - $action->callBefore(); - $result = $action->call([ 'form' => $form, ]); From 00e7c302de19c25d594fbf6e7df3bc576cf8e640 Mon Sep 17 00:00:00 2001 From: Zep Fietje Date: Wed, 22 May 2024 08:22:44 +0200 Subject: [PATCH 2/2] Make sure to call before hook when for actions without form --- packages/actions/src/Concerns/InteractsWithActions.php | 2 ++ packages/forms/src/Concerns/HasFormComponentActions.php | 2 ++ packages/infolists/src/Concerns/InteractsWithInfolists.php | 2 ++ packages/tables/src/Concerns/HasActions.php | 2 ++ packages/tables/src/Concerns/HasBulkActions.php | 2 ++ 5 files changed, 10 insertions(+) diff --git a/packages/actions/src/Concerns/InteractsWithActions.php b/packages/actions/src/Concerns/InteractsWithActions.php index 90b9b22a044..afcd00fc51e 100644 --- a/packages/actions/src/Concerns/InteractsWithActions.php +++ b/packages/actions/src/Concerns/InteractsWithActions.php @@ -91,6 +91,8 @@ public function callMountedAction(array $arguments = []): mixed $action->callBefore(); }), ); + } else { + $action->callBefore(); } $result = $action->call([ diff --git a/packages/forms/src/Concerns/HasFormComponentActions.php b/packages/forms/src/Concerns/HasFormComponentActions.php index b94883746a5..ea67df68e77 100644 --- a/packages/forms/src/Concerns/HasFormComponentActions.php +++ b/packages/forms/src/Concerns/HasFormComponentActions.php @@ -72,6 +72,8 @@ public function callMountedFormComponentAction(array $arguments = []): mixed $action->callBefore(); }), ); + } else { + $action->callBefore(); } $result = $action->call([ diff --git a/packages/infolists/src/Concerns/InteractsWithInfolists.php b/packages/infolists/src/Concerns/InteractsWithInfolists.php index 1a868fa2b2e..f7694a1fce6 100644 --- a/packages/infolists/src/Concerns/InteractsWithInfolists.php +++ b/packages/infolists/src/Concerns/InteractsWithInfolists.php @@ -116,6 +116,8 @@ public function callMountedInfolistAction(array $arguments = []): mixed $action->callBefore(); }), ); + } else { + $action->callBefore(); } $result = $action->call([ diff --git a/packages/tables/src/Concerns/HasActions.php b/packages/tables/src/Concerns/HasActions.php index 8afb8a0f8d1..008f4f4ee43 100644 --- a/packages/tables/src/Concerns/HasActions.php +++ b/packages/tables/src/Concerns/HasActions.php @@ -106,6 +106,8 @@ public function callMountedTableAction(array $arguments = []): mixed $action->callBefore(); }), ); + } else { + $action->callBefore(); } $result = $action->call([ diff --git a/packages/tables/src/Concerns/HasBulkActions.php b/packages/tables/src/Concerns/HasBulkActions.php index 413d6fcf7f5..547d5461893 100644 --- a/packages/tables/src/Concerns/HasBulkActions.php +++ b/packages/tables/src/Concerns/HasBulkActions.php @@ -77,6 +77,8 @@ public function callMountedTableBulkAction(array $arguments = []): mixed $action->callBefore(); }), ); + } else { + $action->callBefore(); } $result = $action->call([