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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="l00ker" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/l00ker/120/4095_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  l00ker
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Maybe you could provide a way to tag certain processes as important so those would continue to run while other less important processes could die?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="61109" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/272">Post #271</a>
	                </div>
	            </div>
              <div id="likers-container-61109" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="61109"
                     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 #271"></div>
  </section>
</div>
    <div class="postbit" id="61111" data-post-id="61111">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That makes sense. Some functions may become <strong>tasks</strong>. And in this case we are not changing the Drab’s core, but rather extending its functionality.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="61111" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/273">Post #272</a>
	                </div>
	            </div>
              <div id="likers-container-61111" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="61111"
                     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 #272"></div>
  </section>
</div>
    <div class="postbit" id="65035" data-post-id="65035">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ltrls" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ltrls
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello,<br>
I’d like to authenticate my Drab socket using Guardian (so I can get the current user in commanders <em>via</em> <code>Guardian.Phoenix.Socket.get_resource/1</code>, for instance), but both Drab and Guardian work by “overriding” the <code>connect</code> callback, so it doesn’t work. Am I doing it wrong?<br>
I’m surprised that I don’t seem to find anyone else having stumbled upon this problem.<br>
(thanks for the great work on this library anyway, so far it’s been a pleasure to use!)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65035" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/274">Post #273</a>
	                </div>
	            </div>
              <div id="likers-container-65035" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65035"
                     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 #273"></div>
  </section>
</div>
    <div class="postbit" id="65070" data-post-id="65070">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi <a class="mention" href="/u/ltrls" rel="nofollow">@ltrls</a>,<br>
This is true: Drab steals <code>connect</code> callback and therefore, you can’t use your own.<br>
This must be changed, as not only Guardian is the victim. I am still thinking how to change it. The sooner I do it the better, as it will require all existing application to change their <code>user_socket.ex</code>.</p>
<p>There is also <code>onconnect</code> callback in the commander, and I was thinking to change it so it could modify the socket with <code>Guardian.Phoenix.Socket.authenticate/3</code> there, and return <code>{:ok, modified_socket}</code>. That would be a little bit more work for you, as you need to do it in each commander, but maybe it would be good to have the authentication per commander?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65070" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/275">Post #274</a>
	                </div>
	            </div>
              <div id="likers-container-65070" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65070"
                     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 #274"></div>
  </section>
</div>
    <div class="postbit" id="65384" data-post-id="65384">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi all,</p>
<p>In the current version, the only you need to do in your <code>user_socket.ex</code> is to <code>use Drab.Socket</code>. I made like this, because I wanted to simplify the installation procedure, but it was a bad decision, and this is why Drab is not compatible with the other libraries, like <code>Guardian</code>.</p>
<p>From <code>0.6.4</code>, you could use the following snipped instead of <code>use Drab.Socket</code>:</p>
<pre><code>channel "__drab:*", Drab.Channel

def connect(payload, socket) do
  Drab.Socket.verify(socket, payload)
end
</code></pre>
<p><code>Drab.Socket.verify</code> is going to return <code>{:ok, socket}</code> or <code>:error</code>. The socket is modified with Drab-specific assigns, so if you want to use it with the other libraries, do not forgot to pass the returned version of it:</p>
<pre><code>{:ok, socket) = Drab.Socket.verify(socket, payload)
Guardian.Phoenix.Socket.authenticate(socket, MyApp.Guardian, payload["token"])
</code></pre>
<p>[edited because I realized that I don’t have to change the API, but rather to extend it]</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65384" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/276">Post #275</a>
	                </div>
	            </div>
              <div id="likers-container-65384" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65384"
                     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 #275"></div>
  </section>
</div>
    <div class="postbit" id="65525" data-post-id="65525">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ltrls" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ltrls
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This seems like the best way! If we can still use <code>use</code> for simple setups, or write the <code>connect</code> callback ourselves to compose functions in it, you don’t even break projects relying on <code>use</code> <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="65525" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/277">Post #276</a>
	                </div>
	            </div>
              <div id="likers-container-65525" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65525"
                     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 #276"></div>
  </section>
