@@ -3,10 +3,7 @@ import { styled } from '@mui/material/styles';
33import FeedbackExternalRecipientCard from '../feedback_external_recipient_card/FeedbackExternalRecipientCard' ;
44import { AppContext } from '../../context/AppContext' ;
55import {
6- selectProfile ,
7- selectCsrfToken ,
8- selectCurrentUser ,
9- selectNormalizedMembers , selectFeedbackExternalRecipient
6+ selectProfile , selectCsrfToken , selectCurrentUser , selectNormalizedMembers ,
107} from '../../context/selectors' ;
118import { putExternalRecipientInactivate , getExternalRecipients } from '../../api/feedback' ;
129import Typography from '@mui/material/Typography' ;
@@ -59,7 +56,7 @@ const propTypes = {
5956} ;
6057
6158const FeedbackExternalRecipientSelector = ( { changeQuery, fromQuery, forQuery, addExternalRecipientId } ) => {
62- const { state } = useContext ( AppContext ) ;
59+ const { state, dispatch } = useContext ( AppContext ) ;
6360 const csrf = selectCsrfToken ( state ) ;
6461 const userProfile = selectCurrentUser ( state ) ;
6562 const { id } = userProfile ;
@@ -96,39 +93,39 @@ const FeedbackExternalRecipientSelector = ({ changeQuery, fromQuery, forQuery, a
9693
9794 useEffect ( ( ) => {
9895 function bindFromURL ( ) {
99- if (
100- ! hasRenewedFromURL . current &&
101- fromQuery !== null &&
102- fromQuery !== undefined
103- ) {
104- let profileCopy = externalRecipients ;
105- if ( typeof fromQuery === 'string' ) {
106- let newProfile = { id : fromQuery } ;
107- if ( externalRecipients . filter ( externalRecipient => externalRecipient . id === newProfile . id ) . length === 0 ) {
108- profileCopy . push ( newProfile ) ;
109- }
110- } else if ( Array . isArray ( fromQuery ) ) {
111- for ( let i = 0 ; i < fromQuery . length ; ++ i ) {
112- let newProfile = { id : fromQuery [ i ] } ;
113- if ( externalRecipients . filter ( externalRecipient => externalRecipient . id === newProfile . id ) . length === 0 ) {
114- profileCopy . push ( newProfile ) ;
96+ if (
97+ ! hasRenewedFromURL . current &&
98+ fromQuery !== null &&
99+ fromQuery !== undefined
100+ ) {
101+ let profileCopy = externalRecipients ;
102+ if ( typeof fromQuery === 'string' ) {
103+ let newProfile = { id : fromQuery } ;
104+ if ( externalRecipients . filter ( externalRecipient => externalRecipient . id === newProfile . id ) . length === 0 ) {
105+ profileCopy . push ( newProfile ) ;
106+ }
107+ } else if ( Array . isArray ( fromQuery ) ) {
108+ for ( let i = 0 ; i < fromQuery . length ; ++ i ) {
109+ let newProfile = { id : fromQuery [ i ] } ;
110+ if ( externalRecipients . filter ( externalRecipient => externalRecipient . id === newProfile . id ) . length === 0 ) {
111+ profileCopy . push ( newProfile ) ;
112+ }
113+ }
114+ }
115+ setExternalRecipients ( profileCopy ) ;
116+ hasRenewedFromURL . current = true ;
115117 }
116- }
117- }
118- setExternalRecipients ( profileCopy ) ;
119- hasRenewedFromURL . current = true ;
120- }
121118 }
122119
123120 async function getExternalRecipientsForSelector ( ) {
124- if ( forQuery === undefined || forQuery === null ) {
125- return ;
126- }
127- let res = await getExternalRecipients ( csrf ) ;
128- if ( res && res . payload ) {
129- return res . payload . data && ! res . error ? res . payload . data : undefined ;
130- }
131- return null ;
121+ if ( forQuery === undefined || forQuery === null ) {
122+ return ;
123+ }
124+ let res = await getExternalRecipients ( csrf ) ;
125+ if ( res && res . payload ) {
126+ return res . payload . data && ! res . error ? res . payload . data : undefined ;
127+ }
128+ return null ;
132129 }
133130
134131 if ( csrf && ( searchText === '' || searchText . length === 0 ) ) {
@@ -157,7 +154,6 @@ const FeedbackExternalRecipientSelector = ({ changeQuery, fromQuery, forQuery, a
157154 } else {
158155 fromQuery . push ( id ) ;
159156 }
160- console . log ( "FeedbackExternalRecipientSelector.jsx, cardClickHandler, 02 - fromQuery: " , fromQuery ) ;
161157 changeQuery ( 'from' , fromQuery ) ;
162158 hasRenewedFromURL . current = false ;
163159 } ;
@@ -263,8 +259,13 @@ const FeedbackExternalRecipientSelector = ({ changeQuery, fromQuery, forQuery, a
263259 } else if ( feedbackExternalRecipientRes . payload && feedbackExternalRecipientRes . payload . data ) {
264260 newRecipient . id = feedbackExternalRecipientRes . payload . data . id ;
265261 console . log ( "FeedbackExternalRecipientSelector.jsx, handleNewRecipientSubmit, newRecipient: " , newRecipient ) ;
266- setExternalRecipients ( [ ...externalRecipients , newRecipient ] ) ;
262+ // setExternalRecipients([...externalRecipients, newRecipient]);
267263 addExternalRecipientId ( newRecipient . id ) ;
264+ const updatedRecipients = await getExternalRecipients ( csrf ) ;
265+ console . log ( "FeedbackExternalRecipientSelector.jsx, handleNewRecipientSubmit, updatedRecipients: " , updatedRecipients ) ;
266+ if ( updatedRecipients && updatedRecipients . payload ) {
267+ setExternalRecipients ( updatedRecipients . payload . data ) ;
268+ }
268269 handleNewRecipientClose ( ) ;
269270 }
270271 } ;
0 commit comments