diff --git a/src/components/events/Events.tsx b/src/components/events/Events.tsx index 0e1337a4f6..2563d98708 100644 --- a/src/components/events/Events.tsx +++ b/src/components/events/Events.tsx @@ -42,7 +42,9 @@ import { } from "../../slices/eventSlice"; import { fetchSeries } from "../../slices/seriesSlice"; import EventDetailsModal from "./partials/modals/EventDetailsModal"; -import { showModal } from "../../selectors/eventDetailsSelectors"; +import { showModal as showEventModal } from "../../selectors/eventDetailsSelectors"; +import { showModal as showSeriesModal } from "../../selectors/seriesDetailsSelectors"; +import SeriesDetailsModal from "./partials/modals/SeriesDetailsModal"; // References for detecting a click outside of the container of the dropdown menu const containerAction = React.createRef(); @@ -55,7 +57,8 @@ const Events = () => { const dispatch = useAppDispatch(); const currentFilterType = useAppSelector(state => getCurrentFilterResource(state)); - const displayEventDetailsModal = useAppSelector(state => showModal(state)); + const displayEventDetailsModal = useAppSelector(state => showEventModal(state)); + const displaySeriesDetailsModal = useAppSelector(state => showSeriesModal(state)); const [displayActionMenu, setActionMenu] = useState(false); const [displayNavigation, setNavigation] = useState(false); @@ -308,14 +311,17 @@ const Events = () => {

{t("TABLE_SUMMARY", { numberOfRows: events })}

- {/*Include table modal*/} + {/*Include table modals*/} {displayEventDetailsModal && } + {displaySeriesDetailsModal && + + } {/*Include table component*/} {/* */} -
+
diff --git a/src/components/events/Series.tsx b/src/components/events/Series.tsx index 4dcce7f070..dea46b75d3 100644 --- a/src/components/events/Series.tsx +++ b/src/components/events/Series.tsx @@ -34,6 +34,8 @@ import { showActionsSeries, } from "../../slices/seriesSlice"; import { fetchSeriesDetailsTobiraNew } from "../../slices/seriesSlice"; +import { showModal } from "../../selectors/seriesDetailsSelectors"; +import SeriesDetailsModal from "./partials/modals/SeriesDetailsModal"; // References for detecting a click outside of the container of the dropdown menu const containerAction = React.createRef(); @@ -51,6 +53,7 @@ const Series = () => { const user = useAppSelector(state => getUserInformation(state)); const currentFilterType = useAppSelector(state => getCurrentFilterResource(state)); + const displaySeriesDetailsModal = useAppSelector(state => showModal(state)); let location = useLocation(); @@ -142,11 +145,11 @@ const Series = () => { }; useHotkeys( - availableHotkeys.general.NEW_SERIES.sequence, - () => showNewSeriesModal(), + availableHotkeys.general.NEW_SERIES.sequence, + () => showNewSeriesModal(), { description: t(availableHotkeys.general.NEW_SERIES.description) ?? undefined }, - [showNewSeriesModal] - ); + [showNewSeriesModal] + ); return ( <> @@ -234,6 +237,11 @@ const Series = () => { {/* Include table view */}

{t("TABLE_SUMMARY", { numberOfRows: series })}

