59 lines
2.2 KiB
PHP
59 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use Livewire\Component;
|
|
// Hapus use Kreait\Firebase\Factory, etc. jika tidak lagi digunakan di sini
|
|
|
|
class SelectTable extends Component
|
|
{
|
|
// Properti ini akan diisi dari parent (FoodOrder)
|
|
public array $availableTables = [];
|
|
public ?string $selectedTableId = null; // Ini mungkin tidak perlu jika Anda hanya menerima data ID
|
|
|
|
public bool $show = false; // Ini untuk kontrol visibilitas modal dari FoodOrder
|
|
|
|
// Listener 'refreshSelectTableModal' tidak lagi memanggil syncTablesFromFirebase di sini
|
|
// Melainkan, Anda bisa melewatkan availableTables dari FoodOrder ke modal.
|
|
// Jika Anda masih ingin modal me-refresh sendiri, maka syncTablesFromFirebase HARUS ADA.
|
|
// Untuk saat ini, kita asumsikan FoodOrder meneruskan data yang sudah di-sync.
|
|
protected $listeners = [
|
|
'closeThisModal' => 'closeModal',
|
|
// 'refreshSelectTableModal' => 'syncTablesFromFirebase', // Hapus ini jika syncTablesFromFirebase dihapus
|
|
];
|
|
|
|
// Hapus mount() jika tidak ada lagi logika yang perlu dijalankan saat mount
|
|
// public function mount()
|
|
// {
|
|
// // Tidak perlu panggil syncTablesFromFirebase di sini lagi jika parent yang menyediakan data
|
|
// }
|
|
|
|
// Hapus getFirebaseDatabase() dan syncTablesFromFirebase() dari sini
|
|
|
|
public function selectTable(string $tableId)
|
|
{
|
|
$foundTable = collect($this->availableTables)->firstWhere('id', $tableId);
|
|
|
|
if ($foundTable) {
|
|
// Dispatch event ke komponen FoodOrder (parent) dengan data meja
|
|
$this->dispatch('tableSelected', $tableId)->to(FoodOrder::class);
|
|
$this->closeModal(); // Tutup modal setelah pemilihan
|
|
} else {
|
|
// Jika meja tidak valid, beri notifikasi. FoodOrder akan me-refresh daftar mejanya.
|
|
$this->dispatch('notify', message: 'Meja tidak valid atau sudah tidak tersedia.')->to(FoodOrder::class);
|
|
// TIDAK ADA syncTablesFromFirebase() DI SINI
|
|
}
|
|
}
|
|
|
|
public function closeModal()
|
|
{
|
|
$this->show = false;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
// View ini akan menerima $availableTables dari parent
|
|
return view('livewire.select-table');
|
|
}
|
|
}
|