From 582a2fc0a42b7793022d7b4aa3166753a225f1b8 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Fri, 14 Jun 2024 11:19:08 +0100 Subject: [PATCH] refactor --- .../docs/07-prebuilt-actions/08-import.md | 2 +- .../actions/src/Concerns/CanImportRecords.php | 24 ++++++++++--------- packages/actions/src/Imports/ImportColumn.php | 8 +++---- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/packages/actions/docs/07-prebuilt-actions/08-import.md b/packages/actions/docs/07-prebuilt-actions/08-import.md index ab917f64e3..287d9f9e6d 100644 --- a/packages/actions/docs/07-prebuilt-actions/08-import.md +++ b/packages/actions/docs/07-prebuilt-actions/08-import.md @@ -494,7 +494,7 @@ ImportColumn::make('sku') ->example('ABC123') ``` -Or if you want to add more than one example row, you can pass array to `examples()` method: +Or if you want to add more than one example row, you can pass an array to the `examples()` method: ```php use Filament\Actions\Imports\ImportColumn; diff --git a/packages/actions/src/Concerns/CanImportRecords.php b/packages/actions/src/Concerns/CanImportRecords.php index 415bada5de..06d755ee33 100644 --- a/packages/actions/src/Concerns/CanImportRecords.php +++ b/packages/actions/src/Concerns/CanImportRecords.php @@ -334,24 +334,26 @@ trait CanImportRecords $columns, )); - $rowsCount = array_reduce( + $columnExamples = array_map( + fn (ImportColumn $column): array => $column->getExamples(), $columns, - function (?int $maxCount, ImportColumn $column) { - return max($maxCount, count($column->getExamples())); - }, - 0 ); - $examples = []; - foreach ($columns as $column) { - $columnExamples = $column->getExamples(); + $exampleRowsCount = array_reduce( + $columnExamples, + fn (int $count, array $exampleData): int => max($count, count($exampleData)), + initial: 0, + ); - for($i = 0; $i < $rowsCount; $i++) { - $examples[$i][] = $columnExamples[$i] ?? ''; + $exampleRows = []; + + foreach ($columnExamples as $exampleData) { + for ($i = 0; $i < $exampleRowsCount; $i++) { + $exampleRows[$i][] = $exampleData[$i] ?? ''; } } - $csv->insertAll($examples); + $csv->insertAll($exampleRows); return response()->streamDownload(function () use ($csv) { echo $csv->toString(); diff --git a/packages/actions/src/Imports/ImportColumn.php b/packages/actions/src/Imports/ImportColumn.php index 844fd8926f..dfcb86ae6b 100644 --- a/packages/actions/src/Imports/ImportColumn.php +++ b/packages/actions/src/Imports/ImportColumn.php @@ -119,12 +119,12 @@ class ImportColumn extends Component return $this; } - /** - * @param mixed $examples - */ public function examples(mixed $examples): static { - if (!is_array($examples) && !$examples instanceof Closure) { + if ( + (! is_array($examples)) && + (! $examples instanceof Closure) + ) { $examples = Arr::wrap($examples); }