import { h, Component } from 'preact'; import * as prettyBytes from 'pretty-bytes'; import * as style from './style.scss'; interface Props { blob: Blob; compareTo?: Blob; } interface State {} export default class FileSize extends Component { render({ blob, compareTo }: Props) { let comparison: JSX.Element | undefined; if (compareTo) { const delta = blob.size / compareTo.size; if (delta > 1) { const percent = Math.round((delta - 1) * 100) + '%'; comparison = ( {percent === '0%' ? 'slightly' : percent} bigger ); } else if (delta < 1) { const percent = Math.round((1 - delta) * 100) + '%'; comparison = ( {percent === '0%' ? 'slightly' : percent} smaller ); } else { comparison = no change; } } return ( {prettyBytes(blob.size)} {comparison} ); } }