Skip to content

Commit

Permalink
Js Declaration Component added
Browse files Browse the repository at this point in the history
  • Loading branch information
EnesSacid-Buker committed Sep 6, 2022
1 parent 411999c commit 709df5d
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
65 changes: 65 additions & 0 deletions app/View/Components/Script/Declaration.php
@@ -0,0 +1,65 @@
<?php

namespace App\View\Components\Script;

use App\Abstracts\View\Component;
use Illuminate\Support\Js;

class Declaration extends Component
{
/** @var string */
public $kind;

/** @var array */
public $value;

public $scripts = null;

/**
* Create a new component instance.
*
* @return void
*/
public function __construct(
string $kind = 'var',array $value = []
) {
$this->kind = $kind;
$this->value = $value;

$this->scripts = $this->getScripts();
}

/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.script.declaration');
}

protected function getScripts()
{
$scripts = '';

foreach ($this->value as $key => $value) {
$scripts .= $this->getScript($key, $value) . "\n";
}

return $scripts;
}

protected function getScript($key, $value = null)
{
$script = $this->kind . ' ' . $key;

if (! is_null($value)) {
$script .= ' = ' . Js::from($value)->toHtml() . ';';
} else {
$script .= ' = ' . 'null;';
}

return $script;
}
}
5 changes: 5 additions & 0 deletions resources/views/components/script/declaration.blade.php
@@ -0,0 +1,5 @@
@push('scripts_start')
<script type="text/javascript">
{!! $scripts !!}
</script>
@endpush

0 comments on commit 709df5d

Please sign in to comment.