Skip to content

Commit 9fb60fa

Browse files
committed
Removed cards under non-input questions
1 parent dafe0f3 commit 9fb60fa

File tree

2 files changed

+11
-39
lines changed

2 files changed

+11
-39
lines changed

web-ui/src/components/view_feedback_responses/ViewFeedbackResponses.jsx

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ import { getAvatarURL } from '../../api/api';
1515
import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
1616
import CheckBoxIcon from '@mui/icons-material/CheckBox';
1717
import SkeletonLoader from '../skeleton_loader/SkeletonLoader';
18-
import ReportProblemOutlinedIcon from '@mui/icons-material/ReportProblemOutlined';
19-
2018
import './ViewFeedbackResponses.css';
2119

2220
const 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}

web-ui/src/components/view_feedback_responses/feedback_response_card/FeedbackResponseCard.jsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,9 @@ const FeedbackResponseCard = props => {
2121
const { state } = useContext(AppContext);
2222
const userInfo = selectProfile(state, props.responderId);
2323

24-
// Handle different input types and answer values
2524
const getFormattedAnswer = () => {
26-
if (props.answer === 'No input due to recipient filter') {
27-
return props.answer;
28-
}
29-
3025
if (props.inputType === 'NONE') {
31-
return 'No input'; // Display "No input" if the question input type is "NONE"
26+
return null; // Return null to display nothing
3227
}
3328

3429
// Return fallback if the answer is null, undefined, or empty
@@ -49,11 +44,13 @@ const FeedbackResponseCard = props => {
4944
/>
5045
<Typography className="responder-name">{userInfo?.name}</Typography>
5146
</div>
52-
<FeedbackAnswerInput
53-
inputType={props.inputType}
54-
readOnly
55-
answer={getFormattedAnswer()} // Ensure the proper message is displayed
56-
/>
47+
{props.inputType !== 'NONE' && (
48+
<FeedbackAnswerInput
49+
inputType={props.inputType}
50+
readOnly
51+
answer={getFormattedAnswer()} // Ensure the proper message is displayed
52+
/>
53+
)}
5754
</CardContent>
5855
</Card>
5956
);

0 commit comments

Comments
 (0)