feat: preview working

This commit is contained in:
2026-04-26 19:17:22 +02:00
parent f866aeca0a
commit 57d255f79e
7 changed files with 833 additions and 61 deletions

View File

@@ -140,9 +140,20 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
def set_mode(socket, post_id, mode, reload) do
workbench = socket.assigns.workbench
normalized_mode = normalize_mode(mode)
if normalized_mode == :preview do
case Repo.get(Post, post_id) do
%Post{} = post ->
_ = Preview.ensure_preview(post.project_id)
_other ->
:ok
end
end
socket
|> assign(:post_editor_modes, Map.put(socket.assigns.post_editor_modes, post_id, normalize_mode(mode)))
|> assign(:post_editor_modes, Map.put(socket.assigns.post_editor_modes, post_id, normalized_mode))
|> reload.(workbench)
end
@@ -870,18 +881,13 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
defp preview_url(_post, _active_language, _canonical_language, mode) when mode != :preview, do: nil
defp preview_url(%Post{} = post, active_language, canonical_language, :preview) do
with {:ok, server} <- Preview.start_preview(post.project_id) do
base_url = "http://#{server.host}:#{server.port}"
query =
%{}
|> maybe_put_query("draft", "true")
|> maybe_put_query("post_id", post.id)
|> maybe_put_query("lang", active_language != canonical_language && active_language)
query =
%{}
|> maybe_put_query("draft", "true")
|> maybe_put_query("post_id", post.id)
|> maybe_put_query("lang", active_language != canonical_language && active_language)
base_url <> canonical_preview_path(post.created_at, post.slug) <> "?" <> URI.encode_query(query)
else
_other -> nil
end
Preview.base_url() <> canonical_preview_path(post.created_at, post.slug) <> "?" <> URI.encode_query(query)
end
defp canonical_preview_path(created_at_ms, slug) do