fix(docker): improve icon matching (#5693)

* fix(docker): improve icon matching

* fix: unused import
This commit is contained in:
Meier Lukas authored and GitHub committed 2026-05-18 21:45:33 +02:00
1 parent a9855fe8d3
commit 7cd30b640c
3 files changed
+65 -9

No files matched your search

+23
View File
@@ -5,3 +5,26 @@ export const capitalize = <T extends string>(str: T) => {
export const isNullOrWhitespace = (value: string | null): value is null => {
return value == null || value.trim() === "";
};
export const bestMatch = <TItem extends Record<string, unknown>>(
search: string,
options: TItem[],
by: (item: TItem) => string,
) => {
if (options.length === 0) return null;
const normalizedSearch = search.toLowerCase().trim();
return options.reduce<TItem | null>((best, current) => {
const currentMatchIndex = by(current).toLowerCase().indexOf(normalizedSearch);
if (currentMatchIndex === -1) return best;
if (best === null) return current;
const bestMatchIndex = by(best).toLowerCase().indexOf(normalizedSearch);
if (currentMatchIndex < bestMatchIndex) return current;
if (by(current).length < by(best).length && currentMatchIndex === bestMatchIndex) return current;
return best;
}, null);
};