diff options
Diffstat (limited to 'src/Columns/LinkColumn.php')
-rw-r--r-- | src/Columns/LinkColumn.php | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/Columns/LinkColumn.php b/src/Columns/LinkColumn.php index 7ba3a95..edb1140 100644 --- a/src/Columns/LinkColumn.php +++ b/src/Columns/LinkColumn.php @@ -3,15 +3,14 @@ namespace Lightscale\LaralightTables\Columns; use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\HtmlString; -use Illuminate\View\ComponentAttributeBag; use Closure; -class LinkColumn extends Column +class LinkColumn extends ElementColumn { + protected string $element = 'a'; + private Closure $urlFn; - private ?Closure $linkAttributesFn = null; public function url(callable $fn) : static { @@ -19,20 +18,11 @@ class LinkColumn extends Column return $this; } - public function attributes(callable $fn) : static - { - $this->linkAttributesFn = $fn; - return $this; - } - - protected function getContent(Model $row) + public function getElemAttributes(Model $row) : array { - $content = parent::getContent($row); - $url = $this->urlFn->call($this, $row); - $attributes = $this->linkAttributesFn?->call($this, $row) ?? []; - $attributes = (new ComponentAttributeBag(['href' => $url] + $attributes))->toHtml(); - - return new HtmlString("<a {$attributes}>{$content}</a>"); + return parent::getElemAttributes($row) + [ + 'href' => $this->urlFn->call($this, $row), + ]; } } |