From b95d76f00b78c5cdde8ee98b52e66f48c7d49be7 Mon Sep 17 00:00:00 2001 From: mohanmd Date: Tue, 23 Jun 2026 19:22:59 +0530 Subject: [PATCH] worker view profile issue --- public/swagger.json | 4 +- resources/js/Pages/Admin/Workers/Index.jsx | 78 +++++++++++--------- resources/js/Pages/Employer/Workers/Show.jsx | 46 +++++++----- 3 files changed, 74 insertions(+), 54 deletions(-) diff --git a/public/swagger.json b/public/swagger.json index da7b48d..8b48739 100644 --- a/public/swagger.json +++ b/public/swagger.json @@ -2690,7 +2690,7 @@ "Worker/Profile" ], "summary": "Get Safety Report Reasons (Worker)", - "description": "Returns a list of active safety/moderation report reasons. Can filter reasons by target type (Chat or Review).", + "description": "Returns a list of active safety/moderation report reasons. Can filter reasons by target type (Chat or Support).", "parameters": [ { "name": "type", @@ -5130,7 +5130,7 @@ "Employer/Reviews" ], "summary": "Get Safety Report Reasons (Employer)", - "description": "Returns a list of active safety/moderation report reasons. Can filter reasons by target type (Chat or Review).", + "description": "Returns a list of active safety/moderation report reasons. Can filter reasons by target type (Chat or Support).", "parameters": [ { "name": "type", diff --git a/resources/js/Pages/Admin/Workers/Index.jsx b/resources/js/Pages/Admin/Workers/Index.jsx index 140c505..a34142c 100644 --- a/resources/js/Pages/Admin/Workers/Index.jsx +++ b/resources/js/Pages/Admin/Workers/Index.jsx @@ -62,6 +62,16 @@ const locationData = { } }; +const safeRender = (value) => { + if (value === null || value === undefined) return 'N/A'; + if (typeof value === 'object') { + if (value.name) return String(value.name); + if (value.full_name) return String(value.full_name); + return JSON.stringify(value); + } + return String(value); +}; + export default function WorkerManagement({ workers }) { const [searchTerm, setSearchTerm] = useState(''); const [statusFilter, setStatusFilter] = useState('all'); @@ -749,55 +759,55 @@ export default function WorkerManagement({ workers }) {
Passport Number - {passportDoc.ocr_data?.passport_number || passportDoc.number || 'N/A'} + {safeRender(passportDoc.ocr_data?.passport_number || passportDoc.number)}
Surname - {passportDoc.ocr_data?.surname || 'N/A'} + {safeRender(passportDoc.ocr_data?.surname)}
Given Names - {passportDoc.ocr_data?.given_names || 'N/A'} + {safeRender(passportDoc.ocr_data?.given_names)}
Sex - {passportDoc.ocr_data?.sex || 'N/A'} + {safeRender(passportDoc.ocr_data?.sex)}
Date of Birth - {passportDoc.ocr_data?.date_of_birth || 'N/A'} + {safeRender(passportDoc.ocr_data?.date_of_birth)}
Place of Birth - {passportDoc.ocr_data?.place_of_birth || 'N/A'} + {safeRender(passportDoc.ocr_data?.place_of_birth)}
Nationality - {passportDoc.ocr_data?.nationality || 'N/A'} + {safeRender(passportDoc.ocr_data?.nationality)}
Issuing Country - {passportDoc.ocr_data?.issuing_country || 'N/A'} + {safeRender(passportDoc.ocr_data?.issuing_country)}
Date of Issue - {passportDoc.ocr_data?.date_of_issue || passportDoc.issue_date || 'N/A'} + {safeRender(passportDoc.ocr_data?.date_of_issue || passportDoc.issue_date)}
Date of Expiry - {passportDoc.ocr_data?.date_of_expiry || passportDoc.expiry_date || 'N/A'} + {safeRender(passportDoc.ocr_data?.date_of_expiry || passportDoc.expiry_date)}
Authority - {passportDoc.ocr_data?.authority || 'N/A'} + {safeRender(passportDoc.ocr_data?.authority)}
Document Type - {passportDoc.ocr_data?.document_type || 'N/A'} + {safeRender(passportDoc.ocr_data?.document_type)}
Personal Number - {passportDoc.ocr_data?.personal_number || 'N/A'} + {safeRender(passportDoc.ocr_data?.personal_number)}
{passportDoc.file_path && ( @@ -835,89 +845,89 @@ export default function WorkerManagement({ workers }) {
Entry Permit No - {visaDoc.ocr_data?.entry_permit_no || 'N/A'} + {safeRender(visaDoc.ocr_data?.entry_permit_no)}
UID No - {visaDoc.ocr_data?.uid_no || 'N/A'} + {safeRender(visaDoc.ocr_data?.uid_no)}
File Number - {visaDoc.ocr_data?.file_number || visaDoc.number || 'N/A'} + {safeRender(visaDoc.ocr_data?.file_number || visaDoc.number)}
ID Number - {visaDoc.ocr_data?.id_number || 'N/A'} + {safeRender(visaDoc.ocr_data?.id_number)}
Full Name - {visaDoc.ocr_data?.full_name || 'N/A'} + {safeRender(visaDoc.ocr_data?.full_name)}
Name - {visaDoc.ocr_data?.name || 'N/A'} + {safeRender(visaDoc.ocr_data?.name)}
Visa Type - {visaDoc.ocr_data?.visa_type || 'N/A'} + {safeRender(visaDoc.ocr_data?.visa_type)}
Profession - {visaDoc.ocr_data?.profession || 'N/A'} + {safeRender(visaDoc.ocr_data?.profession)}
Sponsor Name - {visaDoc.ocr_data?.sponsor_name || 'N/A'} + {safeRender(visaDoc.ocr_data?.sponsor_name)}
Nationality - {visaDoc.ocr_data?.nationality || 'N/A'} + {safeRender(visaDoc.ocr_data?.nationality)}
Country - {visaDoc.ocr_data?.country || 'N/A'} + {safeRender(visaDoc.ocr_data?.country)}
Passport No - {visaDoc.ocr_data?.passport_no || 'N/A'} + {safeRender(visaDoc.ocr_data?.passport_no)}
Passport Number - {visaDoc.ocr_data?.passport_number || 'N/A'} + {safeRender(visaDoc.ocr_data?.passport_number)}
Date of Birth - {visaDoc.ocr_data?.date_of_birth || 'N/A'} + {safeRender(visaDoc.ocr_data?.date_of_birth)}
Place of Birth - {visaDoc.ocr_data?.place_of_birth || 'N/A'} + {safeRender(visaDoc.ocr_data?.place_of_birth)}
Place of Issue - {visaDoc.ocr_data?.place_of_issue || 'N/A'} + {safeRender(visaDoc.ocr_data?.place_of_issue)}
Issue Date - {visaDoc.ocr_data?.issue_date || visaDoc.issue_date || 'N/A'} + {safeRender(visaDoc.ocr_data?.issue_date || visaDoc.issue_date)}
Expiry Date - {visaDoc.ocr_data?.expiry_date || visaDoc.expiry_date || 'N/A'} + {safeRender(visaDoc.ocr_data?.expiry_date || visaDoc.expiry_date)}
Accompanied By - {visaDoc.ocr_data?.accompanied_by || 'N/A'} + {safeRender(visaDoc.ocr_data?.accompanied_by)}
Document Type - {visaDoc.ocr_data?.document_type || 'N/A'} + {safeRender(visaDoc.ocr_data?.document_type)}
OCR Accuracy - {visaDoc.ocr_data?.ocr_accuracy || 'N/A'} + {safeRender(visaDoc.ocr_data?.ocr_accuracy)}
{visaDoc.file_path && ( diff --git a/resources/js/Pages/Employer/Workers/Show.jsx b/resources/js/Pages/Employer/Workers/Show.jsx index 490bc52..97772df 100644 --- a/resources/js/Pages/Employer/Workers/Show.jsx +++ b/resources/js/Pages/Employer/Workers/Show.jsx @@ -70,6 +70,16 @@ const getExpiryStatus = (expiryDate) => { } }; +const safeRender = (value) => { + if (value === null || value === undefined) return 'N/A'; + if (typeof value === 'object') { + if (value.name) return String(value.name); + if (value.full_name) return String(value.full_name); + return JSON.stringify(value); + } + return String(value); +}; + export default function Show({ worker }) { const { t } = useTranslation(); const passportDoc = worker.documents?.find(d => d.type === 'passport'); @@ -442,39 +452,39 @@ export default function Show({ worker }) {
{t('given_names', 'Given Names')}
-
{passportDoc.ocr_data.given_names || 'N/A'}
+
{safeRender(passportDoc.ocr_data.given_names)}
{t('surname', 'Surname')}
-
{passportDoc.ocr_data.surname || 'N/A'}
+
{safeRender(passportDoc.ocr_data.surname)}
{t('passport_number', 'Passport Number')}
-
{passportDoc.number}
+
{safeRender(passportDoc.ocr_data.passport_number || passportDoc.number)}
{t('sex', 'Sex')}
-
{passportDoc.ocr_data.sex || 'N/A'}
+
{safeRender(passportDoc.ocr_data.sex)}
{t('date_of_birth', 'Date of Birth')}
-
{passportDoc.ocr_data.date_of_birth || 'N/A'}
+
{safeRender(passportDoc.ocr_data.date_of_birth)}
{t('place_of_birth', 'Place of Birth')}
-
{passportDoc.ocr_data.place_of_birth || 'N/A'}
+
{safeRender(passportDoc.ocr_data.place_of_birth)}
{t('issue_date', 'Date of Issue')}
-
{passportDoc.issue_date || 'N/A'}
+
{safeRender(passportDoc.ocr_data.date_of_issue || passportDoc.issue_date)}
{t('expiry_date', 'Date of Expiry')}
-
{passportDoc.expiry_date || 'N/A'}
+
{safeRender(passportDoc.ocr_data.date_of_expiry || passportDoc.expiry_date)}
{t('issuing_country', 'Issuing Country')}
-
{passportDoc.ocr_data.issuing_country || 'N/A'}
+
{safeRender(passportDoc.ocr_data.issuing_country)}
) : ( @@ -558,39 +568,39 @@ export default function Show({ worker }) {
{t('full_name', 'Full Name')}
-
{visaDoc.ocr_data.name || 'N/A'}
+
{safeRender(visaDoc.ocr_data.name)}
{t('file_number', 'File Number')}
-
{visaDoc.number}
+
{safeRender(visaDoc.ocr_data.file_number || visaDoc.number)}
{t('profession', 'Profession')}
-
{visaDoc.ocr_data.profession || worker.visa_status || 'N/A'}
+
{safeRender(visaDoc.ocr_data.profession || worker.visa_status)}
{t('sponsor', 'Sponsor')}
-
{visaDoc.ocr_data.sponsor || 'N/A'}
+
{safeRender(visaDoc.ocr_data.sponsor || visaDoc.ocr_data.sponsor_name)}
{t('passport_number', 'Passport Number')}
-
{visaDoc.ocr_data.passport_number || 'N/A'}
+
{safeRender(visaDoc.ocr_data.passport_number)}
{t('place_of_issue', 'Place of Issue')}
-
{visaDoc.ocr_data.place_of_issue || 'N/A'}
+
{safeRender(visaDoc.ocr_data.place_of_issue)}
{t('issue_date', 'Date of Issue')}
-
{visaDoc.issue_date || 'N/A'}
+
{safeRender(visaDoc.ocr_data.issue_date || visaDoc.issue_date)}
{t('expiry_date', 'Date of Expiry')}
-
{visaDoc.expiry_date || 'N/A'}
+
{safeRender(visaDoc.ocr_data.expiry_date || visaDoc.expiry_date)}
{t('accompanied_by', 'Accompanied By')}
-
{visaDoc.ocr_data.accompanied_by || 'N/A'}
+
{safeRender(visaDoc.ocr_data.accompanied_by)}
) : (