fix: fixed CSM-008

This commit is contained in:
2026-05-09 14:17:32 +02:00
parent 88c689ee55
commit 24e9e9a022
5 changed files with 264 additions and 26 deletions

View File

@@ -105,12 +105,12 @@ defmodule BDS.Desktop.ShellLive.PanelRenderer do
end
defp render_post_links(assigns) do
links = post_link_entries(assigns)
panel_links = assigns[:panel_post_links] || %{backlinks: [], outlinks: []}
assigns =
assigns
|> assign(:backlinks, Map.get(links, :backlinks, []))
|> assign(:outlinks, Map.get(links, :outlinks, []))
|> assign(:backlinks, Map.get(panel_links, :backlinks, []))
|> assign(:outlinks, Map.get(panel_links, :outlinks, []))
~H"""
<%= if Enum.empty?(@backlinks) and Enum.empty?(@outlinks) do %>
@@ -161,7 +161,7 @@ defmodule BDS.Desktop.ShellLive.PanelRenderer do
end
defp render_git_log(assigns) do
entries = git_log_entries(assigns)
entries = assigns[:panel_git_entries] || []
assigns = assign(assigns, :git_entries, entries)
~H"""
@@ -196,7 +196,7 @@ defmodule BDS.Desktop.ShellLive.PanelRenderer do
"""
end
defp post_link_entries(assigns) do
def fetch_post_link_entries(assigns) do
case assigns.current_tab do
%{type: :post, id: post_id} ->
%{
@@ -226,7 +226,7 @@ defmodule BDS.Desktop.ShellLive.PanelRenderer do
|> Enum.reject(&is_nil/1)
end
defp git_log_entries(assigns) do
def fetch_git_log_entries(assigns) do
case git_history_target(assigns.current_tab) do
nil ->
[]

View File

@@ -30,7 +30,13 @@ defmodule BDS.Desktop.ShellLive.TabHelpers do
Enum.reduce(tabs, %{}, fn tab, acc ->
key = {tab.type, tab.id}
existing_meta = Map.get(tab_meta, key, %{})
synced_meta = merge_missing_meta(existing_meta, derived_tab_meta(tab))
synced_meta =
if meta_complete?(existing_meta) do
existing_meta
else
merge_missing_meta(existing_meta, derived_tab_meta(tab))
end
if map_size(synced_meta) == 0 do
acc
@@ -198,6 +204,12 @@ defmodule BDS.Desktop.ShellLive.TabHelpers do
defp derived_tab_meta(_tab), do: %{}
defp meta_complete?(%{title: title, subtitle: subtitle})
when is_binary(title) and title != "" and is_binary(subtitle) and subtitle != "",
do: true
defp meta_complete?(_), do: false
defp merge_missing_meta(existing_meta, fresh_meta) do
existing_meta
|> maybe_put_missing(:title, Map.get(fresh_meta, :title))