diff --git a/app/[locale]/(main)/ClientComponents/ServerListClient.tsx b/app/[locale]/(main)/ClientComponents/ServerListClient.tsx
index c111d03..ab96e56 100644
--- a/app/[locale]/(main)/ClientComponents/ServerListClient.tsx
+++ b/app/[locale]/(main)/ClientComponents/ServerListClient.tsx
@@ -14,19 +14,33 @@ export default function ServerListClient() {
{error.message}
- Please check your environment variables and review the server console logs for more details.
+ Please check your environment variables and review the server console
+ logs for more details.
);
if (!data) return null;
- const sortedServers = data.result.sort((a, b) => {
- if (a.display_index && b.display_index) {
- return b.display_index - a.display_index;
- }
- if (a.display_index) return -1;
- if (b.display_index) return 1;
- return a.id - b.id;
- });
+
+ const { result } = data;
+
+ const positiveDisplayIndex = result
+ .filter((server) => server.display_index > 0)
+ .sort((a, b) => b.display_index - a.display_index);
+
+ const noDisplayIndex = result
+ .filter((server) => !server.display_index)
+ .sort((a, b) => a.id - b.id);
+
+ const negativeDisplayIndex = result
+ .filter((server) => server.display_index < 0)
+ .sort((a, b) => b.display_index - a.display_index);
+
+ const sortedServers = [
+ ...positiveDisplayIndex,
+ ...noDisplayIndex,
+ ...negativeDisplayIndex,
+ ];
+
return (
{sortedServers.map((serverInfo) => (