@@ -11,7 +11,7 @@ import {
11
11
Text ,
12
12
useDebounce ,
13
13
} from '@edgeandnode/gds'
14
- import { Check , EyeClosed } from '@edgeandnode/gds/icons'
14
+ import { Check , Checks , EyeClosed } from '@edgeandnode/gds/icons'
15
15
import { NetworkIcon } from '@edgeandnode/go'
16
16
17
17
import { Callout , Table } from '@/components'
@@ -24,6 +24,13 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) {
24
24
const [ immediateSearchQuery , setSearchQuery ] = useState ( '' )
25
25
const [ immediateShowTestnets , setShowTestnets ] = useState ( false )
26
26
27
+ const checkmark = (
28
+ < Check size = { 4 } alt = { t ( 'index.supportedNetworks.tableLegend.icons.checkmark' ) } className = "h-[0.75lh]" />
29
+ )
30
+ const checkmarks = (
31
+ < Checks size = { 4 } alt = { t ( 'index.supportedNetworks.tableLegend.icons.checkmarks' ) } className = "h-[0.75lh]" />
32
+ )
33
+
27
34
const searchQuery = useDebounce ( immediateSearchQuery , 200 )
28
35
const showTestnets = useDebounce ( immediateShowTestnets , 200 )
29
36
@@ -58,6 +65,57 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) {
58
65
</ p >
59
66
</ Callout >
60
67
68
+ < aside
69
+ className = "mb-6 overflow-clip rounded-8 border border-space-1500 bg-space-1800"
70
+ aria-labelledby = "networks-table-legend"
71
+ >
72
+ < h3 id = "networks-table-legend" className = "sr-only" >
73
+ { t ( 'index.supportedNetworks.tableLegend.legendTitle' ) }
74
+ </ h3 >
75
+ < div className = "grid grid-cols-1 gap-px text-space-500 xs:grid-cols-2" >
76
+ < div className = "border-b border-r border-space-1500 p-4" >
77
+ < span className = "text-c10 mb-2 block text-white" > Subgraphs</ span >
78
+ < div className = "flex gap-2" >
79
+ { checkmark }
80
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.subgraphs.basic' ) } </ span >
81
+ </ div >
82
+ < div className = "flex gap-2" >
83
+ { checkmarks }
84
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.subgraphs.full' ) } </ span >
85
+ </ div >
86
+ </ div >
87
+ < div className = "border-b border-r border-space-1500 p-4 lg:border-r-0" >
88
+ < span className = "text-c10 mb-2 block text-white" > Substreams</ span >
89
+ < div className = "flex gap-2" >
90
+ { checkmark }
91
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.substreams.basic' ) } </ span >
92
+ </ div >
93
+ < div className = "flex gap-2" >
94
+ { checkmarks }
95
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.substreams.full' ) } </ span >
96
+ </ div >
97
+ </ div >
98
+ < div className = "border-b border-r border-space-1500 p-4" >
99
+ < span className = "text-c10 mb-2 block text-white" > Firehose</ span >
100
+ < div className = "flex gap-2" >
101
+ { checkmark }
102
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.firehose.basic' ) } </ span >
103
+ </ div >
104
+ < div className = "flex gap-2" >
105
+ { checkmarks }
106
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.firehose.full' ) } </ span >
107
+ </ div >
108
+ </ div >
109
+ < div className = "p-4" >
110
+ < span className = "text-c10 mb-2 block text-white" > Token API</ span >
111
+ < div className = "flex gap-2" >
112
+ { checkmark }
113
+ < span className = "text-14" > { t ( 'index.supportedNetworks.tableLegend.tokenApi.supported' ) } </ span >
114
+ </ div >
115
+ </ div >
116
+ </ div >
117
+ </ aside >
118
+
61
119
< div className = "mb-4 flex items-center gap-4" >
62
120
< div className = "flex-grow" >
63
121
< ExperimentalSearch
@@ -103,9 +161,6 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) {
103
161
< th className = "min-w-47" >
104
162
< Text . C10 > { t ( 'index.supportedNetworks.tableHeaders.name' ) } </ Text . C10 >
105
163
</ th >
106
- < th className = "min-w-47" >
107
- < Text . C10 > { t ( 'index.supportedNetworks.tableHeaders.id' ) } </ Text . C10 >
108
- </ th >
109
164
< th align = "center" >
110
165
< Text . C10 > { t ( 'index.supportedNetworks.tableHeaders.subgraphs' ) } </ Text . C10 >
111
166
</ th >
@@ -125,26 +180,44 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) {
125
180
className = "group/table-row isolate -outline-offset-1 transition hocus-visible-within:bg-space-1600 has-[a:focus-visible]:outline-focus"
126
181
>
127
182
< td >
128
- < ButtonOrLink href = { `/supported-networks/ ${ network . id } ` } className = "static outline-none " >
129
- < span className = "flex items-center gap-2 " >
130
- < NetworkIcon network = { network } variant = { getIconVariant ( network . id ) } size = { 5 } / >
131
- < span className = "text-body-xsmall" > { network . shortName } </ span >
132
- </ span >
133
- < span className = "absolute inset-y-0 start-0 z-10 w-[1999px]" / >
134
- </ ButtonOrLink >
135
- </ td >
136
- < td >
137
- < div className = "flex items-center justify-between gap-2" >
138
- < span className = "text-body-xsmall" > { network . id } </ span >
183
+ < div className = "static flex items-center justify-between gap-2 " >
184
+ < ButtonOrLink href = { `/supported-networks/ ${ network . id } ` } className = "static outline-none " >
185
+ < div className = "flex items-center gap-3" >
186
+ < NetworkIcon network = { network } variant = { getIconVariant ( network . id ) } size = { 5 } / >
187
+ < div className = "flex flex-col" >
188
+ < span className = "text-body-xsmall leading-5 text-white" > { network . shortName } </ span >
189
+ < span className = "text-body-xsmall leading-5 text-space-500" > { network . id } </ span >
190
+ </ div >
191
+ </ div >
192
+ < span className = "absolute inset-y-0 start-0 z-10 w-[1999px]" / >
193
+ </ ButtonOrLink >
139
194
< div className = "z-20 shrink-0 opacity-0 transition group-focus-within/table-row:opacity-100 group-hover/table-row:opacity-100" >
140
195
< ExperimentalCopyButton size = "small" variant = "tertiary" value = { network . id } />
141
196
</ div >
142
197
</ div >
143
198
</ td >
144
- < td align = "center" > { network . subgraphs ? < Check size = { 4 } alt = "Checkmark" /> : null } </ td >
145
- < td align = "center" > { network . substreams ? < Check size = { 4 } alt = "Checkmark" /> : null } </ td >
146
- < td align = "center" > { network . firehose ? < Check size = { 4 } alt = "Checkmark" /> : null } </ td >
147
- < td align = "center" > { network . tokenApi ? < Check size = { 4 } alt = "Checkmark" /> : null } </ td >
199
+ < td align = "center" >
200
+ { network . subgraphsSupportLevel === 'full'
201
+ ? checkmarks
202
+ : network . subgraphsSupportLevel === 'basic'
203
+ ? checkmark
204
+ : null }
205
+ </ td >
206
+ < td align = "center" >
207
+ { network . substreamsSupportLevel === 'full'
208
+ ? checkmarks
209
+ : network . substreamsSupportLevel === 'basic'
210
+ ? checkmark
211
+ : null }
212
+ </ td >
213
+ < td align = "center" >
214
+ { network . firehoseSupportLevel === 'full'
215
+ ? checkmarks
216
+ : network . firehoseSupportLevel === 'basic'
217
+ ? checkmark
218
+ : null }
219
+ </ td >
220
+ < td align = "center" > { network . tokenApi ? checkmark : null } </ td >
148
221
</ tr >
149
222
) ) }
150
223
</ tbody >
0 commit comments