From 52c3a0abe04e76ed8dc1537520a05ec54ea76a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 15 Jan 2026 12:58:05 -0600 Subject: [PATCH] feat: number indexed --- .../src/pages/[...locale]/avatars/_index.tsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/website-ue/src/pages/[...locale]/avatars/_index.tsx b/packages/website-ue/src/pages/[...locale]/avatars/_index.tsx index 6db84ad04..fbb09081e 100644 --- a/packages/website-ue/src/pages/[...locale]/avatars/_index.tsx +++ b/packages/website-ue/src/pages/[...locale]/avatars/_index.tsx @@ -23,6 +23,8 @@ interface ContentProps { skeleton?: boolean; } +const indexingPattern = /.+_(\d+)$/; + function Content({ skeleton }: ContentProps) { const locale = useLocale(); const { avatars } = useAwait(() => api.avatars(), "avatars"); @@ -51,7 +53,23 @@ function Content({ skeleton }: ContentProps) { .map(([name, avatars]) => ({ name, avatars: avatars.sort((a, b) => { - return a.stuff_ui!.grade - b.stuff_ui!.grade; + const gradeA = a.stuff_ui!.grade; + const gradeB = b.stuff_ui!.grade; + let diff = gradeA - gradeB; + + if (diff === 0) { + const matchesA = a.name.match(indexingPattern); + const matchesB = b.name.match(indexingPattern); + + if (matchesA && matchesB) { + const indexA = Number(matchesA[1]); + const indexB = Number(matchesB[1]); + + diff = indexA - indexB; + } + } + + return diff; }), })); }, []);