summaryrefslogtreecommitdiff
path: root/src/Columns/LinkColumn.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Columns/LinkColumn.php')
-rw-r--r--src/Columns/LinkColumn.php24
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),
+ ];
}
}