Skip to content

Commit 4644d7e

Browse files
committed
Avoid redundant dashboard assign churn
1 parent 7a11195 commit 4644d7e

1 file changed

Lines changed: 32 additions & 20 deletions

File tree

lib/reencodarr_web/live/dashboard_live.ex

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,26 +1302,38 @@ defmodule ReencodarrWeb.DashboardLive do
13021302
state.queue_counts
13031303
)
13041304

1305-
assign(socket,
1306-
crf_search_video: state.crf_search_video,
1307-
crf_search_results: state.crf_search_results,
1308-
crf_search_sample: state.crf_search_sample,
1309-
crf_progress: state.crf_progress,
1310-
encoding_video: state.encoding_video,
1311-
encoding_vmaf: state.encoding_vmaf,
1312-
encoding_progress: state.encoding_progress,
1313-
service_status: state.service_status,
1314-
stats: state.stats,
1315-
stats_display: stats_display(state.stats),
1316-
state_distribution_display: state_distribution_display(state.stats),
1317-
queue_counts: state.queue_counts,
1318-
queue_items: merged_queue_items,
1319-
queue_previews_loaded: Map.get(state, :queue_previews_loaded, false),
1320-
vmaf_distribution: state.vmaf_distribution,
1321-
resolution_distribution: state.resolution_distribution,
1322-
codec_distribution: state.codec_distribution,
1323-
charts_loaded: Map.get(state, :charts_loaded, false)
1324-
)
1305+
stats_display = stats_display(state.stats)
1306+
state_distribution_display = state_distribution_display(state.stats)
1307+
queue_previews_loaded = Map.get(state, :queue_previews_loaded, false)
1308+
charts_loaded = Map.get(state, :charts_loaded, false)
1309+
1310+
socket
1311+
|> assign_if_changed(:crf_search_video, state.crf_search_video)
1312+
|> assign_if_changed(:crf_search_results, state.crf_search_results)
1313+
|> assign_if_changed(:crf_search_sample, state.crf_search_sample)
1314+
|> assign_if_changed(:crf_progress, state.crf_progress)
1315+
|> assign_if_changed(:encoding_video, state.encoding_video)
1316+
|> assign_if_changed(:encoding_vmaf, state.encoding_vmaf)
1317+
|> assign_if_changed(:encoding_progress, state.encoding_progress)
1318+
|> assign_if_changed(:service_status, state.service_status)
1319+
|> assign_if_changed(:stats, state.stats)
1320+
|> assign_if_changed(:stats_display, stats_display)
1321+
|> assign_if_changed(:state_distribution_display, state_distribution_display)
1322+
|> assign_if_changed(:queue_counts, state.queue_counts)
1323+
|> assign_if_changed(:queue_items, merged_queue_items)
1324+
|> assign_if_changed(:queue_previews_loaded, queue_previews_loaded)
1325+
|> assign_if_changed(:vmaf_distribution, state.vmaf_distribution)
1326+
|> assign_if_changed(:resolution_distribution, state.resolution_distribution)
1327+
|> assign_if_changed(:codec_distribution, state.codec_distribution)
1328+
|> assign_if_changed(:charts_loaded, charts_loaded)
1329+
end
1330+
1331+
defp assign_if_changed(socket, key, value) do
1332+
if Map.get(socket.assigns, key) == value do
1333+
socket
1334+
else
1335+
assign(socket, key, value)
1336+
end
13251337
end
13261338

13271339
defp schedule_periodic_update do

0 commit comments

Comments
 (0)