postland/lib/postland_web/live/timeline_live.ex

29 lines
813 B
Elixir
Raw Normal View History

2024-10-16 15:30:23 +00:00
defmodule PostlandWeb.TimelineLive do
use PostlandWeb, :live_view
def render(assigns) do
~H"""
<.post_form post_content={@post} />
<div id="timeline-posts" phx-update="stream">
<div :for={{id, post} <- @streams.posts} id={id} class="mt-10">
<.post_card post={post} />
</div>
</div>
"""
end
def mount(_params, _session, socket) do
2024-10-21 22:46:42 +00:00
{:ok, socket |> assign(:post, "") |> stream(:posts, Postland.Timeline.timeline())}
2024-10-16 15:30:23 +00:00
end
def handle_event("create_post", %{"post" => post}, socket) do
{:ok, post} = Postland.Activities.record_markdown_post(post)
2024-10-21 22:46:42 +00:00
{:noreply, socket |> assign(:post, "") |> stream_insert(:posts, post, at: 0)}
2024-10-16 15:30:23 +00:00
end
def handle_event("change_post", %{"post" => post}, socket) do
{:noreply, socket |> assign(:post, post)}
end
end