From 213af782999fa01c71517d7231aa26e68e6c2478 Mon Sep 17 00:00:00 2001 From: Jacob Baker-Kretzmar Date: Tue, 25 Jun 2024 17:51:20 -0400 Subject: [PATCH 1/2] Add failing snapshot test for dynamic component resolution --- .../dynamic-component/source/_components/alert.blade.php | 7 +++++++ tests/snapshots/dynamic-component/source/index.blade.php | 6 ++++++ tests/snapshots/dynamic-component_snapshot/index.html | 7 +++++++ 3 files changed, 20 insertions(+) create mode 100644 tests/snapshots/dynamic-component/source/_components/alert.blade.php create mode 100644 tests/snapshots/dynamic-component/source/index.blade.php create mode 100644 tests/snapshots/dynamic-component_snapshot/index.html diff --git a/tests/snapshots/dynamic-component/source/_components/alert.blade.php b/tests/snapshots/dynamic-component/source/_components/alert.blade.php new file mode 100644 index 00000000..d521c0a7 --- /dev/null +++ b/tests/snapshots/dynamic-component/source/_components/alert.blade.php @@ -0,0 +1,7 @@ +
+

This is the component

+

Named title slot: {{ $title }}

+
+ {{ $slot }} +
+
diff --git a/tests/snapshots/dynamic-component/source/index.blade.php b/tests/snapshots/dynamic-component/source/index.blade.php new file mode 100644 index 00000000..c84d1520 --- /dev/null +++ b/tests/snapshots/dynamic-component/source/index.blade.php @@ -0,0 +1,6 @@ +@php + $dynamic = 'alert'; +@endphp + + Slot + diff --git a/tests/snapshots/dynamic-component_snapshot/index.html b/tests/snapshots/dynamic-component_snapshot/index.html new file mode 100644 index 00000000..032a144d --- /dev/null +++ b/tests/snapshots/dynamic-component_snapshot/index.html @@ -0,0 +1,7 @@ +
+

This is the component

+

Named title slot: Title

+
+ Slot +
+
From 685083591371199b696655044534e7dc749063cd Mon Sep 17 00:00:00 2001 From: Jacob Baker-Kretzmar Date: Tue, 25 Jun 2024 17:52:12 -0400 Subject: [PATCH 2/2] Add custom DynamicComponent class to use our ComponentTagCompiler instead of Laravel's --- src/Providers/ViewServiceProvider.php | 2 +- src/View/DynamicComponent.php | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/View/DynamicComponent.php diff --git a/src/Providers/ViewServiceProvider.php b/src/Providers/ViewServiceProvider.php index 52959247..6d834e94 100644 --- a/src/Providers/ViewServiceProvider.php +++ b/src/Providers/ViewServiceProvider.php @@ -2,7 +2,6 @@ namespace TightenCo\Jigsaw\Providers; -use Illuminate\View\DynamicComponent; use Illuminate\View\Engines\CompilerEngine; use Illuminate\View\Engines\EngineResolver; use Illuminate\View\Engines\FileEngine; @@ -16,6 +15,7 @@ use TightenCo\Jigsaw\Support\ServiceProvider; use TightenCo\Jigsaw\View\BladeCompiler; use TightenCo\Jigsaw\View\BladeMarkdownEngine; +use TightenCo\Jigsaw\View\DynamicComponent; use TightenCo\Jigsaw\View\MarkdownEngine; use TightenCo\Jigsaw\View\ViewRenderer; diff --git a/src/View/DynamicComponent.php b/src/View/DynamicComponent.php new file mode 100644 index 00000000..6a84338a --- /dev/null +++ b/src/View/DynamicComponent.php @@ -0,0 +1,22 @@ +make('blade.compiler')->getClassComponentAliases(), + Container::getInstance()->make('blade.compiler')->getClassComponentNamespaces(), + Container::getInstance()->make('blade.compiler') + ); + } + + return static::$compiler; + } +}