ImageColumn::make('image') ->label('Imagen') ->disk('public') ->size(48) ->extraImgAttributes(['class' => 'rounded-lg']) ->action(Action::make('upload-image') ->modal() ->modalWidth('sm') ->modalHeading('Subir imagen') ->form([ FileUpload::make('image') ->label('Imagen') ->placeholder('Sube una imagen del producto') ->image() ->disk('public') ->directory('products') ->required(), ]) ->fillForm(fn($record) => [ 'image' => $record->image, ]) ->action(fn($record, array $data) => $record->update([ 'image' => $data['image'], ])) ),
->editOptionAction(fn ($action) => $action->modalWidth('xs') // Botón para eliminar la categoría de unidad de medida ->extraModalFooterActions(function ($action, $record) { return [ DeleteAction::make() ->record($record->category) ->cancelParentActions() ]; }))
FileUpload::make('image') ->label('Imagen') ->avatar() ->placeholder(function ($record) { if ($record && $record->mainImage()) { $main_image = $record->mainImage(); $imagePath = asset("/storage/" . $main_image->path); return <<<HTML <img src="$imagePath" alt="Imagen principal" class="cropper-crop-box"> HTML; } }) ->afterStateHydrated(function (Forms\Set $set, $record) { if ($record?->mainImage()?->path) { $imagePath = $record->mainImage()->path; $set('image', ["/storage/".$imagePath]); } }) ->required(),
FileUpload::make('image') ->label('Imagen') ->avatar() ->afterStateHydrated(function (FileUpload $fileUpload, $record) { if ( $record && $record->assets->where('is_primary', true)->count() > 0) { $main_image = $record->assets->where('is_primary', true)->first(); $imagePath = asset("/storage/" . $main_image->path); $fileUpload->placeholder(<<<HTML <img src="$imagePath" alt="Imagen principal" class="cropper-crop-box"> HTML); } }) ->required(),
public function assets() { return $this->hasMany(ProductAsset::class); }
FileUpload::make('image') ->label('Imagen') ->avatar() ->placeholder(function ($record) { if (! $record || ! $record->assets->first()) { return false; } $mainImage = $record->assets->first(); $publicPath = asset('storage/' . $mainImage->path); return <<<HTML <img src="{$publicPath}" alt="{$record->name}" class="cropper-crop-box"> HTML; }) ->required(),