</div>
    <div class="postbit" id="65559" data-post-id="65559">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>There will be one more thing to change, if you want to pass the external token <code>connect/2</code> callback: you will need to pass the token somehow from the client. In this case, instead of adding the following to <code>app.html.exs</code>:</p>
<pre><code>&lt;%= Drab.Client.js(@conn) %&gt;
</code></pre>
<p>(which BTW I just renamed to Drab.Client.run), you should generate Drab client’s code first, and connect with additional parameters then:</p>
<pre><code>  &lt;%= Drab.Client.generate(@conn) %&gt;
  &lt;script&gt;
    Drab.connect({auth_token: window.my_token});
  &lt;/script&gt;
</code></pre>
<hr>
<p>There is also the third way <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"> pass the token via Drab.Client.js/2 as additional assign, like:</p>
<pre><code>&lt;%= Drab.Client.js(@conn, my_token: token) %&gt;
</code></pre>
<p>In this case socket returned by <code>Drab.Socket.verify/2</code> would contain it as an assign, so you may authenticate like:</p>
<pre><code>def connect(token, socket) do
  {:ok, drabbed_socket} = Drab.Socket.verify(socket, token)
  Guardian.Phoenix.Socket.authenticate(drabbed_socket, MyApp.Guardian, drabbed_socket.assigns["my_token"])
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="65559" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/278">Post #277</a>
	                </div>
	            </div>
              <div id="likers-container-65559" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65559"
                     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 #277"></div>
  </section>
</div>
    <div class="postbit" id="65583" data-post-id="65583">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/ltrls" rel="nofollow">@ltrls</a>,<br>
if you want to try it before the release, the change is in github master.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65583" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/279">Post #278</a>
	                </div>
	            </div>
              <div id="likers-container-65583" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65583"
                     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 #278"></div>
  </section>
</div>
    <div class="postbit" id="66697" data-post-id="66697">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-66697-v070-is-out-1" class="anchor" href="#p-66697-v070-is-out-1" aria-label="Heading link" rel="nofollow"></a>v0.7.0 is out</h1>
<h3><a name="p-66697-possibility-to-provide-own-connect2-callback-for-socket-authentication-etc-2" class="anchor" href="#p-66697-possibility-to-provide-own-connect2-callback-for-socket-authentication-etc-2" aria-label="Heading link" rel="nofollow"></a>Possibility to provide own <code>connect/2</code> callback for socket authentication, etc</h3>
<p>Previously, Drab intercepted the <code>connect/2</code> callback in your <code>UserSocket</code>. Now, there is a possibility to use your own callback:</p>
<pre><code>defmodule MyApp.UserSocket do
  use Phoenix.Socket

  channel "__drab:*", Drab.Channel
  
  def connect(params, socket) do
    Drab.Socket.verify(socket, params)
  end
end
</code></pre>
<p><a href="https://hexdocs.pm/drab/Drab.Socket.html#module-method-2-use-your-own-connect-2-callback" rel="noopener nofollow ugc">Do You Want to Know More?</a></p>
<h3><a name="p-66697-use-of-the-custom-marker-in-drab-templates-3" class="anchor" href="#p-66697-use-of-the-custom-marker-in-drab-templates-3" aria-label="Heading link" rel="nofollow"></a>Use of the custom marker “/” in Drab templates</h3>
<p>This version allow you to use of <code>&lt;%/ %&gt;</code> marker to avoid using <code>Drab.Live</code> for a given expression. The expression would be treaten as a normal Phoenix one, so will be displayed in rendered html, but Drab will have no access to it.</p>
<pre data-code-wrap="html"><code class="lang-html">&lt;div&gt;
  &lt;%/ @this_assigns_will_be_displayed_but_not_drabbed %&gt;
