import React, { FunctionComponent, useEffect, useRef } from 'react'; import cardBuilder from '../cardbuilder/cardBuilder'; import '../../elements/emby-scroller/emby-scroller'; import '../../elements/emby-itemscontainer/emby-itemscontainer'; // There seems to be some compatibility issues here between // React and our legacy web components, so we need to inject // them as an html string for now =/ const createScroller = ({ title = '' }) => ({ __html: `

${title}

` }); type SearchResultsRowProps = { title: string; items: Array; // TODO: Should be Array once we have a typed API client cardOptions: Record; } const SearchResultsRow: FunctionComponent = ({ title, items = [], cardOptions = {} }: SearchResultsRowProps) => { const element = useRef(null); useEffect(() => { cardBuilder.buildCards(items, { itemsContainer: element.current?.querySelector('.itemsContainer'), parentContainer: element.current, shape: 'autooverflow', scalable: true, showTitle: true, overlayText: false, centerText: true, allowBottomPadding: false, ...cardOptions }); }, [cardOptions, items]); return (
); }; export default SearchResultsRow;