@droppii-org/chat-sdk
Version:
Droppii React Chat SDK
36 lines (35 loc) • 3.12 kB
JavaScript
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;