diff --git a/web/src/app/submissions/[submissionId]/_reviewButtons.tsx b/web/src/app/submissions/[submissionId]/_reviewButtons.tsx index 71fb83e..73e1581 100644 --- a/web/src/app/submissions/[submissionId]/_reviewButtons.tsx +++ b/web/src/app/submissions/[submissionId]/_reviewButtons.tsx @@ -17,6 +17,7 @@ interface ReviewButton { interface ReviewId { submissionId: string, submissionStatus: number, + submissionSubmitter: number, } async function ReviewButtonClicked(action: ApiActions, submissionId: string) { @@ -63,6 +64,7 @@ export default function ReviewButtons(props: ReviewId) { // Upload | MapAdmin | Validated // ResetUploading | MapAdmin | Uploading const { submissionId, submissionStatus } = props; + const [user, setUser] = useState<number|null>(null); const [roles, setRoles] = useState<Roles>(Roles.Empty); const [loading, setLoading] = useState(true); @@ -72,8 +74,12 @@ export default function ReviewButtons(props: ReviewId) { // Fetch user roles const rolesResponse = await fetch("/api/session/roles"); const rolesData = parseInt(await rolesResponse.text()); + // Fetch user roles + const userResponse = await fetch("/api/session/user"); + const userData = await userResponse.json(); setRoles(rolesData); + setUser(userData.userId); } catch (error) { console.error("Error fetching data:", error); } finally { @@ -88,8 +94,7 @@ export default function ReviewButtons(props: ReviewId) { const visibleButtons: ReviewButton[] = []; - const is_submitter = false; // TODO: MY_USER === submission.Submitter - if (is_submitter) { + if (user === props.submissionSubmitter) { if ([SubmissionStatus.UnderConstruction, SubmissionStatus.ChangesRequested].includes(submissionStatus!)) { visibleButtons.push({ name: "Submit", action: "submit", color: "info", submissionId }); } diff --git a/web/src/app/submissions/[submissionId]/page.tsx b/web/src/app/submissions/[submissionId]/page.tsx index 3440604..9b8d4d1 100644 --- a/web/src/app/submissions/[submissionId]/page.tsx +++ b/web/src/app/submissions/[submissionId]/page.tsx @@ -18,6 +18,7 @@ interface ReviewId { submissionId: string; assetId: number; submissionStatus: number; + submissionSubmitter: number, } function Ratings() { @@ -48,7 +49,7 @@ function RatingArea(submission: ReviewId) { <MapImage id={submission.assetId}/> </section> <Ratings/> - <ReviewButtons submissionId={submission.submissionId} submissionStatus={submission.submissionStatus}/> + <ReviewButtons submissionId={submission.submissionId} submissionStatus={submission.submissionStatus} submissionSubmitter={submission.submissionSubmitter}/> </aside> ) } @@ -98,7 +99,7 @@ export default function SubmissionInfoPage() { <Webpage> <main className="map-page-main"> <section className="review-section"> - <RatingArea assetId={submission.AssetID} submissionId={dynamicId.submissionId} submissionStatus={submission.StatusID}/> + <RatingArea assetId={submission.AssetID} submissionId={dynamicId.submissionId} submissionStatus={submission.StatusID} submissionSubmitter={submission.Submitter}/> <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} status_message={submission.StatusMessage} asset_id={submission.AssetID} comments={[]}/> </section> </main>