From 090b2e6f1b603d5c087bd2b180662cbacc2f7f9f Mon Sep 17 00:00:00 2001 From: Lance Pioch Date: Tue, 26 Mar 2024 22:34:42 -0400 Subject: [PATCH] Move this over for the import --- app/Filament/Resources/EggResource.php | 35 +--------------- .../Resources/EggResource/Pages/ListEggs.php | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/app/Filament/Resources/EggResource.php b/app/Filament/Resources/EggResource.php index faeb63b55..3d8d0d43f 100644 --- a/app/Filament/Resources/EggResource.php +++ b/app/Filament/Resources/EggResource.php @@ -4,16 +4,11 @@ namespace App\Filament\Resources; use App\Filament\Resources\EggResource\Pages; use App\Models\Egg; -use App\Services\Eggs\Sharing\EggImporterService; -use Exception; use Filament\Forms; use Filament\Forms\Form; -use Filament\Notifications\Notification; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; -use Livewire\Component; -use Livewire\Features\SupportFileUploads\TemporaryUploadedFile; class EggResource extends Resource { @@ -178,35 +173,7 @@ class EggResource extends Resource Tables\Actions\EditAction::make(), ]) ->headerActions([ - Tables\Actions\Action::make('Import Egg') - ->form([ - Forms\Components\FileUpload::make('egg')->storeFiles(false), - ]) - ->action(function (array $data, Component $livewire): void { - /** @var TemporaryUploadedFile $eggFile */ - $eggFile = $data['egg']; - - /** @var EggImporterService $eggImportService */ - $eggImportService = resolve(EggImporterService::class); - - try { - $newEgg = $eggImportService->handle($eggFile); - } catch (Exception $exception) { - Notification::make() - ->title("Imported egg successfully: {$exception->getMessage()}") - ->success() - ->send(); - - return; - } - - Notification::make() - ->title("Imported egg successfully: $newEgg->name") - ->success() - ->send(); - - $livewire->redirect(route('filament.admin.resources.eggs.edit', [$newEgg])); - }) + // ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ diff --git a/app/Filament/Resources/EggResource/Pages/ListEggs.php b/app/Filament/Resources/EggResource/Pages/ListEggs.php index cd7e405fc..3d6f836bf 100644 --- a/app/Filament/Resources/EggResource/Pages/ListEggs.php +++ b/app/Filament/Resources/EggResource/Pages/ListEggs.php @@ -3,8 +3,13 @@ namespace App\Filament\Resources\EggResource\Pages; use App\Filament\Resources\EggResource; +use App\Services\Eggs\Sharing\EggImporterService; +use Exception; use Filament\Actions; +use Filament\Forms; +use Filament\Notifications\Notification; use Filament\Resources\Pages\ListRecords; +use Livewire\Features\SupportFileUploads\TemporaryUploadedFile; class ListEggs extends ListRecords { @@ -14,6 +19,41 @@ class ListEggs extends ListRecords { return [ Actions\CreateAction::make(), + + Actions\Action::make('import') + ->label('Import Egg') + ->form([ + Forms\Components\FileUpload::make('egg') + ->acceptedFileTypes(['application/json']) + ->storeFiles(false), + ]) + ->action(function (array $data): void { + /** @var TemporaryUploadedFile $eggFile */ + $eggFile = $data['egg']; + + /** @var EggImporterService $eggImportService */ + $eggImportService = resolve(EggImporterService::class); + + try { + $newEgg = $eggImportService->handle($eggFile); + } catch (Exception $exception) { + Notification::make() + ->title("Imported egg successfully: {$exception->getMessage()}") + ->success() + ->send(); + + return; + } + + Notification::make() + ->title("Imported egg successfully: $newEgg->name") + ->success() + ->send(); + + redirect()->route('filament.admin.resources.eggs.edit', [$newEgg]); + + // $livewire->redirect(route('filament.admin.resources.eggs.edit', [$newEgg])); + }) ]; } }