New: Combine mass editor and author editor, enable book editor

This commit is contained in:
ta264
2021-11-21 18:31:03 +00:00
parent d460cbf319
commit 615acdaebe
45 changed files with 1122 additions and 931 deletions
+7 -7
View File
@@ -55,7 +55,7 @@ class AuthorDetails extends Component {
isDeleteAuthorModalOpen: false,
isInteractiveImportModalOpen: false,
isMonitorOptionsModalOpen: false,
isBookEditorActive: false,
isEditorActive: false,
allExpanded: false,
allCollapsed: false,
expandedState: {},
@@ -160,7 +160,7 @@ class AuthorDetails extends Component {
}
onBookEditorTogglePress = () => {
this.setState({ isBookEditorActive: !this.state.isBookEditorActive });
this.setState({ isEditorActive: !this.state.isEditorActive });
}
onExpandAllPress = () => {
@@ -249,7 +249,7 @@ class AuthorDetails extends Component {
isDeleteAuthorModalOpen,
isInteractiveImportModalOpen,
isMonitorOptionsModalOpen,
isBookEditorActive,
isEditorActive,
allSelected,
selectedState,
allExpanded,
@@ -335,7 +335,7 @@ class AuthorDetails extends Component {
<PageToolbarSeparator />
{
isBookEditorActive ?
isEditorActive ?
<PageToolbarButton
label={translate('BookList')}
iconName={icons.AUTHOR_CONTINUING}
@@ -349,7 +349,7 @@ class AuthorDetails extends Component {
}
{
isBookEditorActive ?
isEditorActive ?
<PageToolbarButton
label={allSelected ? translate('UnselectAll') : translate('SelectAll')}
iconName={icons.CHECK_SQUARE}
@@ -487,7 +487,7 @@ class AuthorDetails extends Component {
onExpandPress={this.onExpandPress}
setSelectedState={this.setSelectedState}
onSelectedChange={this.onSelectedChange}
isBookEditorActive={isBookEditorActive}
isEditorActive={isEditorActive}
/>
</TabPanel>
@@ -585,7 +585,7 @@ class AuthorDetails extends Component {
</PageContentBody>
{
isBookEditorActive &&
isEditorActive &&
<BookEditorFooter
bookIds={selectedBookIds}
selectedCount={selectedBookIds.length}
@@ -6,8 +6,8 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import * as commandNames from 'Commands/commandNames';
import { toggleAuthorMonitored } from 'Store/Actions/authorActions';
import { saveBookEditor } from 'Store/Actions/bookEditorActions';
import { clearBookFiles, fetchBookFiles } from 'Store/Actions/bookFileActions';
import { saveBookEditor } from 'Store/Actions/bookIndexActions';
import { executeCommand } from 'Store/Actions/commandActions';
import { clearQueueDetails, fetchQueueDetails } from 'Store/Actions/queueActions';
import { cancelFetchReleases, clearReleases } from 'Store/Actions/releaseActions';
@@ -22,8 +22,8 @@ import AuthorDetails from './AuthorDetails';
const selectBooks = createSelector(
(state) => state.books,
(state) => state.bookEditor,
(books, editor) => {
(state) => state.bookIndex,
(books, index) => {
const {
items,
isFetching,
@@ -31,6 +31,13 @@ const selectBooks = createSelector(
error
} = books;
const {
isSaving,
saveError,
isDeleting,
deleteError
} = index;
const hasBooks = !!items.length;
const hasMonitoredBooks = items.some((e) => e.monitored);
@@ -40,7 +47,10 @@ const selectBooks = createSelector(
booksError: error,
hasBooks,
hasMonitoredBooks,
...editor
isSaving,
saveError,
isDeleting,
deleteError
};
}
);
@@ -112,7 +122,11 @@ function createMapStateToProps() {
isBooksPopulated,
booksError,
hasBooks,
hasMonitoredBooks
hasMonitoredBooks,
isSaving,
saveError,
isDeleting,
deleteError
} = books;
const {
@@ -172,6 +186,10 @@ function createMapStateToProps() {
isFetching,
isPopulated,
booksError,
isSaving,
saveError,
isDeleting,
deleteError,
seriesError,
bookFilesError,
hasBooks,
@@ -78,7 +78,7 @@ class AuthorDetailsSeason extends Component {
render() {
const {
items,
isBookEditorActive,
isEditorActive,
columns,
sortKey,
sortDirection,
@@ -88,7 +88,7 @@ class AuthorDetailsSeason extends Component {
} = this.props;
let titleColumns = columns;
if (!isBookEditorActive) {
if (!isEditorActive) {
titleColumns = columns.filter((x) => x.name !== 'select');
}
@@ -113,7 +113,7 @@ class AuthorDetailsSeason extends Component {
columns={columns}
{...item}
onMonitorBookPress={this.onMonitorBookPress}
isBookEditorActive={isBookEditorActive}
isEditorActive={isEditorActive}
isSelected={selectedState[item.id]}
onSelectedChange={this.onSelectedChange}
/>
@@ -132,7 +132,7 @@ AuthorDetailsSeason.propTypes = {
sortKey: PropTypes.string,
sortDirection: PropTypes.oneOf(sortDirections.all),
items: PropTypes.arrayOf(PropTypes.object).isRequired,
isBookEditorActive: PropTypes.bool.isRequired,
isEditorActive: PropTypes.bool.isRequired,
selectedState: PropTypes.object.isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onTableOptionChange: PropTypes.func.isRequired,
+3 -3
View File
@@ -66,7 +66,7 @@ class BookRow extends Component {
authorMonitored,
titleSlug,
bookFiles,
isBookEditorActive,
isEditorActive,
isSelected,
onSelectedChange,
columns
@@ -88,7 +88,7 @@ class BookRow extends Component {
return null;
}
if (isBookEditorActive && name === 'select') {
if (isEditorActive && name === 'select') {
return (
<TableSelectCell
key={name}
@@ -236,7 +236,7 @@ BookRow.propTypes = {
isSaving: PropTypes.bool,
authorMonitored: PropTypes.bool.isRequired,
bookFiles: PropTypes.arrayOf(PropTypes.object).isRequired,
isBookEditorActive: PropTypes.bool.isRequired,
isEditorActive: PropTypes.bool.isRequired,
isSelected: PropTypes.bool,
onSelectedChange: PropTypes.func.isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,