Cüneyt Şentürk d60c7a471b typo
2022-09-13 09:38:25 +03:00

66 lines
1.3 KiB
PHP

<?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;
}
}