refactor: Update Pagination Logic in Playground

This commit is contained in:
Rajarshee Chatterjee
2026-01-10 11:27:35 +05:30
parent f8da77a903
commit 0064125421
3 changed files with 177 additions and 199 deletions
+6 -38
View File
@@ -284,7 +284,6 @@
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz",
"integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==",
"dev": true,
"peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -328,7 +327,6 @@
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.5.tgz",
"integrity": "sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==",
"dev": true,
"peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -1070,7 +1068,6 @@
"resolved": "https://registry.npmjs.org/@mui/material/-/material-6.1.9.tgz",
"integrity": "sha512-NwqIN0bdsgzSbZd5JFcC+2ez0XW/XNs8uiV2PDHrqQ4qf/FEasFJG1z6g8JbCN0YlTrHZekVb17X0Fv0qcYJfQ==",
"dev": true,
"peer": true,
"dependencies": {
"@babel/runtime": "^7.26.0",
"@mui/core-downloads-tracker": "^6.1.9",
@@ -3006,7 +3003,6 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.66.tgz",
"integrity": "sha512-OYTmMI4UigXeFMF/j4uv0lBBEbongSgptPrHBxqME44h9+yNov+oL6Z3ocJKo0WyXR84sQUNeyIp9MRfckvZpg==",
"devOptional": true,
"peer": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -3018,7 +3014,6 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
"integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
"devOptional": true,
"peer": true,
"dependencies": {
"@types/react": "*"
}
@@ -3091,7 +3086,6 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.14.1.tgz",
"integrity": "sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==",
"dev": true,
"peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "7.14.1",
"@typescript-eslint/types": "7.14.1",
@@ -3307,7 +3301,6 @@
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -4966,7 +4959,6 @@
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -7628,7 +7620,6 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -7640,7 +7631,6 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -7660,7 +7650,6 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz",
"integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==",
"dev": true,
"peer": true,
"dependencies": {
"@types/use-sync-external-store": "^0.0.3",
"use-sync-external-store": "^1.0.0"
@@ -7813,8 +7802,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
"dev": true,
"peer": true
"dev": true
},
"node_modules/redux-thunk": {
"version": "3.1.0",
@@ -8638,7 +8626,6 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -8710,7 +8697,6 @@
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -8899,7 +8885,6 @@
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
@@ -9005,7 +8990,6 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -9400,7 +9384,6 @@
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz",
"integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==",
"dev": true,
"peer": true,
"requires": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -9436,7 +9419,6 @@
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.5.tgz",
"integrity": "sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==",
"dev": true,
"peer": true,
"requires": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -9825,7 +9807,6 @@
"resolved": "https://registry.npmjs.org/@mui/material/-/material-6.1.9.tgz",
"integrity": "sha512-NwqIN0bdsgzSbZd5JFcC+2ez0XW/XNs8uiV2PDHrqQ4qf/FEasFJG1z6g8JbCN0YlTrHZekVb17X0Fv0qcYJfQ==",
"dev": true,
"peer": true,
"requires": {
"@babel/runtime": "^7.26.0",
"@mui/core-downloads-tracker": "^6.1.9",
@@ -10804,7 +10785,6 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.66.tgz",
"integrity": "sha512-OYTmMI4UigXeFMF/j4uv0lBBEbongSgptPrHBxqME44h9+yNov+oL6Z3ocJKo0WyXR84sQUNeyIp9MRfckvZpg==",
"devOptional": true,
"peer": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -10816,7 +10796,6 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
"integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
"devOptional": true,
"peer": true,
"requires": {
"@types/react": "*"
}
@@ -10873,7 +10852,6 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.14.1.tgz",
"integrity": "sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==",
"dev": true,
"peer": true,
"requires": {
"@typescript-eslint/scope-manager": "7.14.1",
"@typescript-eslint/types": "7.14.1",
@@ -11002,8 +10980,7 @@
"acorn": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"peer": true
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw=="
},
"acorn-jsx": {
"version": "5.3.2",
@@ -12204,7 +12181,6 @@
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"peer": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -13989,7 +13965,6 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0"
}
@@ -13998,7 +13973,6 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -14015,7 +13989,6 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz",
"integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==",
"dev": true,
"peer": true,
"requires": {
"@types/use-sync-external-store": "^0.0.3",
"use-sync-external-store": "^1.0.0"
@@ -14095,8 +14068,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
"dev": true,
"peer": true
"dev": true
},
"redux-thunk": {
"version": "3.1.0",
@@ -14665,8 +14637,7 @@
"picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"peer": true
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="
}
}
},
@@ -14715,8 +14686,7 @@
"typescript": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"peer": true
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg=="
},
"typescript-eslint": {
"version": "7.14.1",
@@ -14839,7 +14809,6 @@
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
"peer": true,
"requires": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
@@ -14859,8 +14828,7 @@
"picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"peer": true
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="
}
}
},
+140 -132
View File
@@ -114,138 +114,142 @@ import p_111 from '@plugins/english/ZetroTranslation[madara]';
import p_112 from '@plugins/english/ao3';
import p_113 from '@plugins/english/bestlightnovel';
import p_114 from '@plugins/english/chrysanthemumgarden';
import p_115 from '@plugins/english/divinedaolibrary';
import p_116 from '@plugins/english/dreambigtl';
import p_117 from '@plugins/english/earlynovel';
import p_118 from '@plugins/english/faqwikius';
import p_119 from '@plugins/english/fenrirrealm';
import p_120 from '@plugins/english/fictionzone';
import p_121 from '@plugins/english/foxteller';
import p_122 from '@plugins/english/genesis';
import p_123 from '@plugins/english/inkitt';
import p_124 from '@plugins/english/kdtnovels';
import p_125 from '@plugins/english/lightnovelpub';
import p_126 from '@plugins/english/lightnoveltranslation';
import p_127 from '@plugins/english/lnmtl';
import p_128 from '@plugins/english/mtlreader';
import p_129 from '@plugins/english/mvlempyr';
import p_130 from '@plugins/english/novelbuddy';
import p_131 from '@plugins/english/novelfire';
import p_132 from '@plugins/english/novelhall';
import p_133 from '@plugins/english/novelight';
import p_134 from '@plugins/english/novelupdates';
import p_135 from '@plugins/english/pawread';
import p_136 from '@plugins/english/rainofsnow';
import p_137 from '@plugins/english/readfrom';
import p_138 from '@plugins/english/readlitenovel';
import p_139 from '@plugins/english/reaperscans';
import p_140 from '@plugins/english/relibrary';
import p_141 from '@plugins/english/royalroad';
import p_142 from '@plugins/english/scribblehub';
import p_143 from '@plugins/english/vynovel';
import p_144 from '@plugins/english/webnovel';
import p_145 from '@plugins/english/wtrlab';
import p_146 from '@plugins/english/wuxiaworld';
import p_147 from '@plugins/french/LighNovelFR[lightnovelwp]';
import p_148 from '@plugins/french/MTLNovel(FR)[mtlnovel]';
import p_149 from '@plugins/french/MassNovel[madara]';
import p_150 from '@plugins/french/WorldNovel[madara]';
import p_151 from '@plugins/french/chireads';
import p_152 from '@plugins/french/harkeneliwood';
import p_153 from '@plugins/french/kisswood';
import p_154 from '@plugins/french/noveldeglace';
import p_155 from '@plugins/french/novhell';
import p_156 from '@plugins/french/phenixscans';
import p_157 from '@plugins/french/warriorlegendtrad';
import p_158 from '@plugins/french/wuxialnscantrad';
import p_159 from '@plugins/french/xiaowaz';
import p_160 from '@plugins/indonesian/BacaLightNovel[lightnovelwp]';
import p_161 from '@plugins/indonesian/MTLNovel(ID)[mtlnovel]';
import p_162 from '@plugins/indonesian/MeioNovel[madara]';
import p_163 from '@plugins/indonesian/NovelBookID[madara]';
import p_164 from '@plugins/indonesian/Risenovel[madara]';
import p_165 from '@plugins/indonesian/SekteNovel[lightnovelwp]';
import p_166 from '@plugins/indonesian/WBNovel[madara]';
import p_167 from '@plugins/indonesian/indowebnovel';
import p_168 from '@plugins/indonesian/novelringan';
import p_169 from '@plugins/indonesian/sakuranovel';
import p_170 from '@plugins/japanese/Syosetu';
import p_171 from '@plugins/japanese/kakuyomu';
import p_172 from '@plugins/korean/Agitoon';
import p_173 from '@plugins/korean/FortuneEternal[madara]';
import p_174 from '@plugins/multi/komga';
import p_175 from '@plugins/polish/novelki';
import p_176 from '@plugins/portuguese/BetterNovels[lightnovelwp]';
import p_177 from '@plugins/portuguese/CentralNovel[lightnovelwp]';
import p_178 from '@plugins/portuguese/Kiniga[madara]';
import p_179 from '@plugins/portuguese/LaNovels[hotnovelpub]';
import p_180 from '@plugins/portuguese/LightNovelBrasil[lightnovelwp]';
import p_181 from '@plugins/portuguese/MTLNovel(PT)[mtlnovel]';
import p_182 from '@plugins/portuguese/blogdoamonnovels';
import p_183 from '@plugins/portuguese/novelmania';
import p_184 from '@plugins/portuguese/tsundoku';
import p_185 from '@plugins/russian/Bookhamster[ifreedom]';
import p_186 from '@plugins/russian/Erolate[rulate]';
import p_187 from '@plugins/russian/EzNovels[hotnovelpub]';
import p_188 from '@plugins/russian/LitSpace';
import p_189 from '@plugins/russian/MTLNovel(RU)[mtlnovel]';
import p_190 from '@plugins/russian/NovelCool(RU)[novelcool]';
import p_191 from '@plugins/russian/Ranobes(RU)[ranobes]';
import p_192 from '@plugins/russian/Rulate[rulate]';
import p_193 from '@plugins/russian/authortoday';
import p_194 from '@plugins/russian/bookriver';
import p_195 from '@plugins/russian/ficbook';
import p_196 from '@plugins/russian/jaomix';
import p_197 from '@plugins/russian/neobook';
import p_198 from '@plugins/russian/novelOvh';
import p_199 from '@plugins/russian/novelTL';
import p_200 from '@plugins/russian/ranobehub';
import p_201 from '@plugins/russian/ranobelib';
import p_202 from '@plugins/russian/ranoberf';
import p_203 from '@plugins/russian/renovels';
import p_204 from '@plugins/russian/ruvers';
import p_205 from '@plugins/russian/topliba';
import p_206 from '@plugins/russian/zelluloza';
import p_207 from '@plugins/russian/СвободныйМирРанобэ[ifreedom]';
import p_208 from '@plugins/spanish/AllNovelRead[lightnovelwp]';
import p_209 from '@plugins/spanish/AnimesHoy12[madara]';
import p_210 from '@plugins/spanish/LightNovelDaily[hotnovelpub]';
import p_211 from '@plugins/spanish/MTLNovel(ES)[mtlnovel]';
import p_212 from '@plugins/spanish/PanchoTranslations[madara]';
import p_213 from '@plugins/spanish/TC&Sega[lightnovelwp]';
import p_214 from '@plugins/spanish/TraduccionesAmistosas[madara]';
import p_215 from '@plugins/spanish/hasutl';
import p_216 from '@plugins/spanish/novelasligera';
import p_217 from '@plugins/spanish/novelawuxia';
import p_218 from '@plugins/spanish/oasistranslations';
import p_219 from '@plugins/spanish/skynovels';
import p_220 from '@plugins/spanish/tunovelaligera';
import p_221 from '@plugins/spanish/yukitls';
import p_222 from '@plugins/thai/NovelLucky[madara]';
import p_223 from '@plugins/thai/NovelPDF[madara]';
import p_224 from '@plugins/turkish/ArazNovel[madara]';
import p_225 from '@plugins/turkish/EKTAPLAR[madara]';
import p_226 from '@plugins/turkish/KodeksLibrary[lightnovelwp]';
import p_227 from '@plugins/turkish/MangaTR';
import p_228 from '@plugins/turkish/NABSCANS[madara]';
import p_229 from '@plugins/turkish/Namevt[lightnovelwp]';
import p_230 from '@plugins/turkish/NovelTR[lightnovelwp]';
import p_231 from '@plugins/turkish/Noveloku[madara]';
import p_232 from '@plugins/turkish/RagnarScans[madara]';
import p_233 from '@plugins/turkish/ThNovels[hotnovelpub]';
import p_234 from '@plugins/turkish/TurkceLightNovels[madara]';
import p_235 from '@plugins/turkish/WebNovelOku[madara]';
import p_236 from '@plugins/turkish/epiknovel';
import p_237 from '@plugins/turkish/kakikata[madara]';
import p_238 from '@plugins/ukrainian/bakainua';
import p_239 from '@plugins/ukrainian/smakolykytl';
import p_240 from '@plugins/ukrainian/uaranobeclub';
import p_241 from '@plugins/vietnamese/LNHako';
import p_242 from '@plugins/vietnamese/Truyenconect';
import p_243 from '@plugins/vietnamese/lightnovelvn';
import p_244 from '@plugins/vietnamese/nettruyen';
import p_245 from '@plugins/vietnamese/truyenchu';
import p_246 from '@plugins/vietnamese/truyenfull';
import p_115 from '@plugins/english/crimsonscrolls';
import p_116 from '@plugins/english/divinedaolibrary';
import p_117 from '@plugins/english/dreambigtl';
import p_118 from '@plugins/english/earlynovel';
import p_119 from '@plugins/english/faqwikius';
import p_120 from '@plugins/english/fenrirrealm';
import p_121 from '@plugins/english/fictionzone';
import p_122 from '@plugins/english/foxteller';
import p_123 from '@plugins/english/genesis';
import p_124 from '@plugins/english/inkitt';
import p_125 from '@plugins/english/kdtnovels';
import p_126 from '@plugins/english/leafstudio';
import p_127 from '@plugins/english/lightnovelpub';
import p_128 from '@plugins/english/lightnoveltranslation';
import p_129 from '@plugins/english/lnmtl';
import p_130 from '@plugins/english/mtlreader';
import p_131 from '@plugins/english/mvlempyr';
import p_132 from '@plugins/english/novelbuddy';
import p_133 from '@plugins/english/novelfire.paged';
import p_134 from '@plugins/english/novelfire';
import p_135 from '@plugins/english/novelhall';
import p_136 from '@plugins/english/novelight';
import p_137 from '@plugins/english/novelupdates';
import p_138 from '@plugins/english/pawread';
import p_139 from '@plugins/english/rainofsnow';
import p_140 from '@plugins/english/readfrom';
import p_141 from '@plugins/english/readlitenovel';
import p_142 from '@plugins/english/reaperscans';
import p_143 from '@plugins/english/relibrary';
import p_144 from '@plugins/english/royalroad';
import p_145 from '@plugins/english/scribblehub';
import p_146 from '@plugins/english/vynovel';
import p_147 from '@plugins/english/webnovel';
import p_148 from '@plugins/english/wtrlab';
import p_149 from '@plugins/english/wuxiaworld';
import p_150 from '@plugins/french/LighNovelFR[lightnovelwp]';
import p_151 from '@plugins/french/MTLNovel(FR)[mtlnovel]';
import p_152 from '@plugins/french/MassNovel[madara]';
import p_153 from '@plugins/french/WorldNovel[madara]';
import p_154 from '@plugins/french/chireads';
import p_155 from '@plugins/french/harkeneliwood';
import p_156 from '@plugins/french/kisswood';
import p_157 from '@plugins/french/noveldeglace';
import p_158 from '@plugins/french/novhell';
import p_159 from '@plugins/french/phenixscans';
import p_160 from '@plugins/french/warriorlegendtrad';
import p_161 from '@plugins/french/wuxialnscantrad';
import p_162 from '@plugins/french/xiaowaz';
import p_163 from '@plugins/indonesian/BacaLightNovel[lightnovelwp]';
import p_164 from '@plugins/indonesian/MTLNovel(ID)[mtlnovel]';
import p_165 from '@plugins/indonesian/MeioNovel[madara]';
import p_166 from '@plugins/indonesian/NovelBookID[madara]';
import p_167 from '@plugins/indonesian/Risenovel[madara]';
import p_168 from '@plugins/indonesian/SekteNovel[lightnovelwp]';
import p_169 from '@plugins/indonesian/Vanovel[madara]';
import p_170 from '@plugins/indonesian/WBNovel[madara]';
import p_171 from '@plugins/indonesian/indowebnovel';
import p_172 from '@plugins/indonesian/novelringan';
import p_173 from '@plugins/indonesian/sakuranovel';
import p_174 from '@plugins/japanese/Syosetu';
import p_175 from '@plugins/japanese/kakuyomu';
import p_176 from '@plugins/korean/Agitoon';
import p_177 from '@plugins/korean/FortuneEternal[madara]';
import p_178 from '@plugins/multi/komga';
import p_179 from '@plugins/polish/novelki';
import p_180 from '@plugins/portuguese/BetterNovels[lightnovelwp]';
import p_181 from '@plugins/portuguese/CentralNovel[lightnovelwp]';
import p_182 from '@plugins/portuguese/Kiniga[madara]';
import p_183 from '@plugins/portuguese/LaNovels[hotnovelpub]';
import p_184 from '@plugins/portuguese/LightNovelBrasil[lightnovelwp]';
import p_185 from '@plugins/portuguese/MTLNovel(PT)[mtlnovel]';
import p_186 from '@plugins/portuguese/blogdoamonnovels';
import p_187 from '@plugins/portuguese/novelmania';
import p_188 from '@plugins/portuguese/tsundoku';
import p_189 from '@plugins/russian/Bookhamster[ifreedom]';
import p_190 from '@plugins/russian/Erolate[rulate]';
import p_191 from '@plugins/russian/EzNovels[hotnovelpub]';
import p_192 from '@plugins/russian/LitSpace';
import p_193 from '@plugins/russian/MTLNovel(RU)[mtlnovel]';
import p_194 from '@plugins/russian/NovelCool(RU)[novelcool]';
import p_195 from '@plugins/russian/Ranobes(RU)[ranobes]';
import p_196 from '@plugins/russian/Rulate[rulate]';
import p_197 from '@plugins/russian/authortoday';
import p_198 from '@plugins/russian/bookriver';
import p_199 from '@plugins/russian/ficbook';
import p_200 from '@plugins/russian/jaomix';
import p_201 from '@plugins/russian/neobook';
import p_202 from '@plugins/russian/novelOvh';
import p_203 from '@plugins/russian/novelTL';
import p_204 from '@plugins/russian/ranobehub';
import p_205 from '@plugins/russian/ranobelib';
import p_206 from '@plugins/russian/ranoberf';
import p_207 from '@plugins/russian/renovels';
import p_208 from '@plugins/russian/ruvers';
import p_209 from '@plugins/russian/topliba';
import p_210 from '@plugins/russian/zelluloza';
import p_211 from '@plugins/russian/СвободныйМирРанобэ[ifreedom]';
import p_212 from '@plugins/spanish/AllNovelRead[lightnovelwp]';
import p_213 from '@plugins/spanish/AnimesHoy12[madara]';
import p_214 from '@plugins/spanish/LightNovelDaily[hotnovelpub]';
import p_215 from '@plugins/spanish/MTLNovel(ES)[mtlnovel]';
import p_216 from '@plugins/spanish/PanchoTranslations[madara]';
import p_217 from '@plugins/spanish/TC&Sega[lightnovelwp]';
import p_218 from '@plugins/spanish/TraduccionesAmistosas[madara]';
import p_219 from '@plugins/spanish/hasutl';
import p_220 from '@plugins/spanish/novelasligera';
import p_221 from '@plugins/spanish/novelawuxia';
import p_222 from '@plugins/spanish/oasistranslations';
import p_223 from '@plugins/spanish/skynovels';
import p_224 from '@plugins/spanish/tunovelaligera';
import p_225 from '@plugins/spanish/yukitls';
import p_226 from '@plugins/thai/NovelLucky[madara]';
import p_227 from '@plugins/thai/NovelPDF[madara]';
import p_228 from '@plugins/turkish/ArazNovel[madara]';
import p_229 from '@plugins/turkish/EKTAPLAR[madara]';
import p_230 from '@plugins/turkish/KodeksLibrary[lightnovelwp]';
import p_231 from '@plugins/turkish/MangaTR';
import p_232 from '@plugins/turkish/NABSCANS[madara]';
import p_233 from '@plugins/turkish/Namevt[lightnovelwp]';
import p_234 from '@plugins/turkish/NovelTR[lightnovelwp]';
import p_235 from '@plugins/turkish/Noveloku[madara]';
import p_236 from '@plugins/turkish/RagnarScans[madara]';
import p_237 from '@plugins/turkish/ThNovels[hotnovelpub]';
import p_238 from '@plugins/turkish/TurkceLightNovels[madara]';
import p_239 from '@plugins/turkish/WebNovelOku[madara]';
import p_240 from '@plugins/turkish/epiknovel';
import p_241 from '@plugins/turkish/kakikata[madara]';
import p_242 from '@plugins/ukrainian/bakainua';
import p_243 from '@plugins/ukrainian/smakolykytl';
import p_244 from '@plugins/ukrainian/uaranobeclub';
import p_245 from '@plugins/vietnamese/LNHako';
import p_246 from '@plugins/vietnamese/Truyenconect';
import p_247 from '@plugins/vietnamese/lightnovelvn';
import p_248 from '@plugins/vietnamese/nettruyen';
import p_249 from '@plugins/vietnamese/truyenchu';
import p_250 from '@plugins/vietnamese/truyenfull';
const PLUGINS: Plugin.PluginBase[] = [
p_0,
@@ -495,5 +499,9 @@ const PLUGINS: Plugin.PluginBase[] = [
p_244,
p_245,
p_246,
p_247,
p_248,
p_249,
p_250,
];
export default PLUGINS;
+31 -29
View File
@@ -409,43 +409,45 @@ export default function ParseNovelSection({
<h4 className="font-semibold text-foreground">
Chapters ({chapters.length})
</h4>
{sourceNovel.totalPages && sourceNovel.totalPages > 1 && (
{sourceNovel.totalPages && (
<div className="flex items-center gap-2">
{sourceNovel.totalPages > 1 && (
<>
<Button
variant="outline"
size="sm"
onClick={() => fetchPage(currentPage - 1)}
disabled={currentPage === 1 || loading}
>
<ChevronLeft className="w-4 h-4" />
Previous
</Button>
<span className="text-sm text-muted-foreground">
Page {currentPage} of {sourceNovel.totalPages}
</span>
<Button
variant="outline"
size="sm"
onClick={() => fetchPage(currentPage + 1)}
disabled={
currentPage === sourceNovel.totalPages || loading
}
>
Next
<ChevronRight className="w-4 h-4" />
</Button>
</>
)}
<Button
variant="outline"
size="sm"
onClick={() => fetchPage(currentPage - 1)}
disabled={currentPage === 1 || loading}
onClick={() => fetchPage(currentPage || 1)}
disabled={loading}
>
<ChevronLeft className="w-4 h-4" />
Previous
</Button>
<span className="text-sm text-muted-foreground">
Page {currentPage} of {sourceNovel.totalPages}
</span>
<Button
variant="outline"
size="sm"
onClick={() => fetchPage(currentPage + 1)}
disabled={
currentPage === sourceNovel.totalPages || loading
}
>
Next
<ChevronRight className="w-4 h-4" />
{loading ? 'Fetching...' : 'Fetch Page'}
</Button>
</div>
)}
{sourceNovel.totalPages && (
<Button
variant="outline"
size="sm"
onClick={() => fetchPage(currentPage)}
disabled={!currentPage || loading}
>
{loading ? 'Fetching...' : 'Chapter Fetch'}
</Button>
)}
</div>
<div className="overflow-x-auto border border-border rounded-lg">
<table className="w-full text-sm">