Skip to content

Commit b695f7a

Browse files
committed
Respect the self-time toggle in hot only
1 parent d726488 commit b695f7a

1 file changed

Lines changed: 31 additions & 23 deletions

File tree

Lib/profiling/sampling/_heatmap_assets/heatmap.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -210,28 +210,44 @@ window.addEventListener('resize', buildScrollMarker);
210210

211211
function toggleColdCode() {
212212
coldCodeHidden = !coldCodeHidden;
213+
applyHotFilter();
214+
updateToggleUI('toggle-cold', coldCodeHidden);
215+
}
216+
217+
// Apply hot filter based on current coldCodeHidden and colorMode state
218+
function applyHotFilter() {
213219
const lines = document.querySelectorAll('.code-line');
214-
const toggle = document.getElementById('toggle-cold');
215220

216221
lines.forEach(line => {
217-
// Check both self and cumulative samples
218222
const selfSamples = line.querySelector('.line-samples-self')?.textContent.trim();
219223
const cumulativeSamples = line.querySelector('.line-samples-cumulative')?.textContent.trim();
220224

221-
// Line is cold if both are empty
222-
if ((!selfSamples || selfSamples === '') && (!cumulativeSamples || cumulativeSamples === '')) {
223-
if (coldCodeHidden) {
224-
line.style.display = 'none';
225-
} else {
226-
line.style.display = 'flex';
227-
}
225+
// Determine if line should be hidden based on color mode
226+
let isCold;
227+
if (colorMode === 'self') {
228+
// In self mode, hide lines with no self samples
229+
isCold = !selfSamples || selfSamples === '';
230+
} else {
231+
// In cumulative mode, hide lines with no cumulative samples
232+
isCold = !cumulativeSamples || cumulativeSamples === '';
233+
}
234+
235+
if (isCold) {
236+
line.style.display = coldCodeHidden ? 'none' : 'flex';
237+
} else {
238+
// Line has samples, always show it
239+
line.style.display = 'flex';
228240
}
229241
});
242+
}
230243

244+
// Update toggle UI state
245+
function updateToggleUI(toggleId, isOn) {
246+
const toggle = document.getElementById(toggleId);
231247
if (toggle) {
232248
const track = toggle.querySelector('.toggle-track');
233249
const labels = toggle.querySelectorAll('.toggle-label');
234-
if (coldCodeHidden) {
250+
if (isOn) {
235251
track.classList.add('on');
236252
labels[0].classList.remove('active');
237253
labels[1].classList.add('active');
@@ -258,7 +274,6 @@ document.addEventListener('DOMContentLoaded', () => {
258274
function toggleColorMode() {
259275
colorMode = colorMode === 'self' ? 'cumulative' : 'self';
260276
const lines = document.querySelectorAll('.code-line');
261-
const toggle = document.getElementById('toggle-color-mode');
262277

263278
lines.forEach(line => {
264279
let bgColor;
@@ -273,18 +288,11 @@ function toggleColorMode() {
273288
}
274289
});
275290

276-
if (toggle) {
277-
const track = toggle.querySelector('.toggle-track');
278-
const labels = toggle.querySelectorAll('.toggle-label');
279-
if (colorMode === 'self') {
280-
track.classList.remove('on');
281-
labels[0].classList.add('active');
282-
labels[1].classList.remove('active');
283-
} else {
284-
track.classList.add('on');
285-
labels[0].classList.remove('active');
286-
labels[1].classList.add('active');
287-
}
291+
updateToggleUI('toggle-color-mode', colorMode === 'cumulative');
292+
293+
// Reapply hot filter if enabled (filtering criteria depends on color mode)
294+
if (coldCodeHidden) {
295+
applyHotFilter();
288296
}
289297

290298
// Rebuild scroll marker with new color mode

0 commit comments

Comments
 (0)