/** * @author Timur Kuzhagaliyev * @copyright 2020 * @license MIT */ import React from 'react'; import { Nullable } from 'tsdef'; import { FileData } from '../../types/file.types'; import { makeLocalChonkyStyles } from '../../util/styles'; import { useFileNameComponent, useLabelComponent, useModifierIconComponents } from './FileEntry-hooks'; export interface FileEntryNameProps { file: Nullable; className?: string; shortenFileName: boolean; } export const FileEntryName: React.FC = React.memo(({ file, className, shortenFileName }) => { const modifierIconComponents = useModifierIconComponents(file); const fileNameComponent = useFileNameComponent(file, shortenFileName); const labelComponent = useLabelComponent(file); const classes = useStyles(); return ( {modifierIconComponents.length > 0 && {modifierIconComponents}} {file?.encrypted? {fileNameComponent} : fileNameComponent} {labelComponent} ); }); FileEntryName.displayName = 'FileEntryName'; const useStyles = makeLocalChonkyStyles((theme) => ({ modifierIcons: { color: theme.palette.text.primary, position: 'relative', fontSize: '0.775em', paddingRight: 5, }, }));