+ + {displaySeriesDetailsModal && + + } +
diff --git a/src/components/events/partials/EventActionCell.tsx b/src/components/events/partials/EventActionCell.tsx index 0654b63cf2..620d01770a 100644 --- a/src/components/events/partials/EventActionCell.tsx +++ b/src/components/events/partials/EventActionCell.tsx @@ -4,19 +4,12 @@ import ConfirmModal from "../../shared/ConfirmModal"; import EmbeddingCodeModal from "./modals/EmbeddingCodeModal"; import { getUserInformation } from "../../../selectors/userInfoSelectors"; import { hasAccess } from "../../../utils/utils"; -import SeriesDetailsModal from "./modals/SeriesDetailsModal"; import { EventDetailsPage } from "./modals/EventDetails"; import { useAppDispatch, useAppSelector } from "../../../store"; -import { - fetchSeriesDetailsAcls, - fetchSeriesDetailsFeeds, - fetchSeriesDetailsMetadata, - fetchSeriesDetailsTheme, - fetchSeriesDetailsThemeNames, -} from "../../../slices/seriesDetailsSlice"; +import { openModal as openSeriesModal } from "../../../slices/seriesDetailsSlice"; import { Event, deleteEvent } from "../../../slices/eventSlice"; import { Tooltip } from "../../shared/Tooltip"; -import { openModal } from "../../../slices/eventDetailsSlice"; +import { openModal as openEventModal } from "../../../slices/eventDetailsSlice"; /** * This component renders the action cells of events in the table view @@ -30,7 +23,6 @@ const EventActionCell = ({ const dispatch = useAppDispatch(); const [displayDeleteConfirmation, setDeleteConfirmation] = useState(false); - const [displaySeriesDetailsModal, setSeriesDetailsModal] = useState(false); const [displayEmbeddingCodeModal, setEmbeddingCodeModal] = useState(false); const user = useAppSelector(state => getUserInformation(state)); @@ -51,52 +43,30 @@ const EventActionCell = ({ setEmbeddingCodeModal(true); }; - const showSeriesDetailsModal = () => { - setSeriesDetailsModal(true); - }; - - const hideSeriesDetailsModal = () => { - setSeriesDetailsModal(false); - }; - const onClickSeriesDetails = async () => { if (!!row.series) { - await dispatch(fetchSeriesDetailsMetadata(row.series.id)); - await dispatch(fetchSeriesDetailsAcls(row.series.id)); - await dispatch(fetchSeriesDetailsFeeds(row.series.id)); - await dispatch(fetchSeriesDetailsTheme(row.series.id)); - await dispatch(fetchSeriesDetailsThemeNames()); - - showSeriesDetailsModal(); + await dispatch(openSeriesModal(row.series)); } }; const onClickEventDetails = () => { - dispatch(openModal(EventDetailsPage.Metadata, row)); + dispatch(openEventModal(EventDetailsPage.Metadata, row)); }; const onClickComments = () => { - dispatch(openModal(EventDetailsPage.Comments, row)); + dispatch(openEventModal(EventDetailsPage.Comments, row)); }; const onClickWorkflow = () => { - dispatch(openModal(EventDetailsPage.Workflow, row)); + dispatch(openEventModal(EventDetailsPage.Workflow, row)); }; const onClickAssets = () => { - dispatch(openModal(EventDetailsPage.Assets, row)); + dispatch(openEventModal(EventDetailsPage.Assets, row)); }; return ( <> - {!!row.series && displaySeriesDetailsModal && ( - - )} - {/* Open event details */} {hasAccess("ROLE_UI_EVENTS_DETAILS_VIEW", user) && ( diff --git a/src/components/events/partials/SeriesActionsCell.tsx b/src/components/events/partials/SeriesActionsCell.tsx index 6315c17ba8..0b858b70ce 100644 --- a/src/components/events/partials/SeriesActionsCell.tsx +++ b/src/components/events/partials/SeriesActionsCell.tsx @@ -1,15 +1,7 @@ import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import ConfirmModal from "../../shared/ConfirmModal"; -import SeriesDetailsModal from "./modals/SeriesDetailsModal"; -import { - fetchSeriesDetailsThemeNames, - fetchSeriesDetailsAcls, - fetchSeriesDetailsFeeds, - fetchSeriesDetailsMetadata, - fetchSeriesDetailsTheme, - fetchSeriesDetailsTobira, -} from "../../../slices/seriesDetailsSlice"; +import { openModal } from "../../../slices/seriesDetailsSlice"; import { getUserInformation } from "../../../selectors/userInfoSelectors"; import { hasAccess } from "../../../utils/utils"; import { @@ -37,7 +29,6 @@ const SeriesActionsCell = ({ const dispatch = useAppDispatch(); const [displayDeleteConfirmation, setDeleteConfirmation] = useState(false); - const [displaySeriesDetailsModal, setSeriesDetailsModal] = useState(false); const user = useAppSelector(state => getUserInformation(state)); const hasEvents = useAppSelector(state => getSeriesHasEvents(state)); @@ -57,41 +48,18 @@ const SeriesActionsCell = ({ dispatch(deleteSeries(id)); }; - const hideSeriesDetailsModal = () => { - setSeriesDetailsModal(false); - }; - - const showSeriesDetailsModal = async () => { - await dispatch(fetchSeriesDetailsMetadata(row.id)); - await dispatch(fetchSeriesDetailsAcls(row.id)); - await dispatch(fetchSeriesDetailsFeeds(row.id)); - await dispatch(fetchSeriesDetailsTheme(row.id)); - await dispatch(fetchSeriesDetailsThemeNames()); - await dispatch(fetchSeriesDetailsTobira(row.id)); - - setSeriesDetailsModal(true); - }; - return ( <> {/* series details */} {hasAccess("ROLE_UI_SERIES_DETAILS_VIEW", user) && (