1defmodule CometApp.HomePage do
2 use Hologram.Page
3 alias CometApp.Components.PostPreview
4
5 route "/"
6
7 layout CometApp.MainLayout
8
9 def init(_params, component, _server) do
10 # In real app, fetch from database
11 posts = [
12 %{id: 1, title: "First Post", excerpt: "This is my first post"},
13 %{id: 2, title: "Second Post", excerpt: nil}
14 ]
15
16 put_state(component, :posts, posts)
17 end
18
19 def template do
20 ~HOLO"""
21 <h1>Welcome to my Blog</h1>
22
23 <div class="posts">
24 {%for post <- @posts}
25 <PostPreview post={post} />
26 {/for}
27 </div>
28 """
29 end
30end