From 66be0ef51486168ddeb8196fd35b2264a6368400 Mon Sep 17 00:00:00 2001 From: Golam Sorwar Date: Sat, 17 Aug 2019 22:10:21 +0600 Subject: [PATCH] change event file name,now show real-time updates --- ...ductAddedToCart.php => ProductUpdatedInCart.php} | 8 +++++--- app/Http/Livewire/CartCounter.php | 4 ++-- app/Http/Livewire/CartProduct.php | 12 ++++++++++-- resources/views/cart.blade.php | 13 ++++++++++--- 4 files changed, 27 insertions(+), 10 deletions(-) rename app/Events/{ProductAddedToCart.php => ProductUpdatedInCart.php} (81%) diff --git a/app/Events/ProductAddedToCart.php b/app/Events/ProductUpdatedInCart.php similarity index 81% rename from app/Events/ProductAddedToCart.php rename to app/Events/ProductUpdatedInCart.php index 20521d47..f0a1cba1 100644 --- a/app/Events/ProductAddedToCart.php +++ b/app/Events/ProductUpdatedInCart.php @@ -10,7 +10,7 @@ use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; -class ProductAddedToCart implements ShouldBroadcast +class ProductUpdatedInCart implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; @@ -19,9 +19,11 @@ class ProductAddedToCart implements ShouldBroadcast * * @return void */ - public function __construct() + public $productId; + + public function __construct($productId) { - // + $this->productId = $productId; } /** diff --git a/app/Http/Livewire/CartCounter.php b/app/Http/Livewire/CartCounter.php index 734bd792..dd33982d 100644 --- a/app/Http/Livewire/CartCounter.php +++ b/app/Http/Livewire/CartCounter.php @@ -8,8 +8,8 @@ class CartCounter extends Component { protected $listeners = [ - 'productAdded' => 'noop', - 'productRemoved' => 'noop' + 'productUpdated' => 'noop', + // 'productRemoved' => 'noop' ]; public function noop() diff --git a/app/Http/Livewire/CartProduct.php b/app/Http/Livewire/CartProduct.php index 89e31e65..3a6f2701 100644 --- a/app/Http/Livewire/CartProduct.php +++ b/app/Http/Livewire/CartProduct.php @@ -5,6 +5,7 @@ use Livewire\Component; use App\Cart; use App\CartProduct as AppCartProduct; +use App\Events\ProductUpdatedInCart; use App\Product; class CartProduct extends Component @@ -13,19 +14,26 @@ class CartProduct extends Component public $name; public $price; + public function listeners() + { + return ['productUpdated:'.$this->id => '$refresh']; + } + public function add() { // $cart_id = Cart::first(); // CartPro::create(['cart_id' => $cart_id->id, 'product_id' => $this->id]); Cart::first()->products()->attach($this->id); - $this->emit('productAdded'); + // $this->emit('productAdded'); + event(new ProductUpdatedInCart($this->id)); } public function remove() { // CartProduct::where('product_id', $this->id)->delete(); Cart::first()->products()->detach($this->id); - $this->emit('productRemoved'); + // $this->emit('productRemoved'); + event(new ProductUpdatedInCart($this->id)); } public function mount($product) diff --git a/resources/views/cart.blade.php b/resources/views/cart.blade.php index 6520b296..a69c0378 100644 --- a/resources/views/cart.blade.php +++ b/resources/views/cart.blade.php @@ -14,8 +14,13 @@
@livewire('cart-counter')
+
+
+ +
+
-
+
@foreach ($products as $product) @livewire('cart-product', $product) @endforeach @@ -29,8 +34,10 @@