@@ -15,8 +15,6 @@ import { getAvatarURL } from '../../api/api';
1515import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank' ;
1616import CheckBoxIcon from '@mui/icons-material/CheckBox' ;
1717import SkeletonLoader from '../skeleton_loader/SkeletonLoader' ;
18- import ReportProblemOutlinedIcon from '@mui/icons-material/ReportProblemOutlined' ;
19-
2018import './ViewFeedbackResponses.css' ;
2119
2220const PREFIX = 'MuiCardContent' ;
@@ -90,7 +88,6 @@ const ViewFeedbackResponses = () => {
9088 ...question ,
9189 answers : question . answers . map ( answer => ( {
9290 ...answer ,
93- // Ensure blank, null, undefined, or non-string answers are handled
9491 answer : isEmptyOrWhitespace ( answer . answer ) ? ' ⚠️ No response submitted' : String ( answer . answer ) ,
9592 } ) )
9693 } ) ) ;
@@ -139,37 +136,32 @@ const ViewFeedbackResponses = () => {
139136 retrieveQuestionsAndAnswers ( query . request , csrf ) ;
140137 } , [ csrf , query . request ] ) ;
141138
142- // Sets the options for filtering by responders
143139 useEffect ( ( ) => {
144140 let allResponders = [ ] ;
145141 questionsAndAnswers . forEach ( ( { answers } ) => {
146142 const responders = answers . map ( answer => answer . responder ) ;
147143 allResponders . push ( ...responders ) ;
148144 } ) ;
149- allResponders = [ ...new Set ( allResponders ) ] ; // Remove duplicate responders
145+ allResponders = [ ...new Set ( allResponders ) ] ;
150146 setResponderOptions ( allResponders ) ;
151147 } , [ state , questionsAndAnswers ] ) ;
152148
153- // Populate all responders as selected by default
154149 useEffect ( ( ) => {
155150 setSelectedResponders ( responderOptions ) ;
156151 } , [ responderOptions ] ) ;
157152
158153 useEffect ( ( ) => {
159154 let responsesToDisplay = [ ...questionsAndAnswers ] ;
160- // Filter based on selected responders
161155 responsesToDisplay = responsesToDisplay . map ( response => {
162156 let filteredAnswers = response . answers . filter ( answer =>
163157 selectedResponders . includes ( answer . responder )
164158 ) ;
165159
166- // If no filtered answers remain after filtering recipients, display a unified error message
167160 if ( filteredAnswers . length === 0 ) {
168161 filteredAnswers = [ { answer : 'No input due to recipient filter' , responder : null } ] ;
169162 }
170163
171164 if ( searchText . trim ( ) ) {
172- // Filter based on search text
173165 filteredAnswers = filteredAnswers . filter (
174166 ( { answer } ) =>
175167 answer &&
@@ -181,9 +173,8 @@ const ViewFeedbackResponses = () => {
181173 } ) ;
182174
183175 setFilteredQuestionsAndAnswers ( responsesToDisplay ) ;
184- } , [ searchText , selectedResponders ] ) ; // eslint-disable-line react-hooks/exhaustive-deps
176+ } , [ searchText , selectedResponders ] ) ;
185177
186- // Add "No input" for questions with inputType "NONE"
187178 useEffect ( ( ) => {
188179 if ( isLoading && filteredQuestionsAndAnswers . length > 0 ) {
189180 setIsLoading ( false ) ;
@@ -313,23 +304,7 @@ const ViewFeedbackResponses = () => {
313304 </ Typography >
314305
315306 { /* If the question has no answers or inputType is "NONE" */ }
316- { ! hasResponses || question . inputType === 'NONE' ? (
317- < div className = "no-responses-found" >
318- < Typography
319- variant = "body1"
320- style = { {
321- color : 'gray' ,
322- display : 'flex' ,
323- alignItems : 'center'
324- } }
325- >
326- < ReportProblemOutlinedIcon
327- style = { { marginRight : '0.5em' } }
328- />
329- { question . inputType === 'NONE' ? 'No input available for this question.' : '⚠️ No response submitted' }
330- </ Typography >
331- </ div >
332- ) : (
307+ { ! hasResponses || question . inputType === 'NONE' ? null : (
333308 question . answers . map ( answer => (
334309 < FeedbackResponseCard
335310 key = { answer . id || answer . responder }
0 commit comments