519c411db0
* feat: sync and update with all changes from fork * refactor: extract clipboard copy logic into custom hook * fix: correct spelling of DEFAULT_REFRESH_FREQUENCY_MS in Stamps and WalletBalance providers * refactor(ui-tests): replace fixed sleeps with condition-based waits * fix: handle null values for size and granteeCount in infoGroups * fix(lint): add newline at end of file in useClipboardCopy hook * fix(ui-tests): page.goto URL * refactor: update import paths for useClipboardCopy --------- Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
26 lines
694 B
TypeScript
26 lines
694 B
TypeScript
import { ReactElement } from 'react'
|
|
import FileIcon from 'remixicon-react/FileTextLineIcon'
|
|
import ImageIcon from 'remixicon-react/Image2LineIcon'
|
|
|
|
import { guessMime } from './view'
|
|
|
|
interface ContextMenuProps {
|
|
name: string
|
|
metadata?: Record<string, string>
|
|
size?: string
|
|
color?: string
|
|
}
|
|
|
|
export function GetIconElement({ name, metadata, size = '21px', color = '#ed8131' }: ContextMenuProps): ReactElement {
|
|
const { mime } = guessMime(name, metadata)
|
|
|
|
const iconType = mime.split('/')[0]?.toLowerCase() || 'file'
|
|
|
|
switch (iconType) {
|
|
case 'image':
|
|
return <ImageIcon size={size} color={color} />
|
|
default:
|
|
return <FileIcon size={size} color={color} />
|
|
}
|
|
}
|