Completed
Push — bulk-action-no-bc-break ( fbd3c4 )
by Kamil
22:46
created

TwigBulkActionGridRenderer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sylius\Bundle\GridBundle\Renderer;
6
7
use Sylius\Component\Grid\Definition\Action;
8
use Sylius\Component\Grid\Renderer\BulkActionGridRendererInterface;
9
use Sylius\Component\Grid\View\GridViewInterface;
10
11
final class TwigBulkActionGridRenderer implements BulkActionGridRendererInterface
12
{
13
    /**
14
     * @var \Twig_Environment
15
     */
16
    private $twig;
17
18
    /**
19
     * @var array
20
     */
21
    private $bulkActionTemplates;
22
23
    public function __construct(\Twig_Environment $twig, array $bulkActionTemplates)
24
    {
25
        $this->twig = $twig;
26
        $this->bulkActionTemplates = $bulkActionTemplates;
27
    }
28
29
    /**
30
     * {@inheritdoc}
31
     */
32
    public function renderBulkAction(GridViewInterface $gridView, Action $bulkAction, $data = null): string
33
    {
34
        $type = $bulkAction->getType();
35
        if (!isset($this->bulkActionTemplates[$type])) {
36
            throw new \InvalidArgumentException(sprintf('Missing template for bulk action type "%s".', $type));
37
        }
38
39
        return $this->twig->render($this->bulkActionTemplates[$type], [
40
            'grid' => $gridView,
41
            'action' => $bulkAction,
42
            'data' => $data,
43
        ]);
44
    }
45
}
46