From 00489b741411b0839a4307487ae8ebfd8abdca07 Mon Sep 17 00:00:00 2001 From: Tracewebstudio Dev Date: Wed, 29 Jul 2026 18:21:26 +0200 Subject: [PATCH] Show runtime verification fields inline --- .../dashboard/VerificationStatusPage.tsx | 67 ++++++++++++++++++- src/routes/dashboard.tsx | 2 + 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/components/dashboard/VerificationStatusPage.tsx b/src/components/dashboard/VerificationStatusPage.tsx index e64f277..0703656 100644 --- a/src/components/dashboard/VerificationStatusPage.tsx +++ b/src/components/dashboard/VerificationStatusPage.tsx @@ -7,6 +7,8 @@ import { For, Show, createMemo, createSignal, onMount } from 'solid-js'; import { ShieldCheck, FileText, Activity } from 'lucide-solid'; import { CARD, BTN_ORANGE, BTN_GHOST } from '~/components/DashboardShell'; +import ProfilePage from '~/components/dashboard/ProfilePage'; +import PortfolioPage from '~/components/dashboard/PortfolioPage'; import { getDocFields } from '~/lib/profile-fields-config'; import { presignDocumentUrl } from '~/lib/api'; @@ -136,6 +138,8 @@ interface Props { roleKey: string; onNavigate?: (sidebar: string) => void; onVerificationStatusChange?: (status: string) => void; + runtimeFields?: string[]; + runtimeTabs?: string[]; } interface VerificationDocument { @@ -167,6 +171,7 @@ function docUrl(value: any): string | null { export default function VerificationStatusPage(props: Props) { const [activeTab, setActiveTab] = createSignal('approval_status'); + const [inlineSection, setInlineSection] = createSignal<'profile' | 'portfolio'>('profile'); const [status, setStatus] = createSignal('NOT_SUBMITTED'); const [referenceNumber, setReferenceNumber] = createSignal(null); const [docRequest, setDocRequest] = createSignal(null); @@ -206,6 +211,12 @@ export default function VerificationStatusPage(props: Props) { const currentStep = () => stepIndex(status()); const docFields = createMemo(() => getDocFields(props.roleKey)); const canResubmit = () => ['DOCUMENTS_REQUESTED', 'REVISION_REQUESTED', 'REJECTED'].includes(status()); + const isApproved = () => ['APPROVED', 'COMPLETED'].includes(status()); + const showInlineEditors = () => !isApproved(); + const hasPortfolio = () => { + const role = String(props.roleKey || '').toUpperCase(); + return role === 'JOB_SEEKER' || role !== 'COMPANY' && role !== 'CUSTOMER'; + }; const handleResubmit = async () => { setResubmitting(true); @@ -408,15 +419,15 @@ export default function VerificationStatusPage(props: Props) { {/* Actions */}
- - -
+ + +
+
+
+

+ Complete Verification Details Here +

+

+ Fill the required fields directly on this page, then submit for verification. +

+
+
+ + + + +
+
+ + + + + + + + +
+
{/* ── Documents Tab ───────────────────────────────────────────── */} diff --git a/src/routes/dashboard.tsx b/src/routes/dashboard.tsx index eea9c85..4c76f04 100644 --- a/src/routes/dashboard.tsx +++ b/src/routes/dashboard.tsx @@ -884,6 +884,8 @@ export default function RuntimeDashboardPage() { roleKey={role()} onNavigate={setActiveSidebar} onVerificationStatusChange={(status) => setVerificationStatusOverride(String(status || "").toUpperCase())} + runtimeFields={bundle()?.fields || []} + runtimeTabs={bundle()?.tabs || []} />