mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
* unused package cleanup * make storybook use webpack 5 * see https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack-5 * bump react, cleanup * button story tweaks * add Alert stories * bump Jest to v28.1.0 * try original storyshots initialization * split up build & test CI jobs * stop testing Node.js v14 * set jest coverage flag * downgrade paambaati/codeclimate-action again * move jest config files, remove coverageReporter override * collect coverage from `src/` only * another paambaati/codeclimate-action bump test * create additional button markup test * downgrade paambaati/codeclimate-action again * more downgrade * render default button without optional style prop * ignore some folders for Jest * full coverage for Alert * more package updates * add eslint-plugin-testing-library & eslint-plugin-jest-dom * bump ESLint packages, follow new rules * start storybook in quiet mode * update docs * test storybook build as part of CI * more testing docs clarification * add jest:watch command * add body background colors switch in toolbar * TypeScript voodoo * test codeclimate-action@v2.7.3 for default coverageCommand * downgrade codeclimate-action and running in debug mode * make coverage artifacts OS agnostic * subgraph typings as artifact for coverage job * disable coverage sending job for now Co-authored-by: Enzo Vezzaro <enzo-vezzaro@live.it>
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import React, { ReactElement } from 'react'
|
|
import filesize from 'filesize'
|
|
import classNames from 'classnames/bind'
|
|
import cleanupContentType from '@utils/cleanupContentType'
|
|
import styles from './index.module.css'
|
|
import Loader from '@shared/atoms/Loader'
|
|
import { FileMetadata } from '@oceanprotocol/lib'
|
|
|
|
const cx = classNames.bind(styles)
|
|
|
|
function LoaderArea() {
|
|
return (
|
|
<div className={styles.loaderWrap}>
|
|
<Loader />
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default function FileIcon({
|
|
file,
|
|
className,
|
|
small,
|
|
isLoading
|
|
}: {
|
|
file: FileMetadata
|
|
className?: string
|
|
small?: boolean
|
|
isLoading?: boolean
|
|
}): ReactElement {
|
|
const styleClasses = cx({
|
|
file: true,
|
|
small,
|
|
[className]: className
|
|
})
|
|
|
|
return (
|
|
<ul className={styleClasses}>
|
|
{!isLoading && file ? (
|
|
<>
|
|
{file.contentType || file.contentLength ? (
|
|
<>
|
|
<li>{cleanupContentType(file.contentType)}</li>
|
|
<li>
|
|
{file.contentLength && file.contentLength !== '0'
|
|
? filesize(Number(file.contentLength))
|
|
: ''}
|
|
</li>
|
|
</>
|
|
) : (
|
|
<li className={styles.empty}>No file info available</li>
|
|
)}
|
|
</>
|
|
) : (
|
|
<LoaderArea />
|
|
)}
|
|
</ul>
|
|
)
|
|
}
|