[bulk publish] Deselect entries after publishing (#17402)

This commit is contained in:
markkaylor 2023-07-24 10:57:30 +02:00 committed by GitHub
commit 567b3f6439
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -221,7 +221,12 @@ const BoldChunk = (chunks) => <Typography fontWeight="bold">{chunks}</Typography
* SelectedEntriesModalContent * SelectedEntriesModalContent
* -----------------------------------------------------------------------------------------------*/ * -----------------------------------------------------------------------------------------------*/
const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntriesToFetch }) => { const SelectedEntriesModalContent = ({
toggleModal,
refetchModalData,
setEntriesToFetch,
setSelectedListViewEntries,
}) => {
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
const { selectedEntries, rows, onSelectRow, isLoading, isFetching } = useTableContext(); const { selectedEntries, rows, onSelectRow, isLoading, isFetching } = useTableContext();
const [isDialogOpen, setIsDialogOpen] = React.useState(false); const [isDialogOpen, setIsDialogOpen] = React.useState(false);
@ -257,8 +262,11 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
}); });
setRowsToDisplay(update); setRowsToDisplay(update);
const publishedIds = update.map(({ entity }) => entity.id);
// Set the parent's entries to fetch when clicking refresh // Set the parent's entries to fetch when clicking refresh
setEntriesToFetch(update.map(({ entity }) => entity.id)); setEntriesToFetch(publishedIds);
// Deselect the entries that were published in the list view
setSelectedListViewEntries(publishedIds);
if (update.length === 0) { if (update.length === 0) {
toggleModal(); toggleModal();
@ -386,6 +394,7 @@ SelectedEntriesModalContent.propTypes = {
toggleModal: PropTypes.func.isRequired, toggleModal: PropTypes.func.isRequired,
refetchModalData: PropTypes.func.isRequired, refetchModalData: PropTypes.func.isRequired,
setEntriesToFetch: PropTypes.func.isRequired, setEntriesToFetch: PropTypes.func.isRequired,
setSelectedListViewEntries: PropTypes.func.isRequired,
}; };
/* ------------------------------------------------------------------------------------------------- /* -------------------------------------------------------------------------------------------------
@ -393,7 +402,10 @@ SelectedEntriesModalContent.propTypes = {
* -----------------------------------------------------------------------------------------------*/ * -----------------------------------------------------------------------------------------------*/
const SelectedEntriesModal = ({ onToggle }) => { const SelectedEntriesModal = ({ onToggle }) => {
const { selectedEntries: selectedListViewEntries } = useTableContext(); const {
selectedEntries: selectedListViewEntries,
setSelectedEntries: setSelectedListViewEntries,
} = useTableContext();
const { contentType, components } = useSelector(listViewDomain()); const { contentType, components } = useSelector(listViewDomain());
// The child table will update this value based on the entries that were published // The child table will update this value based on the entries that were published
const [entriesToFetch, setEntriesToFetch] = React.useState(selectedListViewEntries); const [entriesToFetch, setEntriesToFetch] = React.useState(selectedListViewEntries);
@ -455,6 +467,7 @@ const SelectedEntriesModal = ({ onToggle }) => {
isFetching={isFetching} isFetching={isFetching}
> >
<SelectedEntriesModalContent <SelectedEntriesModalContent
setSelectedListViewEntries={setSelectedListViewEntries}
setEntriesToFetch={setEntriesToFetch} setEntriesToFetch={setEntriesToFetch}
toggleModal={onToggle} toggleModal={onToggle}
refetchModalData={refetch} refetchModalData={refetch}