Skip to content

Commit 0233260

Browse files
authored
removed validate event, added CmdEnter hook, edited post time (#27)
1 parent bc6580d commit 0233260

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

examples/demo_live_pubsub.exs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ defmodule TimelineLive do
2121
{:ok, socket}
2222
end
2323

24-
def handle_event("validate", %{"content" => content}, socket) do
25-
{:noreply, assign(socket, :form, to_form(%{"content" => content}))}
26-
end
27-
2824
def handle_event("create_post", %{"content" => content}, socket) do
2925
post = %{
3026
id: System.unique_integer([:positive]),
@@ -58,22 +54,35 @@ defmodule TimelineLive do
5854
<div class="timeline">
5955
<h1>Timeline</h1>
6056
61-
<.form for={@form} phx-submit="create_post" phx-change="validate" id="post-form">
62-
<textarea name="content" placeholder="What's on your mind?"><%= @form.params["content"] %></textarea>
57+
<.form for={@form} phx-submit="create_post" id="post-form">
58+
<textarea name="content" placeholder="What's on your mind?" id="content" phx-hook="CmdEnterSubmit"><%= @form.params["content"] %></textarea>
6359
<button type="submit">Post</button>
6460
</.form>
6561
6662
<div class="posts" phx-update="stream" id="posts">
6763
<div :for={{dom_id, post} <- @streams.posts} id={dom_id} class="post">
6864
<div class="post-content">
6965
<p><%= post.content %></p>
70-
<small><%= post.inserted_at %></small>
66+
<small>{DateTime.truncate(post.inserted_at, :second)}</small>
7167
</div>
7268
<button phx-click="delete_post" phx-value-dom_id={dom_id} class="delete-btn">Delete</button>
7369
</div>
7470
</div>
7571
</div>
7672
73+
<script>
74+
window.hooks.CmdEnterSubmit = {
75+
mounted() {
76+
this.el.addEventListener("keydown", (e) => {
77+
if (e.metaKey && e.key === 'Enter') {
78+
this.el.form.dispatchEvent(
79+
new Event('submit', {bubbles: true, cancelable: true}));
80+
}
81+
})
82+
}
83+
}
84+
</script>
85+
7786
<style>
7887
* {
7988
box-sizing: border-box;

0 commit comments

Comments
 (0)