mirror of
https://github.com/sussy-code/smov.git
synced 2024-12-20 14:37:43 +01:00
fix: remove unnecessary lodash functions and use setInterval instead
This commit is contained in:
parent
e78d7a36f5
commit
c8fa561c7f
3 changed files with 14 additions and 17 deletions
|
@ -103,7 +103,6 @@ module.exports = {
|
|||
allowSeparatedGroups: true
|
||||
}
|
||||
],
|
||||
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
|
||||
...a11yOff
|
||||
}
|
||||
};
|
||||
|
|
|
@ -79,7 +79,6 @@
|
|||
"@types/crypto-js": "^4.2.1",
|
||||
"@types/dompurify": "^3.0.5",
|
||||
"@types/fscreen": "^1.0.4",
|
||||
"@types/lodash": "^4.17.0",
|
||||
"@types/lodash.isequal": "^4.5.8",
|
||||
"@types/lodash.merge": "^4.6.9",
|
||||
"@types/lodash.throttle": "^4.1.9",
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import classNames from "classnames";
|
||||
import { debounce, throttle } from "lodash";
|
||||
import { useCallback, useEffect } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
|
@ -102,23 +101,23 @@ export function NextEpisodeButton(props: {
|
|||
]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!enableAutoplay || !meta || !nextEp || metaType !== "show") return;
|
||||
const halfPercent = duration / 100;
|
||||
const isEnding = time >= duration - halfPercent && duration !== 0;
|
||||
if (!enableAutoplay || metaType !== "show") return;
|
||||
|
||||
const debouncedLoadNextEpisode = throttle(debounce(loadNextEpisode), 300);
|
||||
const allowAutoplay = Boolean(
|
||||
conf().ALLOW_AUTOPLAY ||
|
||||
isExtensionActiveCached() ||
|
||||
useAuthStore.getState().proxySet,
|
||||
);
|
||||
const interval = setInterval(() => {
|
||||
const onePercent = duration / 100;
|
||||
const isEnding = time >= duration - onePercent && duration !== 0;
|
||||
|
||||
if (isEnding && allowAutoplay) debouncedLoadNextEpisode();
|
||||
const allowAutoplay = Boolean(
|
||||
conf().ALLOW_AUTOPLAY ||
|
||||
isExtensionActiveCached() ||
|
||||
useAuthStore.getState().proxySet,
|
||||
);
|
||||
|
||||
return () => {
|
||||
debouncedLoadNextEpisode.cancel();
|
||||
};
|
||||
}, [duration, enableAutoplay, loadNextEpisode, meta, metaType, nextEp, time]);
|
||||
if (isEnding && allowAutoplay) loadNextEpisode();
|
||||
}, 250);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, [duration, enableAutoplay, loadNextEpisode, metaType, time]);
|
||||
|
||||
if (!meta?.episode || !nextEp) return null;
|
||||
if (metaType !== "show") return null;
|
||||
|
|
Loading…
Reference in a new issue