mikebarlow / megaphone

Livewire UI for Laravel based user notifications
MIT License
258 stars 18 forks source link

Add a Listener to refresh component with pusher events (websockets) #12

Closed xtreme2020 closed 6 days ago

xtreme2020 commented 1 year ago

It would be great if we can call a listener or method using pusher events to show real-time notifications without reloading the page

mikebarlow commented 1 year ago

Hey, this is definitely on my radar for something to add.

I considered it a "nice to have" rather than "need" for the first release. Fear not, it will be coming soon though.

xtreme2020 commented 1 year ago

Great, waiting for it, also i would like to thanks for this component is really useful.

MCKLtech commented 1 year ago

Would <div wire:poll> be a quick win here, perhaps?

mikebarlow commented 1 year ago

Yeah, so a wire:poll would be a quick win but not keen on doing that for this package. I will have some time coming up in the next few weeks so plan to look at this then as I would like this feature included for a project I "dog food" Megaphone with.

titonova commented 1 year ago

Yeah, so a wire:poll would be a quick win but not keen on doing that for this package. I will have some time coming up in the next few weeks so plan to look at this then as I would like this feature included for a project I "dog food" Megaphone with.

Hi Mike,

While I completely understand your perspective on this matter, I believe it is an essential feature that many users would greatly benefit from. Without this feature, users would need to modify the source code itself, which could be inconvenient and time-consuming.

I would like to propose a solution that involves adding just two lines of code to implement the wire:poll feature. This addition would provide users with the functionality they need while still allowing for easy removal once a better alternative becomes available. I believe this approach strikes a balance between addressing the user demand for the feature and ensuring flexibility in the long term.

If you are open to this suggestion, I would be more than happy to create a pull request to incorporate the wire:poll feature into the package. I value your input and look forward to hearing your thoughts on this matter.

Thank you for your time and consideration.

Best regards, Tito

mikebarlow commented 1 year ago

Hey, apologies have been wanting to look at this, but having a 1-year-old child is time-consuming!

Thinking about it, I'd definitely consider a PR for this if we can make the wire:poll conditional with a new boolean config setting. If we have an "enableWirePoll" config option that defaults to false, that would keep it turned off as default and anyone who updates the package won't be affected while still allowing people to turn it on if they wish.

That feels like a good compromise for now to me. And it should still be pretty easy to remove when I have a chance to look at a better alternative.

titonova commented 1 year ago

@mikebarlow Rather than a enableWirePoll option, why not a pollInterval option, which defaults to null, so that they can choose the wire:poll interval.

mikebarlow commented 1 year ago

Yeah, that would also work for me.

mikebarlow commented 1 week ago

It's not pusher / websocket events support yet but tomorrow, wire:poll support will finally be coming! 🎉