From 94fd2a9a3cff8c926ce12046e01f481f15c02d76 Mon Sep 17 00:00:00 2001 From: Sam Light Date: Wed, 24 Sep 2025 00:12:43 +0100 Subject: Changed the wrapper component to use a method --- resources/views/components/dynamic-wrapper.blade.php | 9 +++++++++ resources/views/table.blade.php | 12 ++++++------ src/TableComponent.php | 17 ++++++++--------- 3 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 resources/views/components/dynamic-wrapper.blade.php diff --git a/resources/views/components/dynamic-wrapper.blade.php b/resources/views/components/dynamic-wrapper.blade.php new file mode 100644 index 0000000..8593f3a --- /dev/null +++ b/resources/views/components/dynamic-wrapper.blade.php @@ -0,0 +1,9 @@ +@use('Illuminate\View\ComponentAttributeBag') +@props(['component']) +@php +$componentName = $component[0]; +$attributes = new ComponentAttributeBag($component[1] ?? []); +@endphp + + {{ $slot }} + diff --git a/resources/views/table.blade.php b/resources/views/table.blade.php index 741a27f..d4290a9 100644 --- a/resources/views/table.blade.php +++ b/resources/views/table.blade.php @@ -1,12 +1,12 @@
- + @foreach($toolbars as $toolbar) {{ $toolbar?->render() }} @endforeach - + - + @foreach($columns as $column) @@ -45,9 +45,9 @@ @endforeach
-
+ - +
{{ $data->links() }}
@@ -56,6 +56,6 @@
-
+
diff --git a/src/TableComponent.php b/src/TableComponent.php index 180d7c4..34d56c8 100644 --- a/src/TableComponent.php +++ b/src/TableComponent.php @@ -41,12 +41,6 @@ abstract class TableComponent extends Component protected string $tableClass = 'table'; - protected string $tableWrapperComponent = 'laralight-tables::wrapper'; - - protected string $paginationWrapperComponent = 'laralight-tables::wrapper'; - - protected string $toolbarsWrapperComponent = 'laralight-tables::wrapper'; - // Properties #[Url] public string $search = ''; @@ -247,6 +241,14 @@ abstract class TableComponent extends Component return $this->columnsCache; } + /** + * @return array{0: string, 1?: array} + */ + public function wrapperComponent(string $location): array + { + return ['laralight-tables::wrapper']; + } + public function render(): View { $data = $this->buildQuery()->paginate($this->pageSize); @@ -259,9 +261,6 @@ abstract class TableComponent extends Component return view('laralight-tables::table', [ 'rootClass' => $this->rootClass, 'tableClass' => $this->tableClass, - 'tableWrapperComponent' => $this->tableWrapperComponent, - 'paginationWrapperComponent' => $this->paginationWrapperComponent, - 'toolbarsWrapperComponent' => $this->toolbarsWrapperComponent, ] + compact( 'data', 'allColumns', 'columns', 'toolbars', )); -- cgit v1.2.3