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

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