ja1felipe

ja1felipe

Dynamically change Live Layout

Is there some way to update a Layout dynamically?
I have a Layout that has my app sidebar, inside this sidebar is a LiveCompenent that lists a collection, I’m using streams. There’s a LiveView inside this layout where I create new entities of this collection, my objective is that when I create a new entity, my sidebar updates automatically(like using a stream_insert).

My initial idea was broadcast a message, but the LiveComponent of my SideBarLayout cant have a handle_info, so now I’m stuck.

If somebody has some idea how to workaround this or has already passed through some similar, I would be really grateful for any tip or solution.

One workaround that I thought is: Instead of using stream, use assigns and subscribe into a pub/sub globally and update my assign with the new entity, like in this article Respond to global broadcasts in layout

First Post!

sodapopcan

sodapopcan

Hi and welcome to the forum!

One thing you can do is in stead of a live component, use a function component along with on_mount and attach_hook. You would do the initial logic to populate the list in on_mount as well as attach a handle_info hook to your LiveViews. The problem with this solution is that it won’t work in dead views if you have any of those, although it doesn’t sound like your current implementation would either so this might work for you.

You can use on_mount in your router to avoid having to do it in every LiveView.

Where Next?

Popular in Questions Top

New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

Other popular topics Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

We're in Beta

About us Mission Statement