TKK_E32222868/app/Livewire/SelectTable.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');
}
}