2022-06-01 10:15:55 +03:00

122 lines
2.3 KiB
PHP

<?php
namespace App\View\Components\Index;
use App\Abstracts\View\Component;
class Search extends Component
{
/**
* The Currency currency.
*
* @var bool|string
*/
public $searchString;
/**
* The Currency currency.
*
* @var bool|string
*/
public $bulkAction;
/**
* The Currency currency.
*
* @var string
*/
public $action;
/**
* The Currency currency.
*
* @var string
*/
public $route;
/**
* The Currency currency.
*
* @var string
*/
public $url;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(
$searchString = false, $bulkAction = false, $action = false, $route = false, $url = false
) {
$this->searchString = $searchString;
$this->bulkAction = $bulkAction;
$this->action = $this->getAction($action, $route, $url);
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.index.search');
}
protected function getAction($action, $route, $url)
{
if (! empty($action)) {
return $action;
}
if (! empty($route)) {
return $this->getRouteAction($route);
}
if (! empty($url)) {
return $this->getUrlAction($url);
}
return '';
}
/**
* Get the action for a "url" option.
*
* @param array|string $options
*
* @return string
*/
protected function getUrlAction($options)
{
if (is_array($options)) {
return url($options[0], array_slice($options, 1));
}
return url($options);
}
/**
* Get the action for a "route" option.
*
* @param array|string $options
*
* @return string
*/
protected function getRouteAction($options)
{
if (is_array($options)) {
$parameters = array_slice($options, 1);
if (array_keys($options) === [0, 1]) {
$parameters = head($parameters);
}
return route($options[0], $parameters);
}
return route($options);
}
}