stream-chat-react
Version: 
React components to create chat conversations or livestream style chat
22 lines (21 loc) • 1.52 kB
JavaScript
import React from 'react';
import { SearchSourceResultList as DefaultSearchSourceResultList } from './SearchSourceResultList';
import { SearchSourceResultsEmpty as DefaultSearchSourceResultsEmpty } from './SearchSourceResultsEmpty';
import { SearchSourceResultsHeader as DefaultSearchSourceResultsHeader } from './SearchSourceResultsHeader';
import { SearchSourceResultsContextProvider } from '../SearchSourceResultsContext';
import { useComponentContext } from '../../../context';
import { useStateStore } from '../../../store';
const searchSourceStateSelector = (nextValue) => ({
    isLoading: nextValue.isLoading,
    items: nextValue.items,
});
export const SearchSourceResults = ({ searchSource }) => {
    const { SearchSourceResultList = DefaultSearchSourceResultList, SearchSourceResultsEmpty = DefaultSearchSourceResultsEmpty, SearchSourceResultsHeader = DefaultSearchSourceResultsHeader, } = useComponentContext();
    const { isLoading, items } = useStateStore(searchSource.state, searchSourceStateSelector);
    if (!items && !isLoading)
        return null;
    return (React.createElement(SearchSourceResultsContextProvider, { value: { searchSource } },
        React.createElement("div", { className: 'str-chat__search-source-results', "data-testid": 'search-source-results' },
            React.createElement(SearchSourceResultsHeader, null),
            items?.length || isLoading ? (React.createElement(SearchSourceResultList, null)) : (React.createElement(SearchSourceResultsEmpty, null)))));
};