Skip to content

Commit

Permalink
Fix preset sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
blazoncek committed Feb 3, 2024
1 parent 9ce485e commit 0003845
Showing 1 changed file with 22 additions and 19 deletions.
41 changes: 22 additions & 19 deletions wled00/data/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2802,6 +2802,7 @@ function search(field, listId = null) {
if (!listId) return;

const search = field.value !== '';
const presets = listId === 'pcont';

// clear filter if searching in fxlist
if (listId === 'fxlist' && search) {
Expand All @@ -2813,36 +2814,38 @@ function search(field, listId = null) {

const listItems = gId(listId).querySelectorAll('.lstI');
// filter list items but leave (Default & Solid) always visible
for (i = (listId === 'pcont' ? 0 : 1); i < listItems.length; i++) {
for (i = (presets ? 0 : 1); i < listItems.length; i++) {
const listItem = listItems[i];
const listItemName = listItem.querySelector('.lstIname').innerText.toUpperCase();
const searchIndex = listItemName.indexOf(field.value.toUpperCase());
listItem.style.display = (searchIndex < 0) ? 'none' : '';
listItem.dataset.searchIndex = searchIndex;
}

// sort list items by search index and name
const sortedListItems = Array.from(listItems).sort((a, b) => {
const aSearchIndex = parseInt(a.dataset.searchIndex);
const bSearchIndex = parseInt(b.dataset.searchIndex);
if (!presets) {
// sort list items by search index and name
const sortedListItems = Array.from(listItems).sort((a, b) => {
const aSearchIndex = parseInt(a.dataset.searchIndex);
const bSearchIndex = parseInt(b.dataset.searchIndex);

if (aSearchIndex !== bSearchIndex) {
return aSearchIndex - bSearchIndex;
}
if (aSearchIndex !== bSearchIndex) {
return aSearchIndex - bSearchIndex;
}

const aName = a.querySelector('.lstIname').innerText.toUpperCase();
const bName = b.querySelector('.lstIname').innerText.toUpperCase();
const aName = a.querySelector('.lstIname').innerText.toUpperCase();
const bName = b.querySelector('.lstIname').innerText.toUpperCase();

return aName.localeCompare(bName);
});
sortedListItems.forEach(item => {
gId(listId).append(item);
});
return aName.localeCompare(bName);
});
sortedListItems.forEach(item => {
gId(listId).append(item);
});

// scroll to first search result
const firstVisibleItem = sortedListItems.find(item => item.style.display !== 'none' && !item.classList.contains('sticky') && !item.classList.contains('selected'));
if (firstVisibleItem && search) {
firstVisibleItem.scrollIntoView({ behavior: "instant", block: "center" });
// scroll to first search result
const firstVisibleItem = sortedListItems.find(item => item.style.display !== 'none' && !item.classList.contains('sticky') && !item.classList.contains('selected'));
if (firstVisibleItem && search) {
firstVisibleItem.scrollIntoView({ behavior: "instant", block: "center" });
}
}
}

Expand Down

0 comments on commit 0003845

Please sign in to comment.