@droppii-org/chat-sdk
Version:
Droppii React Chat SDK
29 lines (28 loc) • 1.91 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { Empty, Spin } from "antd";
import { useTranslation } from "react-i18next";
import { useSearchMessage } from "../../hooks/search/useSearchMessage";
import { MessageType } from "@openim/wasm-client-sdk";
import InfiniteScroll from "react-infinite-scroll-component";
import SearchItemAsMessage from "./item/SearchItemAsMessage";
import useConversationStore from "../../store/conversation";
const SearchMessageOnCurrentConversation = (props) => {
const { searchTerm = "" } = props;
const { t } = useTranslation();
const conversationData = useConversationStore((state) => state.conversationData);
const { dataFlatten, hasNextPage, fetchNextPage, isLoading } = useSearchMessage({
payload: {
searchTerm: searchTerm.trim(),
contentType: MessageType.TextMessage,
recvID: conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID,
},
});
if (searchTerm.trim() === "")
return _jsx(Empty, { description: t("no_search_text") });
if (dataFlatten.length === 0 && !isLoading)
return _jsx(Empty, { description: t("no_result") });
if (isLoading)
return (_jsx("div", { className: "flex items-center justify-center", children: _jsx(Spin, {}) }));
return (_jsx("div", { id: "scrollableVideoDiv", className: "h-full overflow-auto", children: _jsx(InfiniteScroll, { dataLength: dataFlatten.length, next: fetchNextPage, hasMore: hasNextPage, loader: _jsx("div", { className: "flex items-center justify-center py-2", children: _jsx(Spin, {}) }), scrollableTarget: "scrollableVideoDiv", children: dataFlatten.map((item) => (_jsx(SearchItemAsMessage, { message: item.chatLog, searchTerm: searchTerm, onClick: props === null || props === void 0 ? void 0 : props.onClose }))) }) }));
};
export default SearchMessageOnCurrentConversation;