diff --git a/web/src/app/mapfixes/[mapfixId]/_comments.tsx b/web/src/app/mapfixes/[mapfixId]/_comments.tsx index 8e5c84a..7c5286a 100644 --- a/web/src/app/mapfixes/[mapfixId]/_comments.tsx +++ b/web/src/app/mapfixes/[mapfixId]/_comments.tsx @@ -1,4 +1,4 @@ -import type { SubmissionInfo } from "@/app/ts/Submission"; +import type { MapfixInfo } from "@/app/ts/Mapfix"; import { Button } from "@mui/material" import Window from "./_window"; import SendIcon from '@mui/icons-material/Send'; @@ -9,10 +9,10 @@ interface CommentersProps { } interface CreatorAndReviewStatus { - asset_id: SubmissionInfo["AssetID"], - creator: SubmissionInfo["DisplayName"], - review: SubmissionInfo["StatusID"], - status_message: SubmissionInfo["StatusMessage"], + asset_id: MapfixInfo["AssetID"], + creator: MapfixInfo["DisplayName"], + review: MapfixInfo["StatusID"], + status_message: MapfixInfo["StatusMessage"], comments: Comment[], name: string } diff --git a/web/src/app/mapfixes/[mapfixId]/_map.tsx b/web/src/app/mapfixes/[mapfixId]/_map.tsx index e364f70..f515db2 100644 --- a/web/src/app/mapfixes/[mapfixId]/_map.tsx +++ b/web/src/app/mapfixes/[mapfixId]/_map.tsx @@ -1,7 +1,7 @@ -import { SubmissionInfo } from "@/app/ts/Submission" +import { MapfixInfo } from "@/app/ts/Mapfix" interface AssetID { - id: SubmissionInfo["AssetID"] + id: MapfixInfo["AssetID"] } function MapImage() { @@ -11,4 +11,4 @@ function MapImage() { export { type AssetID, MapImage -} \ No newline at end of file +} diff --git a/web/src/app/mapfixes/[mapfixId]/_reviewButtons.tsx b/web/src/app/mapfixes/[mapfixId]/_reviewButtons.tsx index 822327c..24d75c4 100644 --- a/web/src/app/mapfixes/[mapfixId]/_reviewButtons.tsx +++ b/web/src/app/mapfixes/[mapfixId]/_reviewButtons.tsx @@ -7,17 +7,17 @@ type Review = Actions | "Accept" | "Validate" | "Upload" | "Reset Uploading interface ReviewButton { name: Review, action: ApiActions, - submissionId: string, + mapfixId: string, color: ButtonOwnProps["color"] } interface ReviewId { - submissionId: string + mapfixId: string } -async function ReviewButtonClicked(action: ApiActions, submissionId: string) { +async function ReviewButtonClicked(action: ApiActions, mapfixId: string) { try { - const response = await fetch(`/api/submissions/${submissionId}/status/${action}`, { + const response = await fetch(`/api/mapfixes/${mapfixId}/status/${action}`, { method: "POST", headers: { "Content-type": "application/json", @@ -33,7 +33,7 @@ async function ReviewButtonClicked(action: ApiActions, submissionId: string) { window.location.reload(); } catch (error) { - console.error("Error updating submission status:", error); + console.error("Error updating mapfix status:", error); } } @@ -41,11 +41,11 @@ function ReviewButton(props: ReviewButton) { return <Button color={props.color} variant="contained" - onClick={() => { ReviewButtonClicked(props.action, props.submissionId) }}>{props.name}</Button> + onClick={() => { ReviewButtonClicked(props.action, props.mapfixId) }}>{props.name}</Button> } export default function ReviewButtons(props: ReviewId) { - const submissionId = props.submissionId + const mapfixId = props.mapfixId // When is each button visible? // Multiple buttons can be visible at once. // Action | Role | When Current Status is One of: @@ -61,14 +61,14 @@ export default function ReviewButtons(props: ReviewId) { // ResetUploading | MapAdmin | Uploading return ( <section className="review-set"> - <ReviewButton color="info" name="Submit" action="submit" submissionId={submissionId}/> - <ReviewButton color="info" name="Revoke" action="revoke" submissionId={submissionId}/> - <ReviewButton color="info" name="Accept" action="trigger-validate" submissionId={submissionId}/> - <ReviewButton color="info" name="Validate" action="retry-validate" submissionId={submissionId}/> - <ReviewButton color="error" name="Reject" action="reject" submissionId={submissionId}/> - <ReviewButton color="info" name="Upload" action="trigger-upload" submissionId={submissionId}/> - <ReviewButton color="error" name="Reset Uploading (fix softlocked status)" action="reset-uploading" submissionId={submissionId}/> - <ReviewButton color="error" name="Reset Validating (fix softlocked status)" action="reset-validating" submissionId={submissionId}/> + <ReviewButton color="info" name="Submit" action="submit" mapfixId={mapfixId}/> + <ReviewButton color="info" name="Revoke" action="revoke" mapfixId={mapfixId}/> + <ReviewButton color="info" name="Accept" action="trigger-validate" mapfixId={mapfixId}/> + <ReviewButton color="info" name="Validate" action="retry-validate" mapfixId={mapfixId}/> + <ReviewButton color="error" name="Reject" action="reject" mapfixId={mapfixId}/> + <ReviewButton color="info" name="Upload" action="trigger-upload" mapfixId={mapfixId}/> + <ReviewButton color="error" name="Reset Uploading (fix softlocked status)" action="reset-uploading" mapfixId={mapfixId}/> + <ReviewButton color="error" name="Reset Validating (fix softlocked status)" action="reset-validating" mapfixId={mapfixId}/> </section> ) } diff --git a/web/src/app/mapfixes/[mapfixId]/page.tsx b/web/src/app/mapfixes/[mapfixId]/page.tsx index 9dae81f..cc38cb3 100644 --- a/web/src/app/mapfixes/[mapfixId]/page.tsx +++ b/web/src/app/mapfixes/[mapfixId]/page.tsx @@ -1,6 +1,6 @@ "use client" -import { SubmissionInfo, SubmissionStatusToString } from "@/app/ts/Submission"; +import { MapfixInfo, MapfixStatusToString } from "@/app/ts/Mapfix"; import type { CreatorAndReviewStatus } from "./_comments"; import { MapImage } from "./_map"; import { useParams } from "next/navigation"; @@ -15,7 +15,7 @@ import { useState, useEffect } from "react"; import "./(styles)/page.scss"; interface ReviewId { - submissionId: string + mapfixId: string } function Ratings() { @@ -39,20 +39,20 @@ function Ratings() { ) } -function RatingArea(submission: ReviewId) { +function RatingArea(mapfix: ReviewId) { return ( <aside className="review-area"> <section className="map-image-area"> <MapImage/> </section> <Ratings/> - <ReviewButtons submissionId={submission.submissionId}/> + <ReviewButtons mapfixId={mapfix.mapfixId}/> </aside> ) } function TitleAndComments(stats: CreatorAndReviewStatus) { - const Review = SubmissionStatusToString(stats.review) + const Review = MapfixStatusToString(stats.review) // TODO: hide status message when status is not "Accepted" return ( @@ -72,22 +72,22 @@ function TitleAndComments(stats: CreatorAndReviewStatus) { ) } -export default function SubmissionInfoPage() { - const dynamicId = useParams<{submissionId: string}>() +export default function MapfixInfoPage() { + const dynamicId = useParams<{mapfixId: string}>() - const [submission, setSubmission] = useState<SubmissionInfo | null>(null) + const [mapfix, setMapfix] = useState<MapfixInfo | null>(null) useEffect(() => { // needs to be client sided since server doesn't have a session, nextjs got mad at me for exporting an async function: (https://nextjs.org/docs/messages/no-async-client-component) - async function getSubmission() { - const res = await fetch(`/api/submissions/${dynamicId.submissionId}`) + async function getMapfix() { + const res = await fetch(`/api/mapfixes/${dynamicId.mapfixId}`) if (res.ok) { - setSubmission(await res.json()) + setMapfix(await res.json()) } } - getSubmission() - }, [dynamicId.submissionId]) + getMapfix() + }, [dynamicId.mapfixId]) - if (!submission) { + if (!mapfix) { return <Webpage> {/* TODO: Add skeleton loading thingy ? Maybe ? (https://mui.com/material-ui/react-skeleton/) */} </Webpage> @@ -96,8 +96,8 @@ export default function SubmissionInfoPage() { <Webpage> <main className="map-page-main"> <section className="review-section"> - <RatingArea submissionId={dynamicId.submissionId}/> - <TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} status_message={submission.StatusMessage} asset_id={submission.AssetID} comments={[]}/> + <RatingArea mapfixId={dynamicId.mapfixId}/> + <TitleAndComments name={mapfix.DisplayName} creator={mapfix.Creator} review={mapfix.StatusID} status_message={mapfix.StatusMessage} asset_id={mapfix.AssetID} comments={[]}/> </section> </main> </Webpage> diff --git a/web/src/app/mapfixes/_card.tsx b/web/src/app/mapfixes/_card.tsx index 29a6793..a1c594a 100644 --- a/web/src/app/mapfixes/_card.tsx +++ b/web/src/app/mapfixes/_card.tsx @@ -38,4 +38,4 @@ export default function SubmissionCard(props: SubmissionCardProps) { </div> </Link> ); -} \ No newline at end of file +} diff --git a/web/src/app/mapfixes/page.tsx b/web/src/app/mapfixes/page.tsx index 2b803a7..cf6eccb 100644 --- a/web/src/app/mapfixes/page.tsx +++ b/web/src/app/mapfixes/page.tsx @@ -1,20 +1,20 @@ 'use client' import React, { useState, useEffect } from "react"; -import { SubmissionInfo } from "../ts/Submission"; -import SubmissionCard from "./_card"; +import { MapfixInfo } from "../ts/Mapfix"; +import MapfixCard from "./_card"; import Webpage from "@/app/_components/webpage"; import "./(styles)/page.scss"; -export default function SubmissionInfoPage() { - const [submissions, setSubmissions] = useState<SubmissionInfo[]>([]) +export default function MapfixInfoPage() { + const [mapfixes, setMapfixes] = useState<MapfixInfo[]>([]) const [currentPage, setCurrentPage] = useState(0); const cardsPerPage = 24; // built to fit on a 1920x1080 monitor - const totalPages = Math.ceil(submissions.length / cardsPerPage); + const totalPages = Math.ceil(mapfixes.length / cardsPerPage); - const currentCards = submissions.slice( + const currentCards = mapfixes.slice( currentPage * cardsPerPage, (currentPage + 1) * cardsPerPage ); @@ -32,19 +32,19 @@ export default function SubmissionInfoPage() { }; useEffect(() => { - async function fetchSubmissions() { - const res = await fetch('/api/submissions?Page=1&Limit=100') + async function fetchMapfixes() { + const res = await fetch('/api/mapfixes?Page=1&Limit=100') if (res.ok) { - setSubmissions(await res.json()) + setMapfixes(await res.json()) } } setTimeout(() => { - fetchSubmissions() + fetchMapfixes() }, 50); }, []) - if (!submissions) { + if (!mapfixes) { return <Webpage> <main> Loading... @@ -52,10 +52,10 @@ export default function SubmissionInfoPage() { </Webpage> } - if (submissions && submissions.length == 0) { + if (mapfixes && mapfixes.length == 0) { return <Webpage> <main> - Submissions list is empty. + Mapfixes list is empty. </main> </Webpage> } @@ -93,14 +93,14 @@ export default function SubmissionInfoPage() { <button onClick={nextPage} disabled={currentPage === totalPages - 1}>></button> </div> <div className="grid"> - {currentCards.map((submission) => ( - <SubmissionCard - key={submission.ID} - id={submission.ID} - assetId={submission.AssetID} - displayName={submission.DisplayName} - author={submission.Creator} - rating={submission.StatusID} + {currentCards.map((mapfix) => ( + <MapfixCard + key={mapfix.ID} + id={mapfix.ID} + assetId={mapfix.AssetID} + displayName={mapfix.DisplayName} + author={mapfix.Creator} + rating={mapfix.StatusID} /> ))} </div> diff --git a/web/src/app/ts/Mapfix.ts b/web/src/app/ts/Mapfix.ts index 7888436..0a5bd25 100644 --- a/web/src/app/ts/Mapfix.ts +++ b/web/src/app/ts/Mapfix.ts @@ -27,8 +27,8 @@ interface MapfixInfo { readonly StatusMessage: string, } -function MapfixStatusToString(submission_status: MapfixStatus): string { - switch (submission_status) { +function MapfixStatusToString(mapfix_status: MapfixStatus): string { + switch (mapfix_status) { case MapfixStatus.Rejected: return "REJECTED" case MapfixStatus.Uploading: