Added an example with two tables in the same parent component

This commit is contained in:
David
2025-03-31 01:19:15 -04:00
parent 69a87b3a5c
commit 63779f8bad
6 changed files with 89 additions and 5 deletions

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Livewire\Examples;
use App\Tables\DepartmentTable;
use App\Tables\TableWithDragDropOrdering;
use Livewire\Component;
class WithTwoTablesComponent extends Component
{
public function render()
{
return view('livewire.examples.with-two-tables-component', [
'products' => TableWithDragDropOrdering::class,
'departments' => DepartmentTable::class
])
->extends('components.layouts.app')
->section('content');
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Tables;
use App\Models\Department;
use Illuminate\Database\Eloquent\Model;
use Mmt\GenericTable\Components\Column;
use Mmt\GenericTable\Components\ColumnCollection;
use Mmt\GenericTable\Enums\ColumnSettingFlags;
use Mmt\GenericTable\Interfaces\IDragDropReordering;
use Mmt\GenericTable\Interfaces\IGenericTable;
class DepartmentTable implements IGenericTable, IDragDropReordering
{
public Model|string $model = Department::class;
public ColumnCollection $columns;
public string $orderingColumn = 'order';
public function __construct()
{
$this->columns = new ColumnCollection();
$this->columns->add(new Column("Id"));
$this->columns->add(new Column("Name"));
$this->columns->add(new Column("Tags"));
$this->columns->add(new Column("Status"));
$this->columns->add(new Column("Order")->sortable()->defaultSortDesc());
}
}

View File

@@ -5,16 +5,36 @@ namespace App\Tables;
use App\Models\Product;
use App\Tables\Traits\WithColumnFormatter;
use Illuminate\Database\Eloquent\Model;
use Mmt\GenericTable\Components\Column;
use Mmt\GenericTable\Components\ColumnCollection;
use Mmt\GenericTable\Enums\ColumnSettingFlags;
use Mmt\GenericTable\Interfaces\IDragDropReordering;
use Mmt\GenericTable\Interfaces\IGenericTable;
use Mmt\GenericTable\Interfaces\ISingleSelectionFilter;
use Mmt\GenericTable\Support\SelectionFilterSettings;
class TableWithDragDropOrdering implements IGenericTable, IDragDropReordering
class TableWithDragDropOrdering implements IGenericTable, IDragDropReordering, ISingleSelectionFilter
{
use WithColumnFormatter;
public string $Order;
public Model|string $model = Product::class;
public ColumnCollection $columns;
public string $orderingColumn = 'order';
public SelectionFilterSettings $singleSelectionFilterSettings;
public function __construct()
{
$this->columns = ColumnCollection::make(
new Column('Id'),
new Column('Name'),
new Column('Description'),
new Column('Price'),
new Column('Stock'),
new Column('Order')->withSettings(ColumnSettingFlags::DEFAULT_SORT_DESC)
);
$this->singleSelectionFilterSettings = new SelectionFilterSettings('name');
$this->singleSelectionFilterSettings->add('Make pop', 'ml');
}
}