const React = require('react'); const classnames = require('classnames'); const { MainNavBar, MetaItem, MetaPreview, Multiselect } = require('stremio/common'); const useDiscover = require('./useDiscover'); const styles = require('./styles'); // TODO render only 4 pickers and a more button that opens a modal with all pickers const Discover = ({ urlParams, queryParams }) => { const [selectInputs, metaItems, error] = useDiscover(urlParams, queryParams); const [selectedMetaItem, setSelectedMetaItem] = React.useState(null); const metaItemsOnMouseDownCapture = React.useCallback((event) => { event.nativeEvent.buttonBlurPrevented = true; }, []); const metaItemsOnFocusCapture = React.useCallback((event) => { const metaItem = metaItems.find(({ id }) => { return id === event.target.dataset.id; }); if (metaItem) { setSelectedMetaItem(metaItem); } }, [metaItems]); React.useEffect(() => { const metaItem = Array.isArray(metaItems) && metaItems.length > 0 ? metaItems[0] : null; setSelectedMetaItem(metaItem); }, [metaItems]); return (
{selectInputs.map((selectInput, index) => ( ))}
{ error ?
{error}
: Array.isArray(metaItems) ? metaItems.length > 0 ?
{metaItems.map((metaItem, index) => ( ))}
:
Empty catalog
:
Loading
}
{ selectedMetaItem !== null ? :
}
); }; module.exports = Discover;