diff --git a/src/modules/filelist/cells/FileName.jsx b/src/modules/filelist/cells/FileName.jsx index b4122d8d7c..2375771844 100644 --- a/src/modules/filelist/cells/FileName.jsx +++ b/src/modules/filelist/cells/FileName.jsx @@ -1,12 +1,10 @@ import cx from 'classnames' import get from 'lodash/get' -import { CozyFile } from 'models' -import React, { useCallback, useMemo } from 'react' +import React, { useCallback } from 'react' import { Link } from 'react-router-dom' import { useClient } from 'cozy-client' import { isDirectory } from 'cozy-client/dist/models/file' -import flag from 'cozy-flags' import AppIcon from 'cozy-ui/transpiled/react/AppIcon' import Icon from 'cozy-ui/transpiled/react/Icon' import CarbonCopyIcon from 'cozy-ui/transpiled/react/Icons/CarbonCopy' @@ -14,8 +12,8 @@ import MidEllipsis from 'cozy-ui/transpiled/react/MidEllipsis' import { TableCell } from 'cozy-ui/transpiled/react/deprecated/Table' import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n' -import { TRASH_DIR_ID } from 'constants/config' import RenameInput from 'modules/drive/RenameInput' +import { getFileNameAndExtension } from 'modules/filelist/helpers' import styles from 'styles/filelist.styl' @@ -93,39 +91,7 @@ const FileName = ({ { [styles['fil-content-row-disabled']]: isInSyncFromSharing } ) - const { title, filename, extension } = useMemo(() => { - const { filename, extension } = CozyFile.splitFilename(attributes) - - if (attributes._id === TRASH_DIR_ID) { - return { - title: t('FileName.trash'), - filename: t('FileName.trash') - } - } - - if (attributes._id === 'io.cozy.files.shared-drives-dir') { - return { - title: t('FileName.sharedDrive'), - filename: t('FileName.sharedDrive') - } - } - - if ( - attributes.cozyMetadata?.createdByApp === 'nextcloud' && - !flag('drive.hide-nextcloud-dev') - ) { - return { - title: filename, - filename: filename - } - } - - return { - title: attributes.name, - filename, - extension - } - }, [attributes, t]) + const { title, filename, extension } = getFileNameAndExtension(attributes, t) return ( diff --git a/src/modules/filelist/helpers.ts b/src/modules/filelist/helpers.ts new file mode 100644 index 0000000000..7bb7ce63df --- /dev/null +++ b/src/modules/filelist/helpers.ts @@ -0,0 +1,43 @@ +import { splitFilename } from 'cozy-client/dist/models/file' + +import type { File } from 'components/FolderPicker/types' +import { TRASH_DIR_ID } from 'constants/config' +import { isNextcloudShortcut } from 'modules/nextcloud/helpers' + +export const getFileNameAndExtension = ( + file: File, + t: (key: string) => string +): { + title: string + filename: string + extension?: string +} => { + const { filename, extension } = splitFilename(file) + + if (file._id === TRASH_DIR_ID) { + return { + title: t('FileName.trash'), + filename: t('FileName.trash') + } + } + + if (file._id === 'io.cozy.files.shared-drives-dir') { + return { + title: t('FileName.sharedDrive'), + filename: t('FileName.sharedDrive') + } + } + + if (file._type === 'io.cozy.files' && isNextcloudShortcut(file)) { + return { + title: filename, + filename: filename + } + } + + return { + title: file.name, + filename, + extension + } +}