Code Duplication    Length = 11-20 lines in 2 locations

src/CompileRenderDirective.php 1 location

@@ 5-24 (lines=20) @@
2
3
namespace Spatie\ViewComponents;
4
5
final class CompileRenderDirective
6
{
7
    /** @var \Spatie\ViewComponents\ComponentFinder */
8
    private $componentFinder;
9
10
    public function __construct(ComponentFinder $componentFinder)
11
    {
12
        $this->componentFinder = $componentFinder;
13
    }
14
15
    public function __invoke(string $expression): string
16
    {
17
        $expressionParts = explode(',', $expression, 2);
18
19
        $componentPath = $expressionParts[0];
20
        $props = trim($expressionParts[1] ?? '[]');
21
22
        return "<?php echo app(app(Spatie\ViewComponents\ComponentFinder::class)->find({$componentPath}), {$props})->toHtml(); ?>";
23
    }
24
}
25

src/CompileStartRenderDirective.php 1 location

@@ 5-15 (lines=11) @@
2
3
namespace Spatie\ViewComponents;
4
5
final class CompileStartRenderDirective
6
{
7
    public function __invoke(string $expression): string
8
    {
9
        $expressionParts = explode(',', $expression, 2);
10
        $componentPath = $expressionParts[0];
11
        $props = trim($expressionParts[1] ?? '[]');
12
13
        return "<?php app(Spatie\ViewComponents\ComponentFactory::class)->startComponent(app(Spatie\ViewComponents\ComponentFinder::class)->find({$componentPath}), {$props}); ?>";
14
    }
15
}
16