web: implement new list api with Total field for pages
This commit is contained in:
parent
0ae06544a4
commit
e1685fd047
web/src/app
@ -1,7 +1,7 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { MapfixInfo } from "../ts/Mapfix";
|
import { MapfixList } from "../ts/Mapfix";
|
||||||
import { MapfixCard } from "../_components/mapCard";
|
import { MapfixCard } from "../_components/mapCard";
|
||||||
import Webpage from "@/app/_components/webpage";
|
import Webpage from "@/app/_components/webpage";
|
||||||
|
|
||||||
@ -11,13 +11,13 @@ import "./(styles)/page.scss";
|
|||||||
import { ListSortConstants } from "../ts/Sort";
|
import { ListSortConstants } from "../ts/Sort";
|
||||||
|
|
||||||
export default function MapfixInfoPage() {
|
export default function MapfixInfoPage() {
|
||||||
const [mapfixes, setMapfixes] = useState<MapfixInfo[]>([])
|
const [mapfixes, setMapfixes] = useState<MapfixList>({Total:0,Mapfixes:[]})
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const cardsPerPage = 24; // built to fit on a 1920x1080 monitor
|
const cardsPerPage = 24; // built to fit on a 1920x1080 monitor
|
||||||
|
|
||||||
const totalPages = Math.ceil(mapfixes.length / cardsPerPage);
|
const totalPages = Math.ceil(mapfixes.Total / cardsPerPage);
|
||||||
|
|
||||||
const currentCards = mapfixes.slice(
|
const currentCards = mapfixes.Mapfixes.slice(
|
||||||
currentPage * cardsPerPage,
|
currentPage * cardsPerPage,
|
||||||
(currentPage + 1) * cardsPerPage
|
(currentPage + 1) * cardsPerPage
|
||||||
);
|
);
|
||||||
@ -55,7 +55,7 @@ export default function MapfixInfoPage() {
|
|||||||
</Webpage>
|
</Webpage>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mapfixes && mapfixes.length == 0) {
|
if (mapfixes && mapfixes.Total == 0) {
|
||||||
return <Webpage>
|
return <Webpage>
|
||||||
<main>
|
<main>
|
||||||
Mapfixes list is empty.
|
Mapfixes list is empty.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { SubmissionInfo } from "../ts/Submission";
|
import { SubmissionList } from "../ts/Submission";
|
||||||
import { SubmissionCard } from "../_components/mapCard";
|
import { SubmissionCard } from "../_components/mapCard";
|
||||||
import Webpage from "@/app/_components/webpage";
|
import Webpage from "@/app/_components/webpage";
|
||||||
|
|
||||||
@ -9,13 +9,13 @@ import "./(styles)/page.scss";
|
|||||||
import { ListSortConstants } from "../ts/Sort";
|
import { ListSortConstants } from "../ts/Sort";
|
||||||
|
|
||||||
export default function SubmissionInfoPage() {
|
export default function SubmissionInfoPage() {
|
||||||
const [submissions, setSubmissions] = useState<SubmissionInfo[]>([])
|
const [submissions, setSubmissions] = useState<SubmissionList>({Total:0,Submissions:[]})
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const cardsPerPage = 24; // built to fit on a 1920x1080 monitor
|
const cardsPerPage = 24; // built to fit on a 1920x1080 monitor
|
||||||
|
|
||||||
const totalPages = Math.ceil(submissions.length / cardsPerPage);
|
const totalPages = Math.ceil(submissions.Total / cardsPerPage);
|
||||||
|
|
||||||
const currentCards = submissions.slice(
|
const currentCards = submissions.Submissions.slice(
|
||||||
currentPage * cardsPerPage,
|
currentPage * cardsPerPage,
|
||||||
(currentPage + 1) * cardsPerPage
|
(currentPage + 1) * cardsPerPage
|
||||||
);
|
);
|
||||||
@ -53,7 +53,7 @@ export default function SubmissionInfoPage() {
|
|||||||
</Webpage>
|
</Webpage>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (submissions && submissions.length == 0) {
|
if (submissions && submissions.Total == 0) {
|
||||||
return <Webpage>
|
return <Webpage>
|
||||||
<main>
|
<main>
|
||||||
Submissions list is empty.
|
Submissions list is empty.
|
||||||
|
@ -28,6 +28,11 @@ interface MapfixInfo {
|
|||||||
readonly StatusMessage: string,
|
readonly StatusMessage: string,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface MapfixList {
|
||||||
|
readonly Total: number,
|
||||||
|
readonly Mapfixes: MapfixInfo[],
|
||||||
|
}
|
||||||
|
|
||||||
function MapfixStatusToString(mapfix_status: MapfixStatus): string {
|
function MapfixStatusToString(mapfix_status: MapfixStatus): string {
|
||||||
switch (mapfix_status) {
|
switch (mapfix_status) {
|
||||||
case MapfixStatus.Rejected:
|
case MapfixStatus.Rejected:
|
||||||
@ -56,5 +61,6 @@ function MapfixStatusToString(mapfix_status: MapfixStatus): string {
|
|||||||
export {
|
export {
|
||||||
MapfixStatus,
|
MapfixStatus,
|
||||||
MapfixStatusToString,
|
MapfixStatusToString,
|
||||||
type MapfixInfo
|
type MapfixInfo,
|
||||||
|
type MapfixList,
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,11 @@ interface SubmissionInfo {
|
|||||||
readonly StatusMessage: string,
|
readonly StatusMessage: string,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface SubmissionList {
|
||||||
|
readonly Total: number,
|
||||||
|
readonly Submissions: SubmissionInfo[],
|
||||||
|
}
|
||||||
|
|
||||||
function SubmissionStatusToString(submission_status: SubmissionStatus): string {
|
function SubmissionStatusToString(submission_status: SubmissionStatus): string {
|
||||||
switch (submission_status) {
|
switch (submission_status) {
|
||||||
case SubmissionStatus.Released:
|
case SubmissionStatus.Released:
|
||||||
@ -58,5 +63,6 @@ function SubmissionStatusToString(submission_status: SubmissionStatus): string {
|
|||||||
export {
|
export {
|
||||||
SubmissionStatus,
|
SubmissionStatus,
|
||||||
SubmissionStatusToString,
|
SubmissionStatusToString,
|
||||||
type SubmissionInfo
|
type SubmissionInfo,
|
||||||
|
type SubmissionList,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user