From 4ad51b5ce2e59d41eb0c25f55bc543d1c36e86b5 Mon Sep 17 00:00:00 2001 From: jhorie Date: Wed, 24 Jan 2024 11:29:25 +0100 Subject: [PATCH] Disabled tiny placeholder generation when use_tiny_placeholder config is disabled (#3513) * Disabled tiny placeholder generation when use_tiny_placeholder config is disabled * Conversion specific Width Calculator is supported * Conversion specific Width Calculator is supported * Revert "Conversion specific Width Calculator is supported" This reverts commit 2864d0b0c5c8b575c05e3a17a6db8c8d7a2bbf3c. * Revert "Conversion specific Width Calculator is supported" This reverts commit f102ebf05d2008218f1a18d8254256085c13b5eb. --------- Co-authored-by: jhorie --- config/media-library.php | 1 + .../ResponsiveImageGenerator.php | 4 +++ .../ResponsiveImageGeneratorTest.php | 26 +++++++++++++++++++ 3 files changed, 31 insertions(+) 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'); +});