diff --git a/src/Filament/Resources/ProductResource.php b/src/Filament/Resources/ProductResource.php index 80caef9..8e00d59 100644 --- a/src/Filament/Resources/ProductResource.php +++ b/src/Filament/Resources/ProductResource.php @@ -4,7 +4,6 @@ use Eclipse\Catalogue\Enums\PropertyInputType; use Eclipse\Catalogue\Filament\Filters\CustomPropertyConstraint; -use Eclipse\Catalogue\Filament\Forms\Components\ImageManager; use Eclipse\Catalogue\Filament\Resources\ProductResource\Pages\CreateProduct; use Eclipse\Catalogue\Filament\Resources\ProductResource\Pages\EditProduct; use Eclipse\Catalogue\Filament\Resources\ProductResource\Pages\ListProducts; @@ -21,6 +20,7 @@ use Eclipse\Catalogue\Support\LabelType; use Eclipse\Catalogue\Traits\HandlesTenantData; use Eclipse\Catalogue\Traits\HasTenantFields; +use Eclipse\Common\Filament\Forms\Components\MediaGallery; use Eclipse\World\Models\Country; use Eclipse\World\Models\TariffCode; use Filament\Actions\ActionGroup; @@ -560,10 +560,14 @@ function ($query) { Tab::make('Images') ->schema([ - ImageManager::make('images') + MediaGallery::make('images') ->label('') ->collection('images') ->acceptedFileTypes(['image/jpeg', 'image/png', 'image/gif', 'image/webp']) + ->allowUploads() + ->preview() + ->orderable() + ->mediaColumns(4) ->columnSpanFull(), ]), ]) diff --git a/src/Filament/Resources/ProductResource/Pages/CreateProduct.php b/src/Filament/Resources/ProductResource/Pages/CreateProduct.php index ade8f0b..6c0d2cb 100644 --- a/src/Filament/Resources/ProductResource/Pages/CreateProduct.php +++ b/src/Filament/Resources/ProductResource/Pages/CreateProduct.php @@ -11,14 +11,15 @@ use Eclipse\Catalogue\Traits\HandlesTenantData; use Eclipse\Catalogue\Traits\HasTenantFields; use Filament\Resources\Pages\CreateRecord; -use Filament\Schemas\Schema; use Illuminate\Database\Eloquent\Model; use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher; use LaraZeus\SpatieTranslatable\Resources\Pages\CreateRecord\Concerns\Translatable; class CreateProduct extends CreateRecord { - use HandlesImageUploads; + use HandlesImageUploads { + afterCreate as handleImageUploadsAfterCreate; + } use HandlesTenantData, HasTenantFields; use Translatable; @@ -33,6 +34,11 @@ protected function getHeaderActions(): array protected function mutateFormDataBeforeCreate(array $data): array { + if (isset($data['images'])) { + $this->temporaryImages = $data['images']; + unset($data['images']); + } + foreach (array_keys($data) as $key) { if (str_starts_with($key, 'property_values_') || str_starts_with($key, 'custom_property_')) { unset($data[$key]); @@ -52,11 +58,6 @@ protected function getFormMutuallyExclusiveFlagSets(): array return []; } - public function form(Schema $schema): Schema - { - return $schema; - } - protected function handleRecordCreation(array $data): Model { $tenantData = $this->extractTenantDataFromFormData($data); @@ -94,6 +95,8 @@ protected function afterCreate(): void return; } + $this->handleImageUploadsAfterCreate(); + $state = $this->form->getState(); $rawState = $this->form->getRawState(); $tenantData = $state['tenant_data'] ?? []; diff --git a/src/Filament/Resources/ProductResource/Pages/EditProduct.php b/src/Filament/Resources/ProductResource/Pages/EditProduct.php index c883989..6c2bf78 100644 --- a/src/Filament/Resources/ProductResource/Pages/EditProduct.php +++ b/src/Filament/Resources/ProductResource/Pages/EditProduct.php @@ -15,7 +15,6 @@ use Filament\Actions\ViewAction; use Filament\Facades\Filament; use Filament\Resources\Pages\EditRecord; -use Filament\Schemas\Schema; use Illuminate\Database\Eloquent\Model; use LaraZeus\SpatieTranslatable\Actions\LocaleSwitcher; use LaraZeus\SpatieTranslatable\Resources\Pages\EditRecord\Concerns\Translatable; @@ -217,11 +216,6 @@ protected function getFormMutuallyExclusiveFlagSets(): array return []; } - public function form(Schema $schema): Schema - { - return $schema; - } - protected function getFormActions(): array { return [