grab user + plumb submitter

This commit is contained in:
Quaternions 2025-04-03 20:54:51 -07:00
parent 5e8fd0744c
commit c253874ce3
Signed by: Quaternions
GPG Key ID: D0DF5964F79AC131
2 changed files with 10 additions and 4 deletions
web/src/app/submissions/[submissionId]

@ -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 });
}

@ -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>