<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="281331" data-post-id="281331">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="eddyraz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eddyraz/120/26107_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  eddyraz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I also tried this and nothing, Iĺl post the liveview tree of livecomponents and who calls who, and also the code so youĺl have more context.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281331" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-281331" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281331"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="281333" data-post-id="281333">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="eddyraz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eddyraz/120/26107_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  eddyraz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have a live a liveview named opac  who dynamically renders a navbar component , then in case user is succesfully authenticated renders a searchbar component, and if not then renders a login component, and last a footer component all that as shown below in the render function of opac liveview.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">@impl true
  def render(assigns) do
    ~H"""
    &lt;div&gt;
      &lt;section&gt;
        &lt;div&gt;
          &lt;%= live_component(@socket, DedalosPhoenixWeb.NavbarLive) %&gt;
        &lt;/div&gt;

        &lt;%= if @is_authenticated == false do %&gt;
          &lt;div&gt;
            &lt;%= live_component(@socket, DedalosPhoenixWeb.LoginLive) %&gt;
          &lt;/div&gt;
        &lt;% else %&gt;
          &lt;div&gt;
            &lt;%= live_component(@socket, DedalosPhoenixWeb.SearchBarLive, id: 3) %&gt;
          &lt;/div&gt;
        &lt;% end %&gt;
        &lt;div&gt;
          &lt;%= live_component(@socket, DedalosPhoenixWeb.FooterLive) %&gt;
        &lt;/div&gt;
      &lt;/section&gt;
    &lt;/div&gt;
    """
  end
</code></pre>
<p>in the login component render function i check the credentials of the login form in a function as stated in the form tag<br>
<code>&lt;form phx-submit="check_login_credentials"  id="login_form"&gt;</code></p>
<p>the <code>check_login_form</code> function in opac (the login_view parent ) says this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">@impl true
  def handle_event("check_login_credentials", params, socket) do
    login_token = process_token_request(params["user_name"], params["password"], socket)

    send_token_to_browser(socket,params,login_token)  

  end
</code></pre>
<p>and the function <code>send_token_to_browser</code> states that:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">  @impl true 
  def send_token_to_browser(socket, params, login_token) do

    
    if login_token do
          {:noreply, push_event(socket, "save_login_token", %{payload: login_token})}
      
      socket = socket |&gt; assign(:is_authenticated, true)    
      {:noreply, assign(socket, params: params)}
    else
      {:noreply, assign(socket, params: params)}
    end

    end
</code></pre>
<p>and in the <code>/assets/js/app.js</code> file in the hooks section I put this as suggested by <a href="https://forum.elixirforum.com/u/mcrumm" rel="nofollow">mcrumm</a>:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">let hooks = {}

hooks.saveLoginToken = {
    mounted() {
    	this.handleEvent("save_login_token", ({payload}) =&gt; {
       console.log("received payload", payload
   })	



  },    
};
</code></pre>
<p>also in the socket declaration I stated as recommended by the docs:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}, hooks: hooks})
</code></pre>
<p>I hope this shed more light on my problem, I keep digging looking for clues of why this does not work. Thanks in advance.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281333" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-281333" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281333"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="281335" data-post-id="281335">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mcrumm" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mcrumm/120/23032_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mcrumm
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Phoenix Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The problem is in <code>send_token_to_browser</code>:</p>
<aside class="quote no-group" data-username="eddyraz" data-post="13" data-topic="54358">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eddyraz/48/26107_2.png" class="avatar"> eddyraz:</div>
<blockquote>
<pre data-code-wrap="elixir"><code class="lang-elixir">if login_token do
          {:noreply, push_event(socket, "save_login_token", %{payload: login_token})}
      
      socket = socket |&gt; assign(:is_authenticated, true)    
      {:noreply, assign(socket, params: params)}
</code></pre>
</blockquote>
</aside>
<p>Note that push_event returns a modified socket struct- the event is not pushed to the client until you return from the LiveView callback. You are not receiving the event on the client because you are not returning the socket struct containing the event.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281335" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-281335" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281335"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-solved cat-solved" title="Marked as solution"></div>
  </section>
</div>
    <div class="postbit" id="281336" data-post-id="281336">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mcrumm" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mcrumm/120/23032_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mcrumm
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Phoenix Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Also, double-check the hook code I shared- you need to modify the callback’s function signature, too <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281336" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-281336" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281336"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="281337" data-post-id="281337">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="eddyraz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eddyraz/120/26107_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  eddyraz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>edited</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281337" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-281337" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281337"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="281346" data-post-id="281346">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="eddyraz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eddyraz/120/26107_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  eddyraz
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks so much,</p>
<p>I put it this way, and it worked:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">@impl true
  def handle_event("check_login_credentials", params, socket) do
    login_token = process_token_request(params["user_name"], params["password"], socket)

    send_token_to_browser(socket, params, login_token)
  end

  @impl true
  def send_token_to_browser(socket, params, login_token) do
    if login_token do
      socket = socket |&gt; assign(:is_authenticated, true)
      {:noreply, push_event(socket, "save_login_token", %{payload: login_token})}
    else
      {:noreply, assign(socket, params: params)}
    end
  end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="281346" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-use-hooks-with-data-generated-from-the-server/54358/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-281346" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="281346"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>