Skip to content

Commit 158a20d

Browse files
authored
fix(changelog): correct variable declarations in populatePackageNames… (#671)
1 parent f4e696c commit 158a20d

1 file changed

Lines changed: 51 additions & 11 deletions

File tree

  • docs/changelog/assets/js

docs/changelog/assets/js/app.js

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -229,15 +229,15 @@ const populatePackageNames = (changelog) => {
229229
otherPackages.sort();
230230

231231
// Build the sorted list - only add separator if special packages exist
232-
const sortedPackages = [];
232+
let sortedPackages;
233233
if (existingSpecialPackages.length > 0) {
234234
sortedPackages = ['separator', ...existingSpecialPackages, 'separator', ...otherPackages];
235235
} else {
236236
// No special packages exist, just show others
237237
sortedPackages = otherPackages;
238238
}
239239

240-
const optionsHtml = '<option value="">Select a package</option>';
240+
let optionsHtml = '<option value="">Select a package</option>';
241241

242242
sortedPackages.forEach((packageName) => {
243243
if (packageName === 'separator') {
@@ -787,15 +787,6 @@ const compareAndRenderPackageVersions = (packageName, versionASpecific, versionB
787787
comparisonResults.innerHTML += html;
788788
comparisonResults.classList.remove('hide');
789789

790-
// Update URL for sharing
791-
updateEnhancedComparisonURL(
792-
versionASelect.value,
793-
versionBSelect.value,
794-
packageName,
795-
comparisonData.versionA,
796-
comparisonData.versionB
797-
);
798-
799790
// Show copy link button and helper
800791
if (copyComparisonLinkBtn) copyComparisonLinkBtn.classList.remove('hide');
801792
if (comparisonHelper) comparisonHelper.classList.remove('hide');
@@ -1285,6 +1276,7 @@ const handleComparisonSubmit = async (event) => {
12851276
commits.length
12861277
);
12871278

1279+
// Push to history only on user-initiated comparisons — not on page load or popstate.
12881280
updateEnhancedComparisonURL(stableA, stableB, selectedPackage, finalVersionA, finalVersionB);
12891281
} catch (error) {
12901282
showComparisonError(error);
@@ -1396,6 +1388,16 @@ const initializeComparisonMode = async () => {
13961388
// Setup all event listeners
13971389
setupComparisonEventListeners();
13981390

1391+
// Handle Back/Forward for version comparison
1392+
window.addEventListener('popstate', async () => {
1393+
const enhancedParams = await handleEnhancedComparisonURL();
1394+
if (enhancedParams.shouldCompare) {
1395+
await loadEnhancedComparisonFromURL(enhancedParams);
1396+
} else {
1397+
clearComparisonForm();
1398+
}
1399+
});
1400+
13991401
// Check for URL parameters on page load
14001402
const enhancedParams = await handleEnhancedComparisonURL();
14011403
if (enhancedParams.shouldCompare) {
@@ -1414,6 +1416,44 @@ const initializeApplication = async () => {
14141416

14151417
// Step 2: Then initialize comparison mode (which checks URL params)
14161418
await initializeComparisonMode();
1419+
1420+
// Step 3: Handle Back/Forward for single-version search.
1421+
// searchForm submit calls pushState but had no popstate listener,
1422+
// so the URL changed while the form and results stayed frozen.
1423+
window.addEventListener('popstate', async () => {
1424+
const urlParams = new URLSearchParams(window.location.search);
1425+
1426+
// Comparison URLs are handled by the listener in initializeComparisonMode.
1427+
if (urlParams.has('compareStableA')) return;
1428+
1429+
const hasSingleSearchParams =
1430+
urlParams.has('stable_version') ||
1431+
urlParams.has('package') ||
1432+
urlParams.has('version') ||
1433+
urlParams.has('commitMessage') ||
1434+
urlParams.has('commitHash');
1435+
1436+
if (hasSingleSearchParams) {
1437+
// Restore the previous search — re-populate form and re-run.
1438+
await populateFormFieldsFromURL();
1439+
} else {
1440+
// URL is empty — clear form fields and hide results.
1441+
versionSelectDropdown.value = '';
1442+
packageNameInputDropdown.value = '';
1443+
versionInput.value = '';
1444+
commitMessageInput.value = '';
1445+
commitHashInput.value = '';
1446+
searchResults.innerHTML = '';
1447+
searchResults.classList.add('hide');
1448+
updateFormState({
1449+
stable_version: '',
1450+
package: '',
1451+
version: '',
1452+
commitMessage: '',
1453+
commitHash: '',
1454+
});
1455+
}
1456+
});
14171457
};
14181458

14191459
// Wait for DOM to be ready, then initialize

0 commit comments

Comments
 (0)