diff --git a/src/routes/MetaDetails/MetaDetails.js b/src/routes/MetaDetails/MetaDetails.js index 8a50b59c1..1a34e046a 100644 --- a/src/routes/MetaDetails/MetaDetails.js +++ b/src/routes/MetaDetails/MetaDetails.js @@ -1,7 +1,7 @@ // Copyright (C) 2017-2023 Smart code 203358507 const React = require('react'); -const PropTypes = require('prop-types'); +const { useParams } = require('react-router'); const classnames = require('classnames'); const { useServices } = require('stremio/services'); const { withCoreSuspender } = require('stremio/common'); @@ -13,10 +13,11 @@ const useSeason = require('./useSeason'); const useMetaExtensionTabs = require('./useMetaExtensionTabs'); const styles = require('./styles'); -const MetaDetails = ({ urlParams, queryParams }) => { +const MetaDetails = () => { + const urlParams = useParams(); const { core } = useServices(); const metaDetails = useMetaDetails(urlParams); - const [season, setSeason] = useSeason(urlParams, queryParams); + const [season, setSeason] = useSeason(urlParams); const [tabs, metaExtension, clearMetaExtension] = useMetaExtensionTabs(metaDetails.metaExtensions); const [metaPath, streamPath] = React.useMemo(() => { 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 useSeason = (urlParams) => { + const [queryParams, setQueryParams] = useSearchParams(); const season = React.useMemo(() => { return queryParams.has('season') && !isNaN(queryParams.get('season')) ? parseInt(queryParams.get('season'), 10) @@ -12,7 +14,7 @@ const useSeason = (urlParams, queryParams) => { const setSeason = React.useCallback((season) => { const nextQueryParams = new URLSearchParams(queryParams); nextQueryParams.set('season', season); - window.location.replace(`#${urlParams.path}?${nextQueryParams}`); + setQueryParams(nextQueryParams); }, [urlParams, queryParams]); return [season, setSeason]; };