This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 9a33a25c487 Fix registry providers page not sorting by downloads on 
initial load (#63764)
9a33a25c487 is described below

commit 9a33a25c48764056c37aa4f14e9b01ca4a3acd28
Author: Kaxil Naik <[email protected]>
AuthorDate: Mon Mar 16 23:27:30 2026 +0000

    Fix registry providers page not sorting by downloads on initial load 
(#63764)
    
    The sort dropdown defaulted to "Most Downloads" but the sort logic only
    ran on the `change` event, so providers stayed in alphabetical order
    (the template render order) until the user manually toggled the dropdown.
---
 registry/src/js/provider-filters.js | 41 ++++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/registry/src/js/provider-filters.js 
b/registry/src/js/provider-filters.js
index 9c99aedcf89..721594659c9 100644
--- a/registry/src/js/provider-filters.js
+++ b/registry/src/js/provider-filters.js
@@ -132,29 +132,32 @@
     });
   }
 
-  if (sortSelect) {
-    sortSelect.addEventListener('change', () => {
-      const sortBy = sortSelect.value;
-      const items = Array.from(providerItems);
-
-      items.sort((a, b) => {
-        switch (sortBy) {
-          case 'downloads':
-            return Number(b.dataset.downloads || 0) - 
Number(a.dataset.downloads || 0);
-          case 'name':
-            return (a.dataset.name || '').localeCompare(b.dataset.name || '');
-          case 'updated':
-            return (b.dataset.updated || '').localeCompare(a.dataset.updated 
|| '');
-          default:
-            return 0;
-        }
-      });
-
-      items.forEach(item => providerGrid.appendChild(item));
+  function sortProviders() {
+    const sortBy = sortSelect.value;
+    const items = Array.from(providerItems);
+
+    items.sort((a, b) => {
+      switch (sortBy) {
+        case 'downloads':
+          return Number(b.dataset.downloads || 0) - Number(a.dataset.downloads 
|| 0);
+        case 'name':
+          return (a.dataset.name || '').localeCompare(b.dataset.name || '');
+        case 'updated':
+          return (b.dataset.updated || '').localeCompare(a.dataset.updated || 
'');
+        default:
+          return 0;
+      }
     });
+
+    items.forEach(item => providerGrid.appendChild(item));
+  }
+
+  if (sortSelect) {
+    sortSelect.addEventListener('change', sortProviders);
   }
 
   readURLParams();
+  sortProviders();
   if (currentCategory !== 'all' || currentLifecycle !== 'all' || 
currentSearch) {
     filterProviders();
   }

Reply via email to