fix slow manga thumbnails issue, next manga reset page issue

This commit is contained in:
Aria Moradi 2021-05-17 14:22:24 +04:30
parent 57274a0a01
commit 9d38f478e3
5 changed files with 15 additions and 11 deletions

View File

@ -23,8 +23,9 @@ object CachedImageResponse {
}
private fun findFileNameStartingWith(directoryPath: String, fileName: String): String? {
val target = "$fileName."
File(directoryPath).listFiles().forEach { file ->
if (file.name.startsWith("$fileName."))
if (file.name.startsWith(target))
return "$directoryPath/${file.name}"
}
return null

View File

@ -36,9 +36,8 @@ import ir.armor.tachidesk.impl.backup.legacy.LegacyBackupImport.restoreLegacyBac
import ir.armor.tachidesk.server.internal.About.getAbout
import ir.armor.tachidesk.server.util.openInBrowser
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.future.future
import kotlinx.coroutines.newFixedThreadPoolContext
import mu.KotlinLogging
import java.io.IOException
import java.text.SimpleDateFormat
@ -55,7 +54,9 @@ import kotlin.concurrent.thread
object JavalinSetup {
private val logger = KotlinLogging.logger {}
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
@kotlinx.coroutines.ObsoleteCoroutinesApi
private val scope = CoroutineScope(newFixedThreadPoolContext(200, "javalin-future"))
private fun <T> future(block: suspend CoroutineScope.() -> T): CompletableFuture<T> {
return scope.future(block = block)

View File

@ -46,7 +46,7 @@ const useStyles = (settings: IReaderSettings) => makeStyles((theme: Theme) => ({
position: settings.staticNav ? 'sticky' : 'fixed',
top: 0,
left: 0,
minWidth: '300px',
width: '300px',
height: '100vh',
overflowY: 'auto',
backgroundColor: '#0a0b0b',

View File

@ -7,7 +7,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
import { makeStyles } from '@material-ui/core/styles';
import React, { useEffect } from 'react';
import React, { useEffect, useRef } from 'react';
import { useHistory } from 'react-router-dom';
import Page from '../Page';
@ -30,11 +30,12 @@ export default function PagedReader(props: IReaderProps) {
const classes = useStyles();
const history = useHistory();
const pageRef = useRef<HTMLDivElement>(null);
function nextPage() {
if (curPage < pages.length - 1) {
setCurPage(curPage + 1);
} else if (settings.loadNextonEnding) {
setCurPage(0);
history.push(`/manga/${manga.id}/chapter/${chapter.index + 1}`);
}
}
@ -66,16 +67,16 @@ export default function PagedReader(props: IReaderProps) {
useEffect(() => {
document.addEventListener('keyup', keyboardControl, false);
document.addEventListener('click', clickControl);
pageRef.current?.addEventListener('click', clickControl);
return () => {
document.removeEventListener('keyup', keyboardControl);
document.removeEventListener('click', clickControl);
pageRef.current?.removeEventListener('click', clickControl);
};
}, [curPage]);
}, [curPage, pageRef]);
return (
<div className={classes.reader}>
<div ref={pageRef} className={classes.reader}>
<Page
key={curPage}
index={curPage}

View File

@ -117,6 +117,7 @@ export default function Reader() {
useEffect(() => {
setChapter(initialChapter);
setCurPage(0);
client.get(`/api/v1/manga/${mangaId}/chapter/${chapterIndex}`)
.then((response) => response.data)
.then((data:IChapter) => {