From 27b25f619359c444a06482dacbf5fd69b054ec26 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 29 Jan 2026 09:50:40 +0700 Subject: [PATCH] refactor: introduce a reusable `BackAction` component and apply it to standardize back buttons across various Filament pages. --- app/Filament/Actions/BackAction.php | 22 +++++++++++++++++++ .../Cooperations/Pages/CreateCooperation.php | 8 +++---- .../Cooperations/Pages/EditCooperation.php | 9 +++----- .../Cooperations/Pages/ViewCooperation.php | 9 +++----- .../DataChanges/Pages/ViewDataChange.php | 9 +++----- .../Manage/Partners/Pages/ViewPartner.php | 9 +++----- .../Pages/CreateContentRecap.php | 9 +++----- .../ContentRecaps/Pages/EditContentRecap.php | 9 +++----- .../Pages/CreateIssueManagement.php | 9 +++----- .../Pages/EditIssueManagement.php | 9 +++----- .../Pages/CreateMediaMonitoring.php | 9 +++----- .../Pages/EditMediaMonitoring.php | 9 +++----- .../Publication/News/Pages/CreateNews.php | 9 +++----- .../Publication/News/Pages/EditNews.php | 9 +++----- 14 files changed, 61 insertions(+), 77 deletions(-) create mode 100644 app/Filament/Actions/BackAction.php diff --git a/app/Filament/Actions/BackAction.php b/app/Filament/Actions/BackAction.php new file mode 100644 index 0000000..a483718 --- /dev/null +++ b/app/Filament/Actions/BackAction.php @@ -0,0 +1,22 @@ +label('Kembali') + ->color('secondary') + ->outlined(); + } +} diff --git a/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php b/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php index e1119e7..2abd85b 100644 --- a/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php +++ b/app/Filament/Resources/Manage/Cooperations/Pages/CreateCooperation.php @@ -2,6 +2,7 @@ namespace App\Filament\Resources\Manage\Cooperations\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Manage\Cooperations\CooperationResource; use App\Filament\Support\CheerfulNotification; use App\Notifications\BroadcastNotification; @@ -19,11 +20,8 @@ class CreateCooperation extends CreateRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListCooperations::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListCooperations::getUrl()), ]; } diff --git a/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php b/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php index cbcb3a1..d584d86 100644 --- a/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php +++ b/app/Filament/Resources/Manage/Cooperations/Pages/EditCooperation.php @@ -2,10 +2,10 @@ namespace App\Filament\Resources\Manage\Cooperations\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Manage\Cooperations\CooperationResource; use App\Filament\Support\CheerfulNotification; use App\Models\Cooperation; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; use Illuminate\Support\Facades\Storage; @@ -36,11 +36,8 @@ public function mount(int|string $record): void protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListCooperations::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListCooperations::getUrl()), ]; } diff --git a/app/Filament/Resources/Manage/Cooperations/Pages/ViewCooperation.php b/app/Filament/Resources/Manage/Cooperations/Pages/ViewCooperation.php index 8b935a2..0faeb0a 100644 --- a/app/Filament/Resources/Manage/Cooperations/Pages/ViewCooperation.php +++ b/app/Filament/Resources/Manage/Cooperations/Pages/ViewCooperation.php @@ -2,8 +2,8 @@ namespace App\Filament\Resources\Manage\Cooperations\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Manage\Cooperations\CooperationResource; -use Filament\Actions\Action; use Filament\Resources\Pages\ViewRecord; class ViewCooperation extends ViewRecord @@ -13,11 +13,8 @@ class ViewCooperation extends ViewRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListCooperations::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListCooperations::getUrl()), ]; } } diff --git a/app/Filament/Resources/Manage/DataChanges/Pages/ViewDataChange.php b/app/Filament/Resources/Manage/DataChanges/Pages/ViewDataChange.php index 12d4fca..13ffa78 100644 --- a/app/Filament/Resources/Manage/DataChanges/Pages/ViewDataChange.php +++ b/app/Filament/Resources/Manage/DataChanges/Pages/ViewDataChange.php @@ -2,8 +2,8 @@ namespace App\Filament\Resources\Manage\DataChanges\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Manage\DataChanges\DataChangesResource; -use Filament\Actions\Action; use Filament\Resources\Pages\ViewRecord; class ViewDataChange extends ViewRecord @@ -13,11 +13,8 @@ class ViewDataChange extends ViewRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(DataChangesResource::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(DataChangesResource::getUrl()), ]; } } diff --git a/app/Filament/Resources/Manage/Partners/Pages/ViewPartner.php b/app/Filament/Resources/Manage/Partners/Pages/ViewPartner.php index b2ebd75..0b950f0 100644 --- a/app/Filament/Resources/Manage/Partners/Pages/ViewPartner.php +++ b/app/Filament/Resources/Manage/Partners/Pages/ViewPartner.php @@ -2,8 +2,8 @@ namespace App\Filament\Resources\Manage\Partners\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Manage\Partners\PartnerResource; -use Filament\Actions\Action; use Filament\Resources\Pages\ViewRecord; class ViewPartner extends ViewRecord @@ -13,11 +13,8 @@ class ViewPartner extends ViewRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(url()->previous()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(url()->previous()), ]; } } diff --git a/app/Filament/Resources/Monitoring/ContentRecaps/Pages/CreateContentRecap.php b/app/Filament/Resources/Monitoring/ContentRecaps/Pages/CreateContentRecap.php index 8580079..a0fedc2 100644 --- a/app/Filament/Resources/Monitoring/ContentRecaps/Pages/CreateContentRecap.php +++ b/app/Filament/Resources/Monitoring/ContentRecaps/Pages/CreateContentRecap.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Monitoring\ContentRecaps\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\ContentRecaps\ContentRecapResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\CreateRecord; @@ -17,11 +17,8 @@ class CreateContentRecap extends CreateRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListContentRecaps::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListContentRecaps::getUrl()), ]; } diff --git a/app/Filament/Resources/Monitoring/ContentRecaps/Pages/EditContentRecap.php b/app/Filament/Resources/Monitoring/ContentRecaps/Pages/EditContentRecap.php index 758f5c9..156bae6 100644 --- a/app/Filament/Resources/Monitoring/ContentRecaps/Pages/EditContentRecap.php +++ b/app/Filament/Resources/Monitoring/ContentRecaps/Pages/EditContentRecap.php @@ -2,10 +2,10 @@ namespace App\Filament\Resources\Monitoring\ContentRecaps\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\ContentRecaps\ContentRecapResource; use App\Filament\Resources\Monitoring\MediaMonitorings\Pages\ListMediaMonitorings; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; @@ -16,11 +16,8 @@ class EditContentRecap extends EditRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListMediaMonitorings::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListMediaMonitorings::getUrl()), ]; } diff --git a/app/Filament/Resources/Monitoring/IssueManagements/Pages/CreateIssueManagement.php b/app/Filament/Resources/Monitoring/IssueManagements/Pages/CreateIssueManagement.php index a57d207..b05b9e4 100644 --- a/app/Filament/Resources/Monitoring/IssueManagements/Pages/CreateIssueManagement.php +++ b/app/Filament/Resources/Monitoring/IssueManagements/Pages/CreateIssueManagement.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Monitoring\IssueManagements\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\IssueManagements\IssueManagementResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\CreateRecord; @@ -17,11 +17,8 @@ class CreateIssueManagement extends CreateRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListIssueManagements::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListIssueManagements::getUrl()), ]; } diff --git a/app/Filament/Resources/Monitoring/IssueManagements/Pages/EditIssueManagement.php b/app/Filament/Resources/Monitoring/IssueManagements/Pages/EditIssueManagement.php index 8e59fbe..6a14329 100644 --- a/app/Filament/Resources/Monitoring/IssueManagements/Pages/EditIssueManagement.php +++ b/app/Filament/Resources/Monitoring/IssueManagements/Pages/EditIssueManagement.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Monitoring\IssueManagements\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\IssueManagements\IssueManagementResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; @@ -15,11 +15,8 @@ class EditIssueManagement extends EditRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListIssueManagements::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListIssueManagements::getUrl()), ]; } diff --git a/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/CreateMediaMonitoring.php b/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/CreateMediaMonitoring.php index 55c6d40..140cade 100644 --- a/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/CreateMediaMonitoring.php +++ b/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/CreateMediaMonitoring.php @@ -2,10 +2,10 @@ namespace App\Filament\Resources\Monitoring\MediaMonitorings\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\MediaMonitorings\MediaMonitoringResource; use App\Filament\Support\CheerfulNotification; use App\Models\MediaMonitoring; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\CreateRecord; @@ -18,11 +18,8 @@ class CreateMediaMonitoring extends CreateRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListMediaMonitorings::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListMediaMonitorings::getUrl()), ]; } diff --git a/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/EditMediaMonitoring.php b/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/EditMediaMonitoring.php index 3fe0057..a0fd8d0 100644 --- a/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/EditMediaMonitoring.php +++ b/app/Filament/Resources/Monitoring/MediaMonitorings/Pages/EditMediaMonitoring.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Monitoring\MediaMonitorings\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Monitoring\MediaMonitorings\MediaMonitoringResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; @@ -15,11 +15,8 @@ class EditMediaMonitoring extends EditRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListMediaMonitorings::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListMediaMonitorings::getUrl()), ]; } diff --git a/app/Filament/Resources/Publication/News/Pages/CreateNews.php b/app/Filament/Resources/Publication/News/Pages/CreateNews.php index 90944d0..707593b 100644 --- a/app/Filament/Resources/Publication/News/Pages/CreateNews.php +++ b/app/Filament/Resources/Publication/News/Pages/CreateNews.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Publication\News\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Publication\News\NewsResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\CreateRecord; @@ -17,11 +17,8 @@ class CreateNews extends CreateRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListNews::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListNews::getUrl()), ]; } diff --git a/app/Filament/Resources/Publication/News/Pages/EditNews.php b/app/Filament/Resources/Publication/News/Pages/EditNews.php index 67f3d32..efa20b4 100644 --- a/app/Filament/Resources/Publication/News/Pages/EditNews.php +++ b/app/Filament/Resources/Publication/News/Pages/EditNews.php @@ -2,9 +2,9 @@ namespace App\Filament\Resources\Publication\News\Pages; +use App\Filament\Actions\BackAction; use App\Filament\Resources\Publication\News\NewsResource; use App\Filament\Support\CheerfulNotification; -use Filament\Actions\Action; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; @@ -15,11 +15,8 @@ class EditNews extends EditRecord protected function getHeaderActions(): array { return [ - Action::make('back') - ->label('Kembali') - ->url(ListNews::getUrl()) - ->outlined() - ->color('secondary'), + BackAction::make() + ->url(ListNews::getUrl()), ]; }