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;
14use Override;
15
16#[Label('block:video')]
17final class Video implements Block
18{
19    #[Label('block:video'), Required, Limit(1), Translate]
20    protected Field\Video $video;
21
22    #[Override]
23    public function render(BlockValue $block, RenderContext $ctx): string
24    {
25        $video = $block->video;
26
27        if ($ctx->asset((string) ($video->raw()['uid'] ?? '')) === null) {
28            return '';
29        }
30
31        return (string) $video;
32    }
33}