Browse Source

fix: remove unnecessary lodash functions and use setInterval instead

pull/1072/head
qtchaos 1 year ago
parent
commit
c8fa561c7f
No known key found for this signature in database
GPG Key ID: 7DA98B2B9EF06A90
  1. 1
      .eslintrc.js
  2. 1
      package.json
  3. 29
      src/components/player/atoms/NextEpisodeButton.tsx

1
.eslintrc.js

@ -103,7 +103,6 @@ module.exports = { @@ -103,7 +103,6 @@ module.exports = {
allowSeparatedGroups: true
}
],
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
...a11yOff
}
};

1
package.json

@ -79,7 +79,6 @@ @@ -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",

29
src/components/player/atoms/NextEpisodeButton.tsx

@ -1,5 +1,4 @@ @@ -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: { @@ -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…
Cancel
Save