diff --git a/frontend/src/Author/Delete/DeleteAuthorModalContent.js b/frontend/src/Author/Delete/DeleteAuthorModalContent.js index f6a94658..41a104f9 100644 --- a/frontend/src/Author/Delete/DeleteAuthorModalContent.js +++ b/frontend/src/Author/Delete/DeleteAuthorModalContent.js @@ -63,10 +63,20 @@ class DeleteAuthorModalContent extends Component { const { authorName, path, + audiobookFolder, + ebookFolder, statistics, onModalClose } = this.props; + // An author can have a separate audiobook and ebook folder (plus the legacy single path). Deleting + // with "delete files" removes all of them, so list every distinct one instead of only `path`. + // The API exposes the format folders as audiobookFolder / ebookFolder (AuthorResource) - not + // audiobookPath / ebookPath, which are null on the resource. + const paths = [path, audiobookFolder, ebookFolder] + .filter((folder) => !!folder && folder.trim() !== '') + .filter((folder, index, all) => all.indexOf(folder) === index); + const { bookFileCount, sizeOnDisk @@ -93,14 +103,21 @@ class DeleteAuthorModalContent extends Component { -
- - - {path} -
+ { + paths.map((folder) => ( +
+ + + {folder} +
+ )) + } {deleteFilesLabel} @@ -149,9 +166,13 @@ class DeleteAuthorModalContent extends Component { { deleteFiles &&
-
- {translate('TheAuthorFolderAndAllOfItsContentWillBeDeleted', [path])} -
+ { + paths.map((folder) => ( +
+ {translate('TheAuthorFolderAndAllOfItsContentWillBeDeleted', [folder])} +
+ )) + } { !!bookFileCount && @@ -182,6 +203,8 @@ class DeleteAuthorModalContent extends Component { DeleteAuthorModalContent.propTypes = { authorName: PropTypes.string.isRequired, path: PropTypes.string.isRequired, + audiobookFolder: PropTypes.string, + ebookFolder: PropTypes.string, statistics: PropTypes.object.isRequired, onDeletePress: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired