From 5f5019f128f497a6ea6464f94784c63fe0374a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Ardila?= Date: Sun, 3 Sep 2023 22:45:49 +0200 Subject: [PATCH 1/2] Add method to detect remote disks and pass null disk if not remote --- src/Actions/ImportAction.php | 2 +- src/Concerns/HasTemporaryDisk.php | 6 ++++++ src/Import.php | 7 +++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Actions/ImportAction.php b/src/Actions/ImportAction.php index f248db2..009a662 100644 --- a/src/Actions/ImportAction.php +++ b/src/Actions/ImportAction.php @@ -165,7 +165,7 @@ private function getFields(ImportField|Field $field): Field $options = $this->cachedHeadingOptions; if (count($options) === 0) { - $options = $this->toCollection($filePath, ! App::runningUnitTests() ? $this->getTemporaryDisk() : null)->first()?->first()->filter(fn ($value) => $value != null)->map('trim')->toArray(); + $options = $this->toCollection($filePath, $this->temporaryDiskIsRemote() ? $this->getTemporaryDisk() : null)->first()?->first()->filter(fn ($value) => $value != null)->map('trim')->toArray(); } $selected = array_search($field->getName(), $options); diff --git a/src/Concerns/HasTemporaryDisk.php b/src/Concerns/HasTemporaryDisk.php index 6fe3cdb..b681441 100644 --- a/src/Concerns/HasTemporaryDisk.php +++ b/src/Concerns/HasTemporaryDisk.php @@ -30,4 +30,10 @@ public function temporaryDirectory(string $temporaryPath): void { $this->temporaryDirectory = $temporaryPath; } + + public function temporaryDiskIsRemote(): bool + { + $driver = config("filesystems.disks.{$this->getTemporaryDisk()}.driver"); + return in_array($driver, ['s3', 'ftp', 'sftp']); + } } diff --git a/src/Import.php b/src/Import.php index 782f79c..f8ab046 100644 --- a/src/Import.php +++ b/src/Import.php @@ -14,6 +14,7 @@ use Konnco\FilamentImport\Actions\ImportField; use Konnco\FilamentImport\Concerns\HasActionMutation; use Konnco\FilamentImport\Concerns\HasActionUniqueField; +use Konnco\FilamentImport\Concerns\HasTemporaryDisk; use Maatwebsite\Excel\Concerns\Importable; class Import @@ -21,6 +22,7 @@ class Import use Importable; use HasActionMutation; use HasActionUniqueField; + use HasTemporaryDisk; protected string $spreadsheet; @@ -104,10 +106,7 @@ public function handleBlankRows($shouldHandleBlankRows = false): static public function getSpreadsheetData(): Collection { - $driver = config("filesystems.disks.{$this->disk}.driver"); - $isRemote = in_array($driver, ['s3', 'ftp', 'sftp']); - - $data = $this->toCollection($isRemote ? $this->spreadsheet : new UploadedFile(Storage::disk($this->disk)->path($this->spreadsheet), $this->spreadsheet)) + $data = $this->toCollection($this->temporaryDiskIsRemote() ? $this->spreadsheet : new UploadedFile(Storage::disk($this->disk)->path($this->spreadsheet), $this->spreadsheet)) ->first() ->skip((int) $this->shouldSkipHeader); if (! $this->shouldHandleBlankRows) { From 618dd154f10472979a8e856e2bdd1ef5c69920fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Ardila?= Date: Sun, 3 Sep 2023 22:49:15 +0200 Subject: [PATCH 2/2] Update ImportAction.php --- src/Actions/ImportAction.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Actions/ImportAction.php b/src/Actions/ImportAction.php index 009a662..a4e6645 100644 --- a/src/Actions/ImportAction.php +++ b/src/Actions/ImportAction.php @@ -12,7 +12,6 @@ use Filament\Forms\Components\Hidden; use Filament\Forms\Components\Select; use Filament\Forms\Components\Toggle; -use Illuminate\Support\Facades\App; use Konnco\FilamentImport\Concerns\HasActionMutation; use Konnco\FilamentImport\Concerns\HasActionUniqueField; use Konnco\FilamentImport\Concerns\HasTemporaryDisk;