Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Video
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 render
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Block;
6
7use Cosray\Contract\Block;
8use Cosray\Field;
9use Cosray\Schema\Label;
10use Cosray\Schema\Limit;
11use Cosray\Schema\Required;
12use Cosray\Schema\Translate;
13use Cosray\Value\Block as BlockValue;
14
15#[Label('block:video')]
16final class Video implements Block
17{
18    #[Label('block:video'), Required, Limit(1), Translate]
19    protected Field\Video $video;
20
21    public function render(BlockValue $block, RenderContext $ctx): string
22    {
23        $video = $block->video;
24
25        if ($ctx->asset((string) ($video->unwrap()['uid'] ?? '')) === null) {
26            return '';
27        }
28
29        return (string) $video;
30    }
31}