From edf927516e5e39016aef19e22c936d8f43be5f24 Mon Sep 17 00:00:00 2001 From: ayana Date: Thu, 12 Jun 2025 22:28:06 -0700 Subject: [PATCH] Add initial modal for the leadderboard as well --- .../admin/Evaluations/Leaderboard.svelte | 33 +++++++- .../admin/Evaluations/LeaderboardModal.svelte | 79 +++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 src/lib/components/admin/Evaluations/LeaderboardModal.svelte diff --git a/src/lib/components/admin/Evaluations/Leaderboard.svelte b/src/lib/components/admin/Evaluations/Leaderboard.svelte index e5d8a2166..6774d6a73 100644 --- a/src/lib/components/admin/Evaluations/Leaderboard.svelte +++ b/src/lib/components/admin/Evaluations/Leaderboard.svelte @@ -7,6 +7,8 @@ import { onMount, getContext } from 'svelte'; import { models } from '$lib/stores'; + import ModelModal from './LeaderboardModal.svelte'; + import Spinner from '$lib/components/common/Spinner.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte'; import MagnifyingGlass from '$lib/components/icons/MagnifyingGlass.svelte'; @@ -51,6 +53,25 @@ lost: number; }; + ////////////////////// + // + // Aggregate Level Modal + // + ////////////////////// + + let showLeaderboardModal = false; + let selectedModel = null; + + const openFeedbackModal = (model) => { + showLeaderboardModal = true; + selectedModel = model; + }; + + const closeLeaderboardModal = () => { + showLeaderboardModal = false; + selectedModel = null; + }; + ////////////////////// // // Rank models by Elo rating @@ -268,6 +289,13 @@ }); + +
@@ -343,7 +371,10 @@ {#each rankedModels as model, modelIdx (model.id)} - + openFeedbackModal(model)} + >
{model?.rating !== '-' ? modelIdx + 1 : '-'} diff --git a/src/lib/components/admin/Evaluations/LeaderboardModal.svelte b/src/lib/components/admin/Evaluations/LeaderboardModal.svelte new file mode 100644 index 000000000..c89f0989b --- /dev/null +++ b/src/lib/components/admin/Evaluations/LeaderboardModal.svelte @@ -0,0 +1,79 @@ + + + + {#if model} +
+
+ {model.name} + {$i18n.t('Details')} +
+ +
+
+
+ {$i18n.t('Top Tags')}: + {#if topTags.length} +
+ {#each topTags as tagInfo} + + {tagInfo.tag} ({tagInfo.count}) + + {/each} +
+ {:else} + - + {/if} +
+
+ +
+
+ {/if} +