@@ -9,24 +9,8 @@ import Tooltip from '@codesandbox/common/lib/components/Tooltip';
99
1010import { EntryContainer , IconArea , Icon } from '../../elements' ;
1111import { Link } from '../elements' ;
12- import { Version , MoreData , VersionSelect } from './elements' ;
13-
14- const formatSize = value => {
15- let unit ;
16- let size ;
17- if ( Math . log10 ( value ) < 3 ) {
18- unit = 'B' ;
19- size = value ;
20- } else if ( Math . log10 ( value ) < 6 ) {
21- unit = 'kB' ;
22- size = value / 1024 ;
23- } else {
24- unit = 'mB' ;
25- size = value / 1024 / 1024 ;
26- }
27-
28- return { unit, size : parseFloat ( size ) . toFixed ( 1 ) } ;
29- } ;
12+ import { Version , VersionSelect } from './elements' ;
13+ import { BundleSizes } from './BundleSizes' ;
3014
3115export default class VersionEntry extends React . PureComponent {
3216 state = {
@@ -49,27 +33,6 @@ export default class VersionEntry extends React.PureComponent {
4933 } ) ;
5034 }
5135
52- getSizeForPKG ( pkg ) {
53- fetch ( `https://bundlephobia.com/api/size?package=${ pkg } ` )
54- . then ( response => {
55- if ( ! response . ok ) {
56- throw new Error ( 'Bad request' ) ;
57- }
58-
59- return response . json ( ) ;
60- } )
61- . then ( size =>
62- this . setState ( {
63- size,
64- } )
65- )
66- . catch ( err => {
67- if ( process . env . NODE_ENV === 'development' ) {
68- console . error ( err ) ; // eslint-disable-line no-console
69- }
70- } ) ;
71- }
72-
7336 UNSAFE_componentWillMount ( ) {
7437 const { dependencies, dependency } = this . props ;
7538 const client = algoliasearch (
@@ -93,10 +56,6 @@ export default class VersionEntry extends React.PureComponent {
9356 try {
9457 const versionRegex = / ^ \d { 1 , 3 } \. \d { 1 , 3 } .\d { 1 , 3 } $ / ;
9558 const version = dependencies [ dependency ] ;
96- const cleanVersion = version . split ( '^' ) ;
97- this . getSizeForPKG (
98- `${ dependency } @${ cleanVersion [ cleanVersion . length - 1 ] } `
99- ) ;
10059 if ( ! versionRegex . test ( version ) ) {
10160 this . setVersionsForLatestPkg ( `${ dependency } @${ version } ` ) ;
10261 }
@@ -160,16 +119,14 @@ export default class VersionEntry extends React.PureComponent {
160119
161120 { hovering && (
162121 < IconArea >
163- { size . size ? (
164- < Tooltip
165- content = { open ? 'Hide sizes' : 'Show sizes' }
166- style = { { outline : 'none' } }
167- >
168- < Icon onClick = { this . handleOpen } >
169- { open ? < ArrowDropUp /> : < ArrowDropDown /> }
170- </ Icon >
171- </ Tooltip >
172- ) : null }
122+ < Tooltip
123+ content = { open ? 'Hide sizes' : 'Show sizes' }
124+ style = { { outline : 'none' } }
125+ >
126+ < Icon onClick = { this . handleOpen } >
127+ { open ? < ArrowDropUp /> : < ArrowDropDown /> }
128+ </ Icon >
129+ </ Tooltip >
173130 < Tooltip content = "Update to latest" style = { { outline : 'none' } } >
174131 < Icon onClick = { this . handleRefresh } >
175132 < RefreshIcon />
@@ -184,16 +141,10 @@ export default class VersionEntry extends React.PureComponent {
184141 ) }
185142 </ EntryContainer >
186143 { open ? (
187- < MoreData >
188- < li >
189- < span > Gzip:</ span > { formatSize ( size . gzip ) . size }
190- { formatSize ( size . gzip ) . unit }
191- </ li >
192- < li >
193- < span > Size:</ span > { formatSize ( size . size ) . size }
194- { formatSize ( size . size ) . unit }
195- </ li >
196- </ MoreData >
144+ < BundleSizes
145+ dependency = { dependency }
146+ version = { dependencies [ dependency ] }
147+ />
197148 ) : null }
198149 </ Fragment >
199150 ) ;
0 commit comments