Skip to content

Commit

Permalink
refactor(FileName): Extract logic to split name into its own function
Browse files Browse the repository at this point in the history
  • Loading branch information
cballevre committed Oct 25, 2024
1 parent 598ad0b commit 6b4aafd
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 37 deletions.
40 changes: 3 additions & 37 deletions src/modules/filelist/cells/FileName.jsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
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'
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'

Expand Down Expand Up @@ -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 (
<TableCell className={classes}>
Expand Down
43 changes: 43 additions & 0 deletions src/modules/filelist/helpers.ts
Original file line number Diff line number Diff line change
@@ -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
}
}

0 comments on commit 6b4aafd

Please sign in to comment.