init
This commit is contained in:
@@ -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,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user