From b3774057626a14dd166aa762cd2071acc3379819 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Tue, 18 Mar 2025 16:45:34 -0700
Subject: [PATCH] web: display validation error

---
 web/src/app/submissions/[submissionId]/_comments.tsx | 1 +
 web/src/app/submissions/[submissionId]/page.tsx      | 4 +++-
 web/src/app/ts/Submission.ts                         | 3 +++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/web/src/app/submissions/[submissionId]/_comments.tsx b/web/src/app/submissions/[submissionId]/_comments.tsx
index 463802f..8e5c84a 100644
--- a/web/src/app/submissions/[submissionId]/_comments.tsx
+++ b/web/src/app/submissions/[submissionId]/_comments.tsx
@@ -12,6 +12,7 @@ interface CreatorAndReviewStatus {
     asset_id: SubmissionInfo["AssetID"],
     creator: SubmissionInfo["DisplayName"],
     review: SubmissionInfo["StatusID"],
+    status_message: SubmissionInfo["StatusMessage"],
     comments: Comment[],
     name: string
 }
diff --git a/web/src/app/submissions/[submissionId]/page.tsx b/web/src/app/submissions/[submissionId]/page.tsx
index f5e7ffe..9dae81f 100644
--- a/web/src/app/submissions/[submissionId]/page.tsx
+++ b/web/src/app/submissions/[submissionId]/page.tsx
@@ -54,6 +54,7 @@ function RatingArea(submission: ReviewId) {
 function TitleAndComments(stats: CreatorAndReviewStatus) {
     const Review = SubmissionStatusToString(stats.review)
 
+    // TODO: hide status message when status is not "Accepted"
 	return (
         <main className="review-info">
             <div>
@@ -64,6 +65,7 @@ function TitleAndComments(stats: CreatorAndReviewStatus) {
             </div>
             <p className="by-creator">by <Link href="" target="_blank">{stats.creator}</Link></p>
             <p className="asset-id">Model Asset ID {stats.asset_id}</p>
+            <p className="status-message">Validation Error: {stats.status_message}</p>
             <span className="spacer"></span>
             <Comments comments_data={stats}/>
         </main>
@@ -95,7 +97,7 @@ export default function SubmissionInfoPage() {
             <main className="map-page-main">
                 <section className="review-section">
 					<RatingArea submissionId={dynamicId.submissionId}/>
-                    <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} asset_id={submission.AssetID} comments={[]}/>
+                    <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} status_message={submission.StatusMessage} asset_id={submission.AssetID} comments={[]}/>
                 </section>
             </main>
         </Webpage>
diff --git a/web/src/app/ts/Submission.ts b/web/src/app/ts/Submission.ts
index 3234348..e8624da 100644
--- a/web/src/app/ts/Submission.ts
+++ b/web/src/app/ts/Submission.ts
@@ -20,9 +20,12 @@ interface SubmissionInfo {
     readonly Submitter:     number,
     readonly AssetID:       number,
     readonly AssetVersion:  number,
+    readonly ValidatedAssetID:       number,
+    readonly ValidatedAssetVersion:  number,
     readonly Completed:     boolean,
     readonly TargetAssetID: number,
     readonly StatusID:      SubmissionStatus
+    readonly StatusMessage: string,
 }
 
 function SubmissionStatusToString(submission_status: SubmissionStatus): string {