UNPKG

@droppii-org/chat-sdk

Version:

Droppii React Chat SDK

36 lines (35 loc) 3.12 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Button, Empty, Spin } from "antd"; import { useTranslation } from "react-i18next"; import { useSearchMessage } from "../../hooks/search/useSearchMessage"; import { MessageType } from "@openim/wasm-client-sdk"; import { Icon } from "../icon"; import SearchItemAsMessage from "./item/SearchItemAsMessage"; import { useGetSession } from "../../hooks/session/useGetSession"; import SearchItemAsUser from "./item/SearchItemAsUser"; import { SearchConversationTabKey } from "."; const SearchConversationAll = ({ searchTerm = "", setActiveKey, }) => { const { t } = useTranslation(); const { dataFlatten: messages, isLoading: isLoadingMessage, hasNextPage: hasNextPageMessage, } = useSearchMessage({ payload: { searchTerm: searchTerm.trim(), contentType: MessageType.TextMessage, }, options: { pageSize: 5 }, }); const { dataFlatten: sessions, isLoading: isLoadingSession, hasNextPage: hasNextPageSession, } = useGetSession({ filter: { searchTerm: searchTerm.trim(), }, options: { pageSize: 5 }, }); if (searchTerm.trim() === "" || (messages.length === 0 && sessions.length === 0)) { return (_jsx("div", { className: "h-full overflow-auto", children: _jsx(Empty, { description: t("no_conversation") }) })); } if (isLoadingMessage || isLoadingSession) { return (_jsx("div", { className: "h-full overflow-auto flex items-center justify-center", children: _jsx(Spin, {}) })); } return (_jsxs("div", { className: "h-full overflow-auto", children: [sessions.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between px-3", children: [_jsx("span", { className: "text-xs font-medium uppercase flex-1 text-gray-600", children: t("users") }), hasNextPageSession && (_jsx(Button, { type: "link", icon: _jsx(Icon, { icon: "angle-right-o", size: 18, className: "!align-[-4px]" }), iconPosition: "end", className: "p-0 gap-1", onClick: () => setActiveKey === null || setActiveKey === void 0 ? void 0 : setActiveKey(SearchConversationTabKey.Users), children: t("see_more") }))] }), _jsx("div", { children: sessions.map((session) => (_jsx(SearchItemAsUser, { session: session, searchTerm: searchTerm }))) })] })), messages.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between px-3", children: [_jsx("span", { className: "text-xs font-medium uppercase flex-1 text-gray-600", children: t("messages") }), hasNextPageMessage && (_jsx(Button, { type: "link", icon: _jsx(Icon, { icon: "angle-right-o", size: 18, className: "!align-[-4px]" }), iconPosition: "end", className: "p-0 gap-1", onClick: () => setActiveKey === null || setActiveKey === void 0 ? void 0 : setActiveKey(SearchConversationTabKey.Messages), children: t("see_more") }))] }), _jsx("div", { children: messages.map((message) => (_jsx(SearchItemAsMessage, { message: message.chatLog, searchTerm: searchTerm }))) })] }))] })); }; export default SearchConversationAll;