@@ -7,8 +7,8 @@ defmodule Beacon.Web.DataSource do
7
7
Beacon . apply_mfa ( site , Beacon.Loader . fetch_live_data_module ( site ) , :live_data , [ path_info , params ] )
8
8
end
9
9
10
- def page_title ( site , page_id , live_data , source ) do
11
- % { path: path , title: title } = page_assigns = page_assigns ( site , page_id , source )
10
+ def page_title ( site , page , live_data , source ) do
11
+ % { path: path , title: title } = page_assigns = page_assigns ( site , page , source )
12
12
13
13
with { :ok , page_title } <- Beacon.Content . render_snippet ( title , % { page: page_assigns , live_data: live_data } ) do
14
14
page_title
@@ -58,13 +58,14 @@ defmodule Beacon.Web.DataSource do
58
58
end
59
59
60
60
# only published pages will have the title evaluated for beacon
61
- defp page_assigns ( site , page_id , :beacon ) do
62
- Beacon . apply_mfa ( site , Beacon.Loader . fetch_page_module ( site , page_id ) , :page_assigns , [ ] )
61
+ defp page_assigns ( site , page , :beacon ) do
62
+ Beacon . apply_mfa ( site , Beacon.Loader . fetch_page_module ( site , page . id ) , :page_assigns , [ ] )
63
63
end
64
64
65
65
# beacon_live_admin needs the title for unpublished pages also
66
- defp page_assigns ( site , page_id , :admin ) do
67
- page = Beacon.Content . get_page ( site , page_id )
66
+ defp page_assigns ( site , page , :admin ) do
67
+ # new pages are not yet in the database
68
+ page = if page . id , do: Beacon.Content . get_page ( site , page . id ) , else: page
68
69
69
70
% {
70
71
id: page . id ,
0 commit comments