Order scan pages automatically

This commit is contained in:
DrMint 2022-04-16 20:13:08 +02:00
parent 648446d267
commit 741a10ef29
1 changed files with 27 additions and 2 deletions

View File

@ -88,8 +88,33 @@ export default function ScanSet(props: Props): JSX.Element {
}, [appLayout.preferredLanguages]);
useEffect(() => {
if (selectedScanIndex !== undefined)
setSelectedScan(scanSet[selectedScanIndex]);
if (selectedScanIndex !== undefined) {
const selectedScanSet = scanSet[selectedScanIndex];
selectedScanSet?.pages?.data.sort((a, b) => {
function isInteger(value: string): boolean {
return /^\d+$/.test(value);
}
function getFileName(path: string): string {
let result = path.split("/");
result = result[result.length - 1].split(".");
result = result
.splice(0, result.length - 1)
.join(".")
.split("_");
return result[0];
}
if (a.attributes?.url && b.attributes?.url) {
const aName = getFileName(a.attributes.url);
const bName = getFileName(b.attributes.url);
if (isInteger(aName) && isInteger(bName)) {
return parseInt(aName, 10) - parseInt(bName, 10);
}
return a.attributes.url.localeCompare(b.attributes.url);
}
return 0;
});
setSelectedScan(selectedScanSet);
}
}, [selectedScanIndex]);
return (