fix(MetaDetails): parse correct url and search params

This commit is contained in:
Botzy 2025-04-29 18:54:00 +03:00
parent ed65bed7c8
commit f87ef3de4e
2 changed files with 8 additions and 14 deletions

View file

@ -1,7 +1,7 @@
// Copyright (C) 2017-2023 Smart code 203358507 // Copyright (C) 2017-2023 Smart code 203358507
const React = require('react'); const React = require('react');
const PropTypes = require('prop-types'); const { useParams } = require('react-router');
const classnames = require('classnames'); const classnames = require('classnames');
const { useServices } = require('stremio/services'); const { useServices } = require('stremio/services');
const { withCoreSuspender } = require('stremio/common'); const { withCoreSuspender } = require('stremio/common');
@ -13,10 +13,11 @@ const useSeason = require('./useSeason');
const useMetaExtensionTabs = require('./useMetaExtensionTabs'); const useMetaExtensionTabs = require('./useMetaExtensionTabs');
const styles = require('./styles'); const styles = require('./styles');
const MetaDetails = ({ urlParams, queryParams }) => { const MetaDetails = () => {
const urlParams = useParams();
const { core } = useServices(); const { core } = useServices();
const metaDetails = useMetaDetails(urlParams); const metaDetails = useMetaDetails(urlParams);
const [season, setSeason] = useSeason(urlParams, queryParams); const [season, setSeason] = useSeason(urlParams);
const [tabs, metaExtension, clearMetaExtension] = useMetaExtensionTabs(metaDetails.metaExtensions); const [tabs, metaExtension, clearMetaExtension] = useMetaExtensionTabs(metaDetails.metaExtensions);
const [metaPath, streamPath] = React.useMemo(() => { const [metaPath, streamPath] = React.useMemo(() => {
return metaDetails.selected !== null ? return metaDetails.selected !== null ?
@ -212,15 +213,6 @@ const MetaDetails = ({ urlParams, queryParams }) => {
); );
}; };
MetaDetails.propTypes = {
urlParams: PropTypes.shape({
type: PropTypes.string,
id: PropTypes.string,
videoId: PropTypes.string
}),
queryParams: PropTypes.instanceOf(URLSearchParams)
};
const MetaDetailsFallback = () => ( const MetaDetailsFallback = () => (
<div className={styles['metadetails-container']}> <div className={styles['metadetails-container']}>
<HorizontalNavBar <HorizontalNavBar

View file

@ -1,8 +1,10 @@
// Copyright (C) 2017-2023 Smart code 203358507 // Copyright (C) 2017-2023 Smart code 203358507
const React = require('react'); const React = require('react');
const { useSearchParams } = require('react-router-dom');
const useSeason = (urlParams, queryParams) => { const useSeason = (urlParams) => {
const [queryParams, setQueryParams] = useSearchParams();
const season = React.useMemo(() => { const season = React.useMemo(() => {
return queryParams.has('season') && !isNaN(queryParams.get('season')) ? return queryParams.has('season') && !isNaN(queryParams.get('season')) ?
parseInt(queryParams.get('season'), 10) parseInt(queryParams.get('season'), 10)
@ -12,7 +14,7 @@ const useSeason = (urlParams, queryParams) => {
const setSeason = React.useCallback((season) => { const setSeason = React.useCallback((season) => {
const nextQueryParams = new URLSearchParams(queryParams); const nextQueryParams = new URLSearchParams(queryParams);
nextQueryParams.set('season', season); nextQueryParams.set('season', season);
window.location.replace(`#${urlParams.path}?${nextQueryParams}`); setQueryParams(nextQueryParams);
}, [urlParams, queryParams]); }, [urlParams, queryParams]);
return [season, setSeason]; return [season, setSeason];
}; };