This commit is contained in:
2023-10-02 23:10:49 +03:00
commit c6cb488379
255 changed files with 18731 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace Lucent\Svelte;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Lucent\Channel\ChannelService;
class Svelte
{
public function __construct(
public ChannelService $channelService
)
{
}
function render(string $layout, string $view, string $title = "", mixed $data = []): View|Factory
{
$context = [];
$context["user"] = session('user');
$context["view"] = $view;
$context["layout"] = $layout;
$context["title"] = $title;
$context["data"] = $data;
$context["channel"] = $this->channelService->channel;
$json = json_encode($context);
$divTag = sprintf('<div class="lucent-component" data-layout="%s"></div>', $layout);
$jsonTag = sprintf('<script type="application/json" id="json-%s">%s</script>', $layout, $json);
$svelte = $divTag . $jsonTag;
return view('lucent::svelte', [
'svelte' => $svelte,
'view' => $view,
'data' => $data,
'title' => $title,
'layout' => $layout,
'channel' => $this->channelService->channel,
]);
}
}