&lt;/div&gt;
</code></pre>
<p><a href="https://hexdocs.pm/drab/Drab.Live.html#module-avoiding-using-drab" rel="noopener nofollow ugc">Do You Want to Know More?</a></p>
<h3><a name="p-66697-changed-event-definition-core-4" class="anchor" href="#p-66697-changed-event-definition-core-4" aria-label="Heading link" rel="nofollow"></a>Changed event definition core</h3>
<p>The existing syntax <code>drab-event</code> and <code>drab-handler</code> attributes does not allow having multiple events on the one DOM object (<span class="hashtag-raw">#73</span>). This form is now depreciated and replaces with the brand new, better syntax of:</p>
<pre><code>&lt;tag drab="event:handler"&gt;
</code></pre>
<p>Now may set more event on the single object:</p>
<pre><code>&lt;input drab="focus:input_focus blur:input_blur"
</code></pre>
<p>or:</p>
<pre><code>&lt;input drab-focus="input_focus" drab-blur="input_blur"&gt;
</code></pre>
<p><a href="https://hexdocs.pm/drab/Drab.Core.html#module-events" rel="noopener nofollow ugc">Do You Want to Know More?</a></p>
<h3><a name="p-66697-event-shorthands-list-is-now-configurable-5" class="anchor" href="#p-66697-event-shorthands-list-is-now-configurable-5" aria-label="Heading link" rel="nofollow"></a>Event shorthands list is now configurable</h3>
<p>By default, you can use only few arbitrary-chosen shorthands for the event name / handler name (<code>drab-click="clicked"</code>) attribute. Now you may configure the list with <code>:events_shorthands</code> config.<br>
See <span class="hashtag-raw">#73</span>.</p>
<h3><a name="p-66697-style-changes-6" class="anchor" href="#p-66697-style-changes-6" aria-label="Heading link" rel="nofollow"></a>Style changes:</h3>
<ul>
<li>source code formatted with 1.6.0</li>
<li>use <code>@impl true</code> in behaviour callbacks</li>
<li>started annotating all functions with <code>@spec</code> (so far only few)</li>
<li>small style improvements suggested by Credo</li>
</ul>
<h3><a name="p-66697-depreciations-7" class="anchor" href="#p-66697-depreciations-7" aria-label="Heading link" rel="nofollow"></a>Depreciations:</h3>
<ul>
<li><code>Drab.Client.js/2</code> becomes <code>Drab.Client.run/2</code></li>
<li><code>drab-event</code> and <code>drab-handler</code> attributes combination replaced by <code>drab</code></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="66697" data-batch-url="/posts/batch_likers">
                        5
                      </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/drab-remote-controlled-frontend-framework-for-phoenix/3277/280">Post #279</a>
	                </div>
	            </div>
              <div id="likers-container-66697" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="66697"
                     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 #279"></div>
  </section>
</div>
    <div class="postbit" id="67051" data-post-id="67051">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="grych" data-post="280" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>Previously, Drab intercepted the connect/2 callback in your UserSocket. Now, there is a possibility to use your own callback:</p>
</blockquote>
</aside>
<p>WHOOO!  Been awaiting that!  <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>
<aside class="quote no-group" data-username="grych" data-post="280" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>Use of the custom marker “/” in Drab templates</p>
</blockquote>
</aside>
<p>Nice QoL.  <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>
<aside class="quote no-group quote-modified" data-username="grych" data-post="280" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>&lt;input drab=“focus:input_focus blur:input_blur”</p>
</blockquote>
</aside>
<p>I especially quite like this syntax.  It’d be nice if you could support this too:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;input drab="focus:input_focus(42) blur:input_blur()" /&gt;
</code></pre>
<p>So <code>42</code> would be appended to the end of the argument list of <code>input_focus</code> (so it should be the normal callback arity + 1) as that’d allow us to easily pass in context sensitive information per call in addition to the event and such as well.  Plus I think requiring <code>()</code> on event callbacks are all around better as that leaves it open to not using <code>()</code> meaning that it is a reference to something else for example.  <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="67051" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/281">Post #280</a>
	                </div>
	            </div>
              <div id="likers-container-67051" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="67051"
                     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 #280"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/3277/load_more?page=29">Load more posts (208 remaining)</a>
</div></template></turbo-stream>