sort only after filtering is complete
This commit is contained in:
		
							parent
							
								
									ceb11ae52a
								
							
						
					
					
						commit
						e4150aa8b0
					
				| 
						 | 
					@ -156,12 +156,14 @@ function filterOnChange({target: el, forceRefilter}) {
 | 
				
			||||||
    unhide: buildFilter(false),
 | 
					    unhide: buildFilter(false),
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
  if (installed) {
 | 
					  if (installed) {
 | 
				
			||||||
    reapplyFilter();
 | 
					    reapplyFilter().then(() =>
 | 
				
			||||||
    sorter.update();
 | 
					      sorter.update());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @returns {Promise} resolves on async search
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
function filterAndAppend({entry, container}) {
 | 
					function filterAndAppend({entry, container}) {
 | 
				
			||||||
  if (!container) {
 | 
					  if (!container) {
 | 
				
			||||||
    container = [entry];
 | 
					    container = [entry];
 | 
				
			||||||
| 
						 | 
					@ -170,15 +172,16 @@ function filterAndAppend({entry, container}) {
 | 
				
			||||||
      entry.classList.add('hidden');
 | 
					      entry.classList.add('hidden');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  reapplyFilter(container);
 | 
					  return reapplyFilter(container);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @returns {Promise} resolves on async search
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
function reapplyFilter(container = installed, alreadySearched) {
 | 
					function reapplyFilter(container = installed, alreadySearched) {
 | 
				
			||||||
  if (!alreadySearched && $('#search').value.trim()) {
 | 
					  if (!alreadySearched && $('#search').value.trim()) {
 | 
				
			||||||
    searchStyles({immediately: true, container})
 | 
					    return searchStyles({immediately: true, container})
 | 
				
			||||||
      .then(() => reapplyFilter(container, true));
 | 
					      .then(() => reapplyFilter(container, true));
 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // A: show
 | 
					  // A: show
 | 
				
			||||||
  let toHide = [];
 | 
					  let toHide = [];
 | 
				
			||||||
| 
						 | 
					@ -191,7 +194,7 @@ function reapplyFilter(container = installed, alreadySearched) {
 | 
				
			||||||
  // showStyles() is building the page and no filters are active
 | 
					  // showStyles() is building the page and no filters are active
 | 
				
			||||||
  if (toUnhide instanceof DocumentFragment) {
 | 
					  if (toUnhide instanceof DocumentFragment) {
 | 
				
			||||||
    installed.appendChild(toUnhide);
 | 
					    installed.appendChild(toUnhide);
 | 
				
			||||||
    return;
 | 
					    return Promise.resolve();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // filtering needed or a single-element job from handleUpdate()
 | 
					  // filtering needed or a single-element job from handleUpdate()
 | 
				
			||||||
  for (const entry of toUnhide.children || toUnhide) {
 | 
					  for (const entry of toUnhide.children || toUnhide) {
 | 
				
			||||||
| 
						 | 
					@ -208,7 +211,7 @@ function reapplyFilter(container = installed, alreadySearched) {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (!toHide.length) {
 | 
					  if (!toHide.length) {
 | 
				
			||||||
    showFiltersStats();
 | 
					    showFiltersStats();
 | 
				
			||||||
    return;
 | 
					    return Promise.resolve();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  for (const entry of toHide) {
 | 
					  for (const entry of toHide) {
 | 
				
			||||||
    entry.classList.add('hidden');
 | 
					    entry.classList.add('hidden');
 | 
				
			||||||
| 
						 | 
					@ -219,14 +222,14 @@ function reapplyFilter(container = installed, alreadySearched) {
 | 
				
			||||||
  if (container instanceof DocumentFragment) {
 | 
					  if (container instanceof DocumentFragment) {
 | 
				
			||||||
    installed.appendChild(container);
 | 
					    installed.appendChild(container);
 | 
				
			||||||
    showFiltersStats();
 | 
					    showFiltersStats();
 | 
				
			||||||
    return;
 | 
					    return Promise.resolve();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // single-element job from handleEvent(): add the last wraith
 | 
					  // single-element job from handleEvent(): add the last wraith
 | 
				
			||||||
  if (toHide.length === 1 && toHide[0].parentElement !== installed) {
 | 
					  if (toHide.length === 1 && toHide[0].parentElement !== installed) {
 | 
				
			||||||
    installed.appendChild(toHide[0]);
 | 
					    installed.appendChild(toHide[0]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  showFiltersStats();
 | 
					  showFiltersStats();
 | 
				
			||||||
  return;
 | 
					  return Promise.resolve();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /***************************************/
 | 
					  /***************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -535,8 +535,8 @@ function handleUpdate(style, {reason, method, codeIsUpdated} = {}) {
 | 
				
			||||||
  if ((reason === 'update' || reason === 'install') && entry.matches('.updatable')) {
 | 
					  if ((reason === 'update' || reason === 'install') && entry.matches('.updatable')) {
 | 
				
			||||||
    handleUpdateInstalled(entry, reason);
 | 
					    handleUpdateInstalled(entry, reason);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  filterAndAppend({entry});
 | 
					  filterAndAppend({entry}).then(() =>
 | 
				
			||||||
  sorter.update();
 | 
					    sorter.update());
 | 
				
			||||||
  if (!entry.matches('.hidden') && reason !== 'import') {
 | 
					  if (!entry.matches('.hidden') && reason !== 'import') {
 | 
				
			||||||
    animateElement(entry);
 | 
					    animateElement(entry);
 | 
				
			||||||
    requestAnimationFrame(() => scrollElementIntoView(entry));
 | 
					    requestAnimationFrame(() => scrollElementIntoView(entry));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user