From 70b6562045645b7e4340db5e12adebe814b6ae74 Mon Sep 17 00:00:00 2001 From: estifanos Date: Sat, 8 Aug 2026 06:32:03 +0000 Subject: [PATCH] fixes --- .../features/question/pages/QuestionPage.tsx | 164 +++++++----------- 1 file changed, 62 insertions(+), 102 deletions(-) diff --git a/apps/backoffice/src/app/features/question/pages/QuestionPage.tsx b/apps/backoffice/src/app/features/question/pages/QuestionPage.tsx index 502b6c59b..a317523e9 100644 --- a/apps/backoffice/src/app/features/question/pages/QuestionPage.tsx +++ b/apps/backoffice/src/app/features/question/pages/QuestionPage.tsx @@ -15,7 +15,6 @@ import { Select, NumberInput, Textarea, - Table, } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { useTranslation } from 'react-i18next'; @@ -27,7 +26,7 @@ import { IconSend, IconGavel, } from '@tabler/icons-react'; -import { AdvancedColumn, ModalFooter, notify } from '@ema-platform/ui'; +import { AdvancedColumn, AdvancedTable, ModalFooter, notify, useErrorHandler, useServerTable } from '@ema-platform/ui'; import { extractErrorMessage } from '@ema-platform/api'; import { useGetCertificationsQuery } from '../../certification/api/certification-api'; import { @@ -242,26 +241,61 @@ export function QuestionPage() { cell: ({ row }) => {row.original.points}, }, { - header: t('question.columns.status'), + header: t('question.qc.column'), cell: ({ row }) => ( - - {row.original.isActive ? t('question.status.active') : t('question.status.inactive')} + + {t(`question.qc.${row.original.status}`)} ), }, { header: '', label: t('question.columns.actions', 'Actions'), - cell: ({ row }) => ( - - { setEditing(row.original); setShowForm(true); }}> - - - { setDeleteTarget(row.original); openDelete(); }}> - - - - ), + cell: ({ row }) => { + const q = row.original; + return ( + + {(q.status === 'DRAFT' || q.status === 'REJECTED') && ( + + )} + {q.status === 'PENDING_APPROVAL' && ( + <> + + + + )} + {q.status === 'APPROVED' && ( + + )} + { setEditing(q); setShowForm(true); }}> + + + { setDeleteTarget(q); openDelete(); }}> + + + + ); + }, }, ]; @@ -299,93 +333,19 @@ export function QuestionPage() { clearable /> - - - - {t('question.columns.title')} - {t('question.columns.certification')} - {t('question.columns.form')} - {t('question.columns.points')} - {t('question.qc.column')} - - - - - {filtered.map((q) => ( - - {q.title[locale]} - {getCertName(q.certificationId)} - {t(`question.form.${q.form === 'ESSAY' ? 'essay' : 'choice'}`)} - {q.points} - - - {t(`question.qc.${q.status}`)} - - - - - {(q.status === 'DRAFT' || q.status === 'REJECTED') && ( - - )} - {q.status === 'PENDING_APPROVAL' && ( - <> - - - - )} - {q.status === 'APPROVED' && ( - - )} - { setEditing(q); setShowForm(true); }}> - - - { setDeleteTarget(q); openDelete(); }}> - - - - - - ))} - {filtered.length === 0 && ( - - - {t('question.noQuestions')} - - - )} - -
- + +