Merge pull request #3305 from Eradev/staging Fixed featherless.ai models display and filters

e7bcac017176518e90a5455a7c1e1b81205cc406

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
1 files changed, +11 -11Ignore whitespace
public/scripts/textgen-models.js+11 -11
@@ -319,8 +319,6 @@ export async function loadFeatherlessModels(data) {
319319 return;
320320 }
321321
322- // Sort the data by model id (default A-Z)
323- data.sort((a, b) => a.id.localeCompare(b.id));
324322 originalModels = data; // Store the original data for search
325323 featherlessModels = data;
326324
@@ -334,10 +332,8 @@ export async function loadFeatherlessModels(data) {
334332 // Retrieve the stored number of items per page or default to 10
335333 const perPage = Number(localStorage.getItem(storageKey)) || 10;
336334
337335 // Initialize pagination with the full set of models
338- const currentModelIndex = data.findIndex(x => x.id === textgen_settings.featherless_model);
336+ applyFiltersAndSort();
339- featherlessCurrentPage = currentModelIndex >= 0 ? (currentModelIndex / perPage) + 1 : 1;
340- setupPagination(originalModels, perPage);
341337
342338 // Function to set up pagination (also used for filtered results)
343339 function setupPagination(models, perPage, pageNumber = featherlessCurrentPage) {
@@ -383,7 +379,7 @@ export async function loadFeatherlessModels(data) {
383379
384380 const dateAddedDiv = document.createElement('div');
385381 dateAddedDiv.classList.add('model-date-added');
386382 dateAddedDiv.textContent = `Added On: ${new Date(model.updated_atcreated * 1000).toLocaleDateString()}`;
387383
388384 detailsContainer.appendChild(modelClassDiv);
389385 detailsContainer.appendChild(contextLengthDiv);
@@ -472,6 +468,7 @@ export async function loadFeatherlessModels(data) {
472468 featherlessTop = await fetchFeatherlessStats();
473469 }
474470 const featherlessIds = featherlessTop.map(stat => stat.id);
471+
475472 if (selectedCategory === 'New') {
476473 featherlessNew = await fetchFeatherlessNew();
477474 }
@@ -493,7 +490,7 @@ export async function loadFeatherlessModels(data) {
493490 return matchesSearch && matchesClass && matchesNew;
494491 }
495492 else {
496493 return matchesSearch && matchesClass;
497494 }
498495 });
499496
@@ -502,11 +499,14 @@ export async function loadFeatherlessModels(data) {
502499 } else if (selectedSortOrder === 'desc') {
503500 filteredModels.sort((a, b) => b.id.localeCompare(a.id));
504501 } else if (selectedSortOrder === 'date_asc') {
505502 filteredModels.sort((a, b) => a.updated_at.localeCompare(created - b.updated_at)created);
506503 } else if (selectedSortOrder === 'date_desc') {
507504 filteredModels.sort((a, b) => b.updated_at.localeCompare(created - a.updated_at)created);
508505 }
509506
507+ const currentModelIndex = filteredModels.findIndex(x => x.id === textgen_settings.featherless_model);
508+ featherlessCurrentPage = currentModelIndex >= 0 ? (currentModelIndex / perPage) + 1 : 1;
509+
510510 setupPagination(filteredModels, Number(localStorage.getItem(storageKey)) || perPage, featherlessCurrentPage);
511511 }
512512
@@ -528,7 +528,7 @@ async function fetchFeatherlessStats() {
528528}
529529
530530async function fetchFeatherlessNew() {
531531 const response = await fetch('https://api.featherless.ai/feather/models?sort=-created_at&perPage=1020');
532532 const data = await response.json();
533533 return data.items;
534534}