@@ -37,7 +37,25 @@ const METRIC_CARDS = [
3737 } ,
3838] as const ;
3939
40- const SNAPSHOT_HIGHLIGHT_GROUPS = [
40+ type SnapshotRequest = {
41+ category : AnalyticsMetricCategory ;
42+ metricType : AnalyticsMetricType ;
43+ } ;
44+
45+ type SnapshotHighlightMetric = SnapshotRequest & {
46+ label : string ;
47+ valueLimit ?: number ;
48+ sort ?: "alpha" ;
49+ getEntryColor ?: ( label : string ) => string | undefined ;
50+ } ;
51+
52+ type SnapshotHighlightGroup = {
53+ title : string ;
54+ disclaimer : string ;
55+ metrics : readonly SnapshotHighlightMetric [ ] ;
56+ } ;
57+
58+ const SNAPSHOT_HIGHLIGHT_GROUPS : readonly SnapshotHighlightGroup [ ] = [
4159 {
4260 title : "Characters @ cap" ,
4361 disclaimer :
@@ -53,7 +71,7 @@ const SNAPSHOT_HIGHLIGHT_GROUPS = [
5371 category : AnalyticsMetricCategory . CHARACTERS ,
5472 metricType : AnalyticsMetricType . BY_CLASS_MAX_LEVEL ,
5573 valueLimit : Number . POSITIVE_INFINITY ,
56- sort : "alpha" as const ,
74+ sort : "alpha" ,
5775 getEntryColor : ( className : string ) =>
5876 classColors . get ( className ) ?? undefined ,
5977 } ,
@@ -62,7 +80,7 @@ const SNAPSHOT_HIGHLIGHT_GROUPS = [
6280 category : AnalyticsMetricCategory . CHARACTERS ,
6381 metricType : AnalyticsMetricType . BY_LEVEL_MAX_LEVEL ,
6482 } ,
65- ] ,
83+ ] as const ,
6684 } ,
6785 {
6886 title : "Guild structures" ,
@@ -84,7 +102,7 @@ const SNAPSHOT_HIGHLIGHT_GROUPS = [
84102 category : AnalyticsMetricCategory . GUILDS ,
85103 metricType : AnalyticsMetricType . TOP_BY_ACHIEVEMENTS ,
86104 } ,
87- ] ,
105+ ] as const ,
88106 } ,
89107 {
90108 title : "Market flow" ,
@@ -106,7 +124,7 @@ const SNAPSHOT_HIGHLIGHT_GROUPS = [
106124 category : AnalyticsMetricCategory . MARKET ,
107125 metricType : AnalyticsMetricType . PRICE_VOLATILITY ,
108126 } ,
109- ] ,
127+ ] as const ,
110128 } ,
111129 {
112130 title : "Contracts board" ,
@@ -128,15 +146,10 @@ const SNAPSHOT_HIGHLIGHT_GROUPS = [
128146 category : AnalyticsMetricCategory . CONTRACTS ,
129147 metricType : AnalyticsMetricType . TOP_BY_AUCTIONS ,
130148 } ,
131- ] ,
149+ ] as const ,
132150 } ,
133151] as const ;
134152
135- type SnapshotRequest = {
136- category : AnalyticsMetricCategory ;
137- metricType : AnalyticsMetricType ;
138- } ;
139-
140153const SNAPSHOT_REQUESTS : SnapshotRequest [ ] = [
141154 ...METRIC_CARDS . map ( ( { category, metricType } ) => ( { category, metricType } ) ) ,
142155 ...SNAPSHOT_HIGHLIGHT_GROUPS . flatMap ( ( group ) => group . metrics ) ,
@@ -426,8 +439,7 @@ export default function Home() {
426439 { snapshotHighlightGroups . map ( ( group ) => (
427440 < div
428441 key = { group . title }
429- className = "rounded-2xl border border-content4/20 bg-content2/40 p-4 backdrop-blur"
430- >
442+ className = "rounded-2xl border border-content4/20 bg-content2/40 p-4 backdrop-blur" >
431443 < div >
432444 < h4 className = "text-lg font-semibold" > { group . title } </ h4 >
433445 < p className = "text-muted mt-1 text-xs leading-relaxed" >
0 commit comments