@@ -2,30 +2,32 @@ import React, { useRef, useState } from "react";
22import { useTranslation } from "react-i18next" ;
33import SeriesDetails from "./SeriesDetails" ;
44import { removeNotificationWizardForm } from "../../../../slices/notificationSlice" ;
5- import { useAppDispatch } from "../../../../store" ;
6- import { Modal , ModalHandle } from "../../../shared/modals/Modal" ;
5+ import { useAppDispatch , useAppSelector } from "../../../../store" ;
6+ import { Modal } from "../../../shared/modals/Modal" ;
77import { confirmUnsaved } from "../../../../utils/utils" ;
88import { FormikProps } from "formik" ;
9+ import { setModalSeries , setShowModal } from "../../../../slices/seriesDetailsSlice" ;
10+ import { getModalSeries , showModal } from "../../../../selectors/seriesDetailsSelectors" ;
911
1012/**
1113 * This component renders the modal for displaying series details
1214 */
13- const SeriesDetailsModal = ( {
14- seriesTitle,
15- seriesId,
16- modalRef,
17- } : {
18- seriesTitle : string
19- seriesId : string
20- modalRef : React . RefObject < ModalHandle | null >
21- } ) => {
15+ const SeriesDetailsModal = ( ) => {
2216 const { t } = useTranslation ( ) ;
2317 const dispatch = useAppDispatch ( ) ;
2418
2519 // tracks, whether the policies are different to the initial value
2620 const [ policyChanged , setPolicyChanged ] = useState ( false ) ;
2721 const formikRef = useRef < FormikProps < any > > ( null ) ;
2822
23+ const displaySeriesDetailsModal = useAppSelector ( state => showModal ( state ) ) ;
24+ const series = useAppSelector ( state => getModalSeries ( state ) ) ! ;
25+
26+ const hideModal = ( ) => {
27+ dispatch ( setModalSeries ( null ) ) ;
28+ dispatch ( setShowModal ( false ) ) ;
29+ } ;
30+
2931 const close = ( ) => {
3032 let isUnsavedChanges = false
3133 isUnsavedChanges = policyChanged
@@ -36,25 +38,30 @@ const SeriesDetailsModal = ({
3638 if ( ! isUnsavedChanges || confirmUnsaved ( t ) ) {
3739 setPolicyChanged ( false ) ;
3840 dispatch ( removeNotificationWizardForm ( ) ) ;
41+ hideModal ( ) ;
3942 return true ;
4043 }
4144 return false ;
4245 } ;
4346
4447 return (
45- < Modal
46- closeCallback = { close }
47- header = { t ( "EVENTS.SERIES.DETAILS.HEADER" , { name : seriesTitle } ) }
48- classId = "details-modal"
49- ref = { modalRef }
50- >
51- < SeriesDetails
52- seriesId = { seriesId }
53- policyChanged = { policyChanged }
54- setPolicyChanged = { ( value ) => setPolicyChanged ( value ) }
55- formikRef = { formikRef }
56- />
57- </ Modal >
48+ < >
49+ { displaySeriesDetailsModal &&
50+ < Modal
51+ open
52+ closeCallback = { close }
53+ header = { t ( "EVENTS.SERIES.DETAILS.HEADER" , { name : series . title } ) }
54+ classId = "details-modal"
55+ >
56+ < SeriesDetails
57+ seriesId = { series . id }
58+ policyChanged = { policyChanged }
59+ setPolicyChanged = { ( value ) => setPolicyChanged ( value ) }
60+ formikRef = { formikRef }
61+ />
62+ </ Modal >
63+ }
64+ </ >
5865 ) ;
5966} ;
6067
0 commit comments