[Bug]: Items go missing when reordering
gnewmann opened this issue · 2 comments
What happened?
Hey there,
I implemented reordering in my Laravel Livewire table, but I'm encountering an issue with it. When I attempt to reorder items, two out of the four items in the table go missing.
My DataTableComponent
`<?php
namespace App\Livewire;
use Illuminate\Database\Eloquent\Builder;
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use App\Models\Song;
class SongTable extends DataTableComponent
{
protected $model = Song::class;
public $setlistId;
public function mount($setlistId)
{
$this->setlistId = $setlistId;
}
public function builder(): Builder
{
return Song::whereHas('setlist', function ($query) {
$query->where('setlist_id', $this->setlistId);
})->orderBy('order');
}
public function edit($id)
{
$this->dispatch('editSong', $id);
}
public function delete($id)
{
$this->dispatch('deleteSong', $id);
}
public function configure(): void
{
$this->setAdditionalSelects(['songs.id as id']);
$this->setPrimaryKey('id');
$this->setReorderStatus(true);
$this->setReorderEnabled();
$this->setDefaultReorderSort('order', 'asc');
$this->setCurrentlyReorderingEnabled();
}
public function reorder(array $items): void
{
foreach ($items as $item) {
Song::find($item[$this->getPrimaryKey()])->update(['order' => (int)$item[$this->getDefaultReorderColumn()]]);
}
}
public function columns(): array
{
return [
Column::make("Order", "order")
->collapseOnMobile(),
Column::make("Artist", "artist")
->searchable(),
Column::make("Title", "title")
->searchable(),
Column::make("Album", "album")
->searchable(),
Column::make('Actions')
->label(
function ($row, Column $column) {
return view('song.button', ['id' => $row->id]);
}
)->collapseOnMobile(),
];
}
}`
Thank you in advance.
Regards
Greg
How to reproduce the bug
When I reorder items, two out of four items go missing
Package Version
No response
PHP Version
8.3.x
Laravel Version
No response
Alpine Version
No response
Theme
Tailwind 3.x
Notes
No response
Error Message
No response
After trying out different things .. I recognized.. when I click on "Reorder" and reload the page.. it works without any problems. When I don't reload the page I still got the same problem. Maybe this helps out.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.