@@ -15,7 +15,7 @@ import BlobsTable from "./tables/BlobsTable.vue"
1515import NamespacesTable from " ./tables/NamespacesTable.vue"
1616
1717/** Services */
18- import { comma , formatBytes } from " @/services/utils"
18+ import { comma , formatBytes , truncateDecimalPart } from " @/services/utils"
1919
2020/** API */
2121import { fetchRollupBlobs , fetchRollupExportData , fetchRollupNamespaces } from " @/services/api/rollup"
@@ -52,6 +52,13 @@ const activeTab = ref(preselectedTab)
5252const isRefetching = ref (false )
5353const namespaces = ref ([])
5454const blobs = ref ([])
55+ const relatedLinks = computed (() => {
56+ if (props .rollup .links ? .length ) {
57+ return props .rollup .links [0 ].split (' ,' )
58+ } else {
59+ return []
60+ }
61+ })
5562
5663const page = ref (1 )
5764const pages = computed (() => (activeTab .value === " Blobs" ? Math .ceil (props .rollup .blobs_count / 10 ) : 1 ))
@@ -278,6 +285,19 @@ const handleCSVDownload = async (period) => {
278285 < / Text >
279286 < / Flex>
280287 < / Flex>
288+ < Flex v- if = " relatedLinks.length" direction= " column" gap= " 6" >
289+ < Text size= " 12" weight= " 600" color= " secondary" > Related Links< / Text >
290+
291+ < Flex align= " center" direction= " column" gap= " 2" >
292+ < Flex v- for = " link in relatedLinks" align= " center" justify= " start" wide>
293+ < a : href= " link" target= " _blank" >
294+ < Text size= " 12" height= " 140" weight= " 600" color= " tertiary" mono selectable : class = " $style.link" >
295+ {{ link }}
296+ < / Text >
297+ < / a>
298+ < / Flex>
299+ < / Flex>
300+ < / Flex>
281301 < Flex align= " center" justify= " start" gap= " 12" >
282302 < Tooltip v- if = " rollup.website" position= " start" delay= " 500" >
283303 < a : href= " rollup.website" target= " _blank" >
@@ -321,11 +341,11 @@ const handleCSVDownload = async (period) => {
321341
322342 < Tooltip v- if = " rollup.explorer" position= " start" delay= " 500" >
323343 < a : href= " rollup.explorer" target= " _blank" >
324- < Icon name= " blockscout " size= " 14" color= " secondary" : class = " $style.btn" / >
344+ < Icon name= " search " size= " 14" color= " secondary" : class = " $style.btn" / >
325345 < / a>
326346
327347 < template #content>
328- {{ rollup .explorer }}
348+ {{ ` Explorer: ${ rollup .explorer } ` }}
329349 < / template>
330350 < / Tooltip>
331351 < / Flex>
@@ -335,20 +355,65 @@ const handleCSVDownload = async (period) => {
335355
336356 < Flex align= " center" justify= " between" >
337357 < Text size= " 12" weight= " 600" color= " tertiary" > Size< / Text >
338- < Text size= " 12" weight= " 600" color= " secondary" > {{ formatBytes (rollup .size ) }} < / Text >
358+
359+ < Tooltip position= " start" delay= " 400" >
360+ < Flex align= " center" gap= " 4" >
361+ < Text size= " 12" weight= " 600" color= " secondary" > {{ formatBytes (rollup .size ) }} < / Text >
362+
363+ < Text size= " 12" weight= " 600" color= " tertiary" > {{ ` (${ truncateDecimalPart (rollup .size_pct * 100 , 2 )} %)` }}< / Text >
364+ < / Flex>
365+
366+ < template #content>
367+ < Flex align= " end" gap= " 8" >
368+ < Text size= " 12" weight= " 600" color= " tertiary" > Share of total size< / Text >
369+
370+ < Text size= " 12" weight= " 600" color= " primary" > {{ ` (${ truncateDecimalPart (rollup .size_pct * 100 , 2 )} %)` }}< / Text >
371+ < / Flex>
372+ < / template>
373+ < / Tooltip>
339374 < / Flex>
340375
341376 < Flex align= " center" justify= " between" >
342377 < Text size= " 12" weight= " 600" color= " tertiary" > Blobs< / Text >
343- < Text size= " 12" weight= " 600" color= " secondary" > {{ comma (rollup .blobs_count ) }} < / Text >
378+
379+ < Tooltip position= " start" delay= " 400" >
380+ < Flex align= " center" gap= " 4" >
381+ < Text size= " 12" weight= " 600" color= " secondary" > {{ comma (rollup .blobs_count ) }} < / Text >
382+
383+ < Text size= " 12" weight= " 600" color= " tertiary" > {{ ` (${ truncateDecimalPart (rollup .blobs_count_pct * 100 , 2 )} %)` }}< / Text >
384+ < / Flex>
385+
386+ < template #content>
387+ < Flex align= " end" gap= " 8" >
388+ < Text size= " 12" weight= " 600" color= " tertiary" > Share of total blobs count< / Text >
389+
390+ < Text size= " 12" weight= " 600" color= " primary" > {{ ` (${ truncateDecimalPart (rollup .blobs_count_pct * 100 , 2 )} %)` }}< / Text >
391+ < / Flex>
392+ < / template>
393+ < / Tooltip>
344394 < / Flex>
345395
346396 < Flex align= " center" justify= " between" >
347397 < Text size= " 12" weight= " 600" color= " tertiary" > Blob Fees Paid< / Text >
348- < AmountInCurrency
349- : amount= " { value: rollup.fee }"
350- : styles= " { amount: { color: 'secondary' }, currency: { color: 'secondary' } }"
351- / >
398+
399+ < Tooltip position= " start" delay= " 400" >
400+ < Flex align= " center" gap= " 4" >
401+ < AmountInCurrency
402+ : amount= " { value: rollup.fee }"
403+ : styles= " { amount: { color: 'secondary' }, currency: { color: 'secondary' } }"
404+ / >
405+
406+ < Text size= " 12" weight= " 600" color= " tertiary" > {{ ` (${ truncateDecimalPart (rollup .fee_pct * 100 , 2 )} %)` }}< / Text >
407+ < / Flex>
408+
409+ < template #content>
410+ < Flex align= " end" gap= " 8" >
411+ < Text size= " 12" weight= " 600" color= " tertiary" > Share of total fee paid< / Text >
412+
413+ < Text size= " 12" weight= " 600" color= " primary" > {{ ` (${ truncateDecimalPart (rollup .fee_pct * 100 , 2 )} %)` }}< / Text >
414+ < / Flex>
415+ < / template>
416+ < / Tooltip>
352417 < / Flex>
353418
354419 < Flex align= " start" justify= " between" >
@@ -506,6 +571,16 @@ const handleCSVDownload = async (period) => {
506571 text- overflow: ellipsis;
507572 overflow: hidden;
508573 }
574+
575+ .link {
576+ max- width: 352px ;
577+ text- overflow: ellipsis;
578+ overflow: hidden;
579+ }
580+
581+ .link : hover {
582+ color: var (-- txt- secondary);
583+ }
509584}
510585
511586.txs_wrapper {
0 commit comments