@antv/dumi-theme-antv
Version:
AntV website theme based on dumi2.
85 lines (84 loc) • 3.2 kB
JavaScript
import { useIntl, useSiteData } from 'dumi';
import React from 'react';
import styles from "./SearchResult.module.less";
import classnames from "classnames";
import { AIChatStore, createNewSession } from "../../../model/AIChat";
import { authStore, showLoginModal } from "../../../model/auth";
import { useSnapshot } from "valtio";
var getHighlightInfo = function getHighlightInfo(textSegments) {
return /*#__PURE__*/React.createElement(React.Fragment, null, textSegments.map(function (segment) {
return /*#__PURE__*/React.createElement("span", {
className: "".concat(styles.segment, " ").concat(segment.highlighted ? styles.highlighted : '')
}, segment.text);
}));
};
/**
* 展示搜索结果
* @returns
*/
export var SearchResult = function SearchResult(_ref) {
var results = _ref.results,
keywords = _ref.keywords;
var _useSiteData = useSiteData(),
themeConfig = _useSiteData.themeConfig;
var intl = useIntl();
var authSnap = useSnapshot(authStore);
function pureSearch() {
AIChatStore.mode = 'solve';
createNewSession({
promptText: keywords,
mode: 'solve',
lib: !themeConfig.isAntVSite ? themeConfig.title : undefined,
jump: true,
lang: intl.locale === 'zh' ? 'zh' : 'en',
entry_point: 'SearchResult'
});
}
return /*#__PURE__*/React.createElement("div", {
className: styles.searchResult
}, /*#__PURE__*/React.createElement("div", {
className: styles.item
}, /*#__PURE__*/React.createElement("div", {
className: styles.subject
}, /*#__PURE__*/React.createElement("img", {
src: "https://mdn.alipayobjects.com/huamei_qa8qxu/afts/img/A*7svFR6wkPMoAAAAAAAAAAAAADmJ7AQ/original",
alt: "AntV"
})), /*#__PURE__*/React.createElement("div", {
className: styles.br
}), /*#__PURE__*/React.createElement("a", {
className: styles.result,
onClick: function onClick() {
if (!authSnap.isAuthenticated) {
showLoginModal(pureSearch);
return;
}
pureSearch();
}
}, /*#__PURE__*/React.createElement("div", {
className: classnames(styles.title, styles.highlighted)
}, keywords), /*#__PURE__*/React.createElement("div", {
className: styles.description
}, intl.formatMessage({
id: 'ai.search.try'
}), "\xA0", /*#__PURE__*/React.createElement("span", {
className: styles.highlighted
}, "AI"), "\xA0", intl.formatMessage({
id: 'ai.search.visualization'
})))), results !== null && results !== void 0 && results.length ? results.map(function (r, index) {
return /*#__PURE__*/React.createElement("div", {
className: styles.item,
key: index
}, /*#__PURE__*/React.createElement("div", {
className: styles.subject
}, r.subject), /*#__PURE__*/React.createElement("div", {
className: styles.br
}), /*#__PURE__*/React.createElement("a", {
className: styles.result,
href: r.link
}, /*#__PURE__*/React.createElement("div", {
className: styles.title
}, getHighlightInfo(r.title)), /*#__PURE__*/React.createElement("div", {
className: styles.description
}, getHighlightInfo(r.description))));
}) : /*#__PURE__*/React.createElement(React.Fragment, null));
};