fix(tui): sort model picker by release date (#33558)
This commit is contained in:
parent
784eea3911
commit
c416ede20d
@ -118,7 +118,10 @@ export function DialogModel(props: { providerID?: string }) {
|
|||||||
|
|
||||||
if (needle) {
|
if (needle) {
|
||||||
return [
|
return [
|
||||||
...fuzzysort.go(needle, providerOptions, { keys: ["title", "category"] }).map((x) => x.obj),
|
...sortModelOptions(
|
||||||
|
fuzzysort.go(needle, providerOptions, { keys: ["title", "category"] }).map((x) => x.obj),
|
||||||
|
false,
|
||||||
|
),
|
||||||
...fuzzysort.go(needle, popularProviders, { keys: ["title"] }).map((x) => x.obj),
|
...fuzzysort.go(needle, popularProviders, { keys: ["title"] }).map((x) => x.obj),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -188,6 +191,7 @@ export function sortModelOptions<T extends { footer?: string; releaseDate: strin
|
|||||||
return sortBy(
|
return sortBy(
|
||||||
options,
|
options,
|
||||||
(option) => option.footer !== "Free",
|
(option) => option.footer !== "Free",
|
||||||
|
[(option) => option.releaseDate, "desc"],
|
||||||
(option) => option.title,
|
(option) => option.title,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,16 +15,18 @@ describe("sortModelOptions", () => {
|
|||||||
expect(sorted.map((model) => model.title)).toEqual(["GPT 5.4", "GPT 5.2", "GPT 5.1"])
|
expect(sorted.map((model) => model.title)).toEqual(["GPT 5.4", "GPT 5.2", "GPT 5.1"])
|
||||||
})
|
})
|
||||||
|
|
||||||
test("preserves free-first alphabetical ordering for the regular picker", () => {
|
test("orders regular model choices free-first and then newest-first", () => {
|
||||||
const sorted = sortModelOptions(
|
const sorted = sortModelOptions(
|
||||||
[
|
[
|
||||||
{ title: "Beta", releaseDate: "2026-01-01" },
|
{ title: "GLM 5", releaseDate: "2025-07-28" },
|
||||||
{ title: "Alpha", releaseDate: "2025-01-01", footer: "Free" },
|
{ title: "GLM 5.1", releaseDate: "2025-12-09" },
|
||||||
{ title: "Gamma", releaseDate: "2024-01-01", footer: "Free" },
|
{ title: "GLM 5.2", releaseDate: "2026-02-16" },
|
||||||
|
{ title: "Free old", releaseDate: "2024-01-01", footer: "Free" },
|
||||||
|
{ title: "Free new", releaseDate: "2025-01-01", footer: "Free" },
|
||||||
],
|
],
|
||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
|
|
||||||
expect(sorted.map((model) => model.title)).toEqual(["Alpha", "Gamma", "Beta"])
|
expect(sorted.map((model) => model.title)).toEqual(["Free new", "Free old", "GLM 5.2", "GLM 5.1", "GLM 5"])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user