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)))));
};