From c161a5f0ca0969d72e0b87fd251bae7b28b7713a Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Wed, 17 Apr 2024 14:07:39 +0300 Subject: [PATCH] proper handling of feedback types --- components/reports/FeedbackForm.js | 8 ++++---- pages/cart/reports/list.tsx | 26 +++++++++++++++++++++----- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/components/reports/FeedbackForm.js b/components/reports/FeedbackForm.js index a16a40c..cec9532 100644 --- a/components/reports/FeedbackForm.js +++ b/components/reports/FeedbackForm.js @@ -55,7 +55,7 @@ export default function FeedbackForm({ publisherId, onDone }) { assignmentId: 0, publisherId: publisherId, date: new Date(), - placementCount: 0, + placementCount: 1, videoCount: 0, returnVisitInfoCount: 0, conversationCount: 0 @@ -72,9 +72,9 @@ export default function FeedbackForm({ publisherId, onDone }) { const handleSubmit = async (e) => { e.preventDefault(); - item. - item.publisher = { connect: { id: pubId } }; - item.type = ReportType.Feedback; + item.publisher = { connect: { id: pubId } }; + //ToDo: create dedicated feedback type instead of using placementCount for subtype + item.type = item.placementCount === 1 ? ReportType.Feedback_Problem : (item.placementCount === 2 ? ReportType.Feedback_Suggestion : ReportType.Feedback); delete item.assignmentId; try { diff --git a/pages/cart/reports/list.tsx b/pages/cart/reports/list.tsx index f168e18..fc6d47c 100644 --- a/pages/cart/reports/list.tsx +++ b/pages/cart/reports/list.tsx @@ -14,6 +14,8 @@ import { Location, UserRole, ReportType } from "@prisma/client"; export default function Reports() { const [reports, setReports] = useState([]); + const [filteredReports, setFilteredReports] = useState([]); + const router = useRouter(); const { data: session } = useSession(); @@ -24,10 +26,17 @@ export default function Reports() { console.log("event filter set to:" + event.target.value); }; - const [filteredReports, setFilteredReports] = useState([]); useEffect(() => { - setFilteredReports(reports.filter(report => report.type === filterType)); + const isFeedbackType = type => [ + 'Feedback_Problem', + 'Feedback_Suggestion', + 'Feedback' + ].includes(type); + + setFilteredReports(reports.filter(report => + filterType === 'Feedback' ? isFeedbackType(report.type) : report.type === filterType + )); }, [reports, filterType]); const deleteReport = (id) => { @@ -117,7 +126,7 @@ export default function Reports() { {common.getDateFormated(new Date(report.date))} {report.location?.name} - {(report.experienceInfo === null || report.experienceInfo === "") + {(report.type === ReportType.ServiceReport) ? ( <>
Отчет
@@ -126,9 +135,16 @@ export default function Reports() { Клипове: {report.videoCount}
Адреси / Телефони: {report.returnVisitInfoCount}
- ) : (report.placementCount > 0) ? ( + ) : (report.type === ReportType.Feedback || report.type === ReportType.Feedback_Problem || report.type === ReportType.Feedback_Suggestion) ? ( <> -
Отзив
+
+ Отзив + {report.type === "Feedback_Problem" ? + - Проблем : + report.type === "Feedback_Suggestion" ? + - Предложение : + ""} +
) : (