Skip to content

Commit 8a6ccde

Browse files
committed
fix: load visual editor on new pages
`Beacon.Content.get_page/2` fails since there's no page saved yet.
1 parent 0258447 commit 8a6ccde

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/beacon/web/beacon_assigns.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ defmodule Beacon.Web.BeaconAssigns do
7474
page_module = Beacon.Loader.Page.module_name(site, page.id)
7575
live_data = Beacon.Web.DataSource.live_data(site, path_info, Map.drop(query_params, ["path"]))
7676
path_params = Beacon.Router.path_params(page.path, path_info)
77-
page_title = Beacon.Web.DataSource.page_title(site, page.id, live_data, source)
77+
page_title = Beacon.Web.DataSource.page_title(site, page, live_data, source)
7878
components_module = Beacon.Loader.Components.module_name(site)
7979
info_handlers_module = Beacon.Loader.InfoHandlers.module_name(site)
8080
event_handlers_module = Beacon.Loader.EventHandlers.module_name(site)

lib/beacon/web/data_source.ex

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ defmodule Beacon.Web.DataSource do
77
Beacon.apply_mfa(site, Beacon.Loader.fetch_live_data_module(site), :live_data, [path_info, params])
88
end
99

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)
1212

1313
with {:ok, page_title} <- Beacon.Content.render_snippet(title, %{page: page_assigns, live_data: live_data}) do
1414
page_title
@@ -58,13 +58,14 @@ defmodule Beacon.Web.DataSource do
5858
end
5959

6060
# 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, [])
6363
end
6464

6565
# 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
6869

6970
%{
7071
id: page.id,

0 commit comments

Comments
 (0)