diff --git a/config/media-library.php b/config/media-library.php index e369db782..bace6c88e 100644 --- a/config/media-library.php +++ b/config/media-library.php @@ -225,6 +225,7 @@ /* * By default rendering media to a responsive image will add some javascript and a tiny placeholder. * This ensures that the browser can already determine the correct layout. + * When disabled, no tiny placeholder is generated. */ 'use_tiny_placeholders' => true, diff --git a/src/ResponsiveImages/ResponsiveImageGenerator.php b/src/ResponsiveImages/ResponsiveImageGenerator.php index 8560377ab..cababc454 100644 --- a/src/ResponsiveImages/ResponsiveImageGenerator.php +++ b/src/ResponsiveImages/ResponsiveImageGenerator.php @@ -117,6 +117,10 @@ public function generateTinyJpg( string $conversionName, BaseTemporaryDirectory $temporaryDirectory ): void { + if (! config('media-library.responsive_images.use_tiny_placeholders')) { + return; + } + $tempDestination = $temporaryDirectory->path('tiny.jpg'); $this->tinyPlaceholderGenerator->generateTinyPlaceholder($originalImagePath, $tempDestination); diff --git a/tests/ResponsiveImages/ResponsiveImageGeneratorTest.php b/tests/ResponsiveImages/ResponsiveImageGeneratorTest.php index 2496614db..297509fda 100644 --- a/tests/ResponsiveImages/ResponsiveImageGeneratorTest.php +++ b/tests/ResponsiveImages/ResponsiveImageGeneratorTest.php @@ -86,3 +86,29 @@ $this->artisan('media-library:regenerate'); expect($media->fresh()->responsive_images['thumb']['urls'])->toHaveCount(1); }); + +it('will generate tiny placeholders when tiny placeholders are turned on', function () { + $media = $this->testModelWithConversion + ->addMedia($this->getTestJpg()) + ->withResponsiveImages() + ->toMediaCollection(); + + $responsiveImage = $media->refresh()->responsive_images; + + expect($responsiveImage['media_library_original'])->toHaveKey('base64svg'); + + expect((string) $responsiveImage['media_library_original']['base64svg'])->toContain('data:image/svg+xml;base64,'); +}); + +it('will not generate tiny placeholders when tiny placeholders are turned off', function () { + config()->set('media-library.responsive_images.use_tiny_placeholders', false); + + $media = $this->testModelWithConversion + ->addMedia($this->getTestJpg()) + ->withResponsiveImages() + ->toMediaCollection(); + + $responsiveImage = $media->refresh()->responsive_images; + + expect($responsiveImage['media_library_original'])->not()->toHaveKey('base64svg'); +});