From 4e0bf83aa7a3c8eee2d4e9eb01f410c752cdcffc Mon Sep 17 00:00:00 2001 From: Kevin Meijer Date: Tue, 15 Apr 2025 08:42:55 +0200 Subject: [PATCH 1/2] Fix empty srcset w rows --- src/Responsive.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Responsive.php b/src/Responsive.php index 0cc060f..c0f3e23 100644 --- a/src/Responsive.php +++ b/src/Responsive.php @@ -68,6 +68,10 @@ public static function getPresets(Asset $asset): array $index = 0; foreach ($configPresets as $preset => $data) { + if(!($data['w'] ?? false)) { + continue; + } + $size = $data['w'].'w'; if ($index < (count($configPresets) - 1)) { From 97fed4e5c26ed4c163d0d494482abd9e91f32032 Mon Sep 17 00:00:00 2001 From: Kevin Meijer Date: Tue, 15 Apr 2025 09:13:57 +0200 Subject: [PATCH 2/2] Added test --- tests/ResponsiveTest.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/ResponsiveTest.php b/tests/ResponsiveTest.php index 8459c85..a857b47 100644 --- a/tests/ResponsiveTest.php +++ b/tests/ResponsiveTest.php @@ -23,6 +23,7 @@ protected function setUp(): void 'placeholder' => ['w' => 32, 'h' => 32, 'q' => 100, 'fit' => 'contain'], 'xs' => ['w' => 320, 'h' => 320, 'q' => 100, 'fit' => 'contain'], 'sm' => ['w' => 640, 'h' => 640, 'q' => 100, 'fit' => 'contain'], + 'sm-h' => ['w' => null, 'h' => 640, 'q' => 100, 'fit' => 'contain'], ]); } @@ -105,4 +106,27 @@ public function it_handles_image_generation(): void $asset->delete(); } + + #[Test] + public function it_creates_mime_type_source_when_configured(): void + { + $asset = $this->uploadTestAsset('upload.png'); + config()->set('justbetter.glide-directive.sources', 'mime_type'); + + $view = Responsive::handle($asset); + /* @phpstan-ignore-next-line */ + $rendered = $view->render(); + + $this->assertStringNotContainsString('set('justbetter.glide-directive.sources', 'webp'); + + $view = Responsive::handle($asset); + /* @phpstan-ignore-next-line */ + $rendered = $view->render(); + + $this->assertStringNotContainsString('delete(); + } }