From 96781925b09961b269300c6fe2b6bc6fbd5555bf Mon Sep 17 00:00:00 2001 From: Michael An <2331806369@qq.com> Date: Wed, 10 Jan 2024 13:59:30 +0800 Subject: [PATCH] change AI search result is markdown (#5888) --- .../src/components/search/ai-search-ask.css | 19 ++++++++++ .../src/components/search/ai-search-ask.js | 36 +++++++++---------- .../ai-search-widgets/ai-search-refrences.css | 1 + 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/frontend/src/components/search/ai-search-ask.css b/frontend/src/components/search/ai-search-ask.css index b9014eca61..31e06d6fb0 100644 --- a/frontend/src/components/search/ai-search-ask.css +++ b/frontend/src/components/search/ai-search-ask.css @@ -41,6 +41,25 @@ width: 100%; } +.ai-search-ask .ai-search-ask-body .ai-search-ask-body-markdown .sf-slate-viewer-scroll-container { + padding: 0; + background: none; +} + +.ai-search-ask .ai-search-ask-body .ai-search-ask-body-markdown .sf-slate-viewer-article-container { + margin: 0; +} + +.ai-search-ask .ai-search-ask-body .ai-search-ask-body-markdown .article { + padding: 0; + border: none; +} + +.ai-search-ask .ai-search-ask-body .ai-search-ask-body-markdown .article p { + margin-top: 0; + margin-bottom: 1rem; +} + .ai-search-ask .ai-search-ask-footer { border-top: 1px solid rgba(0, 40, 100, 0.12); margin: 0 1rem; diff --git a/frontend/src/components/search/ai-search-ask.js b/frontend/src/components/search/ai-search-ask.js index 4621e7928c..bfa2561a9b 100644 --- a/frontend/src/components/search/ai-search-ask.js +++ b/frontend/src/components/search/ai-search-ask.js @@ -36,7 +36,7 @@ export default class AISearchAsk extends Component { super(props); this.state = { value: props.value, - isLoading: false, + isLoading: true, answeringResult: '', hitFiles: [], }; @@ -101,11 +101,12 @@ export default class AISearchAsk extends Component { }; formatQuestionAnsweringItems(data) { + if (!Array.isArray(data)) return []; let items = []; for (let i = 0; i < data.length; i++) { items[i] = {}; items[i]['index'] = [i]; - items[i]['name'] = data[i].substring(data[i].lastIndexOf('/')+1); + items[i]['name'] = data[i].substring(data[i].lastIndexOf('/') + 1); items[i]['path'] = data[i]; items[i]['repo_id'] = this.props.repoID; items[i]['is_dir'] = false; @@ -135,11 +136,10 @@ export default class AISearchAsk extends Component { search_repo: repoID || 'all', }; seafileAPI.questionAnsweringFiles(searchParams, token).then(res => { - const { answering_result } = res.data || {}; - const hit_files = answering_result !== 'false' ? res.data.hit_files : []; + let { answering_result, hit_files } = res.data || {}; this.setState({ isLoading: false, - answeringResult: answering_result === 'false' ? 'No result' : answering_result, + answeringResult: answering_result === 'false' ? '' : answering_result.trim(), hitFiles: this.formatQuestionAnsweringItems(hit_files), }); }).catch(error => { @@ -152,6 +152,7 @@ export default class AISearchAsk extends Component { }; render() { + const { isLoading, answeringResult, hitFiles } = this.state; return (
{gettext('No result')}
+ }