fix(tui): order connected provider models by release date (#29798)
This commit is contained in:
@@ -73,6 +73,7 @@ export function DialogModel(props: { providerID?: string }) {
|
||||
map(([model, info]) => ({
|
||||
value: { providerID: provider.id, modelID: model },
|
||||
title: info.name ?? model,
|
||||
releaseDate: info.release_date,
|
||||
description: favorites.some((item) => item.providerID === provider.id && item.modelID === model)
|
||||
? "(Favorite)"
|
||||
: undefined,
|
||||
@@ -91,10 +92,7 @@ export function DialogModel(props: { providerID?: string }) {
|
||||
return false
|
||||
return true
|
||||
}),
|
||||
sortBy(
|
||||
(x) => x.footer !== "Free",
|
||||
(x) => x.title,
|
||||
),
|
||||
(options) => sortModelOptions(options, props.providerID !== undefined),
|
||||
),
|
||||
),
|
||||
)
|
||||
@@ -173,3 +171,15 @@ export function DialogModel(props: { providerID?: string }) {
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export function sortModelOptions<T extends { footer?: string; releaseDate: string; title: string }>(
|
||||
options: T[],
|
||||
newestFirst: boolean,
|
||||
) {
|
||||
if (newestFirst) return sortBy(options, [(option) => option.releaseDate, "desc"], (option) => option.title)
|
||||
return sortBy(
|
||||
options,
|
||||
(option) => option.footer !== "Free",
|
||||
(option) => option.title,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user