proper handling of feedback types

This commit is contained in:
Dobromir Popov
2024-04-17 14:07:39 +03:00
parent 2c45064391
commit c161a5f0ca
2 changed files with 25 additions and 9 deletions

View File

@ -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 {

View File

@ -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() {
<td className="border px-2 py-2">{common.getDateFormated(new Date(report.date))}</td>
<td className="border px-2 py-2">{report.location?.name}</td>
<td className="border px-2 py-2">
{(report.experienceInfo === null || report.experienceInfo === "")
{(report.type === ReportType.ServiceReport)
? (
<>
<div><strong>Отчет</strong></div>
@ -126,9 +135,16 @@ export default function Reports() {
Клипове: {report.videoCount} <br />
Адреси / Телефони: {report.returnVisitInfoCount} <br />
</>
) : (report.placementCount > 0) ? (
) : (report.type === ReportType.Feedback || report.type === ReportType.Feedback_Problem || report.type === ReportType.Feedback_Suggestion) ? (
<>
<div><strong>Отзив</strong></div>
<div>
<strong style={{ fontWeight: 'bold' }}>Отзив</strong>
{report.type === "Feedback_Problem" ?
<span style={{ color: 'red', fontWeight: 'bold' }}> - Проблем</span> :
report.type === "Feedback_Suggestion" ?
<span style={{ color: 'blue' }}> - Предложение</span> :
""}
</div>
<div dangerouslySetInnerHTML={{ __html: report.experienceInfo }} />
</>
) : (