@ -3,15 +3,15 @@
* SPDX - License - Identifier : AGPL - 3.0 - or - later
* /
import { FileType , type Node } from '@nextcloud/files'
import { translate as t , translatePlural as n } from '@nextcloud/l10n'
import { n } from '@nextcloud/l10n'
/ * *
* Extract dir and name from file path
*
* @param { string } path t he full path
* @return { string [ ] } [ dirPath , fileName ]
* @param path - T he full path
* @return [ dirPath , fileName ]
* /
export const extractFilePaths = function ( path ) {
export function extractFilePaths ( path : string ) : [ string , string ] {
const pathSections = path . split ( '/' )
const fileName = pathSections [ pathSections . length - 1 ]
const dirPath = pathSections . slice ( 0 , pathSections . length - 1 ) . join ( '/' )
@ -20,32 +20,28 @@ export const extractFilePaths = function(path) {
/ * *
* Generate a translated summary of an array of nodes
* @param { Node [ ] } nodes the nodes to summarize
* @param { number } hidden the number of hidden nodes
* @return { string }
*
* @param nodes - The nodes to summarize
* @param hidden - The number of hidden nodes
* /
export const getSummaryFor = ( nodes : Node [ ] , hidden = 0 ) : string = > {
export function getSummaryFor ( nodes : Node [ ] , hidden = 0 ) : string {
const fileCount = nodes . filter ( node = > node . type === FileType . File ) . length
const folderCount = nodes . filter ( node = > node . type === FileType . Folder ) . length
let summary = ''
if ( fileCount === 0 ) {
summary = n ( 'files' , '{folderCount} folder' , '{folderCount} folders' , folderCount , { folderCount } )
} else if ( folderCount === 0 ) {
summary = n ( 'files' , '{fileCount} file' , '{fileCount} files' , fileCount , { fileCount } )
} else if ( fileCount === 1 ) {
summary = n ( 'files' , '1 file and {folderCount} folder' , '1 file and {folderCount} folders' , folderCount , { folderCount } )
} else if ( folderCount === 1 ) {
summary = n ( 'files' , '{fileCount} file and 1 folder' , '{fileCount} files and 1 folder' , fileCount , { fileCount } )
} else {
summary = t ( 'files' , '{fileCount} files and {folderCount} folders' , { fileCount , folderCount } )
const summary : string [ ] = [ ]
if ( fileCount > 0 || folderCount === 0 ) {
const fileSummary = n ( 'files' , '%n file' , '%n files' , fileCount )
summary . push ( fileSummary )
}
if ( folderCount > 0 ) {
const folderSummary = n ( 'files' , '%n folder' , '%n folders' , folderCount )
summary . push ( folderSummary )
}
if ( hidden > 0 ) {
// TRANSLATORS: This is a summary of files and folders, where {hiddenFilesAndFolders} is the number of hidden files and folders
summary += ' ' + n ( 'files' , '(%n hidden)' , ' (%n hidden)' , hidden )
// TRANSLATORS: This is the number of hidden files or folders
const hiddenSummary = n ( 'files' , '%n hidden' , '%n hidden' , hidden )
summary . push ( hiddenSummary )
}
return summary
return summary . join ( ' · ' )
}