Skip to content

Commit 2eacfa0

Browse files
committed
allow to pass parameters to url
1 parent 488af3f commit 2eacfa0

File tree

7 files changed

+476
-243
lines changed

7 files changed

+476
-243
lines changed

database/factories/MediaFactory.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,23 @@ public function definition()
2929
];
3030
}
3131

32+
public function withPoster(): static
33+
{
34+
return $this->state(function (array $attributes) {
35+
return [
36+
'generated_conversions' => collect($attributes['generated_conversions'] ?? [])
37+
->put('poster', new GeneratedConversion(
38+
state: 'success',
39+
type: MediaType::Image,
40+
file_name: 'poster.png',
41+
name: 'poster',
42+
path: '/uuid/poster/poster.png',
43+
disk: $attributes['disk'],
44+
)),
45+
];
46+
});
47+
}
48+
3249
public static function generatedConversion(?string $disk = null)
3350
{
3451
return new GeneratedConversion(
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
@props([
2-
'conversion' => null,
32
'media',
4-
'responsive' => false,
3+
'conversion' => null,
4+
'fallback' => false,
5+
'parameters' => null,
56
'loading' => 'lazy',
67
'alt' => null,
8+
'src' => null,
79
'width' => null,
810
'height' => null,
9-
'sizes' => '1px',
10-
'fallback' => false,
1111
])
1212

13-
<img {!! $attributes !!} loading="{{ $loading }}" src="{{ $media->getUrl($conversion, $fallback) }}"
13+
<img {!! $attributes !!} loading="{{ $loading }}"
14+
src="{{ $src ?? $media->getUrl($conversion, $fallback, $parameters) }}"
1415
height="{{ $height ?? $media->getHeight($conversion, $fallback) }}"
1516
width="{{ $width ?? $media->getWidth($conversion, $fallback) }}"
16-
alt="{{ $alt ?? $media->getName($conversion, $fallback) }}"
17-
@if ($responsive) srcset="{{ $media->getSrcset($conversion)->join(', ') }}"
18-
onload="window.requestAnimationFrame(function(){if(!(size=getBoundingClientRect().width))return;onload=null;sizes=Math.ceil(size/window.innerWidth*100)+'vw';});"
19-
sizes="{{ $sizes }}" @endif>
17+
alt="{{ $alt ?? $media->getName($conversion, $fallback) }}">
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
@props([
2+
'media',
23
'conversion' => null,
3-
'poster' => null,
4+
'fallback' => false,
5+
'parameters' => null,
46
'src' => null,
7+
'height' => null,
8+
'width' => null,
9+
'alt' => null,
10+
'poster' => null,
11+
'posterConversion' => 'poster',
512
'autoplay' => false,
613
'muted' => false,
714
'playsinline' => false,
815
'loop' => false,
9-
'media',
1016
])
1117

12-
<video {!! $attributes !!} height="{{ $media->getHeight($conversion) }}" width="{{ $media->getWidth($conversion) }}"
13-
alt="{{ $media->getName($conversion) }}"
14-
poster="{{ $poster ?? $media->getUrl($conversion ? $conversion . '.poster' : 'poster') }}"
15-
src="{{ $src ?? $media->getUrl($conversion) }}" @if ($autoplay) autoplay @endif
16-
@if ($muted) muted @endif @if ($playsinline) playsinline @endif
17-
@if ($loop) loop @endif>
18+
<video {!! $attributes !!} src="{{ $src ?? $media->getUrl($conversion, $parameters) }}"
19+
height="{{ $height ?? $media->getHeight($conversion) }}" width="{{ $width ?? $media->getWidth($conversion) }}"
20+
alt="{{ $alt ?? $media->getName($conversion) }}" poster="{{ $poster ?? $media->getUrl($posterConversion) }}"
21+
{{ when($autoplay, 'autoplay') }} {{ when($muted, 'muted') }} {{ when($playsinline, 'playsinline') }}
22+
{{ when($loop, 'loop') }}>
1823
{{ $slot }}
1924
</video>

src/MediaCollection.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@ public function __construct(
1818
public bool $public = false,
1919
public ?string $disk = null,
2020
public null|string|Closure $fallback = null,
21-
) {}
21+
) {
22+
//
23+
}
2224
}

0 commit comments

Comments
 (0)