1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 18:29:23 +00:00

change AI search result is markdown (#5888)

This commit is contained in:
Michael An
2024-01-10 13:59:30 +08:00
committed by GitHub
parent c9ada9a448
commit 96781925b0
3 changed files with 37 additions and 19 deletions

View File

@@ -41,6 +41,25 @@
width: 100%; 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 { .ai-search-ask .ai-search-ask-footer {
border-top: 1px solid rgba(0, 40, 100, 0.12); border-top: 1px solid rgba(0, 40, 100, 0.12);
margin: 0 1rem; margin: 0 1rem;

View File

@@ -36,7 +36,7 @@ export default class AISearchAsk extends Component {
super(props); super(props);
this.state = { this.state = {
value: props.value, value: props.value,
isLoading: false, isLoading: true,
answeringResult: '', answeringResult: '',
hitFiles: [], hitFiles: [],
}; };
@@ -101,11 +101,12 @@ export default class AISearchAsk extends Component {
}; };
formatQuestionAnsweringItems(data) { formatQuestionAnsweringItems(data) {
if (!Array.isArray(data)) return [];
let items = []; let items = [];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
items[i] = {}; items[i] = {};
items[i]['index'] = [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]['path'] = data[i];
items[i]['repo_id'] = this.props.repoID; items[i]['repo_id'] = this.props.repoID;
items[i]['is_dir'] = false; items[i]['is_dir'] = false;
@@ -135,11 +136,10 @@ export default class AISearchAsk extends Component {
search_repo: repoID || 'all', search_repo: repoID || 'all',
}; };
seafileAPI.questionAnsweringFiles(searchParams, token).then(res => { seafileAPI.questionAnsweringFiles(searchParams, token).then(res => {
const { answering_result } = res.data || {}; let { answering_result, hit_files } = res.data || {};
const hit_files = answering_result !== 'false' ? res.data.hit_files : [];
this.setState({ this.setState({
isLoading: false, isLoading: false,
answeringResult: answering_result === 'false' ? 'No result' : answering_result, answeringResult: answering_result === 'false' ? '' : answering_result.trim(),
hitFiles: this.formatQuestionAnsweringItems(hit_files), hitFiles: this.formatQuestionAnsweringItems(hit_files),
}); });
}).catch(error => { }).catch(error => {
@@ -152,6 +152,7 @@ export default class AISearchAsk extends Component {
}; };
render() { render() {
const { isLoading, answeringResult, hitFiles } = this.state;
return ( return (
<div className="search"> <div className="search">
<div className="search-mask show" onClick={this.props.closeAsk}></div> <div className="search-mask show" onClick={this.props.closeAsk}></div>
@@ -164,7 +165,7 @@ export default class AISearchAsk extends Component {
{gettext('Return')} {gettext('Return')}
</div> </div>
{this.state.isLoading ? {isLoading ?
<div className="d-flex align-items-center my-8"> <div className="d-flex align-items-center my-8">
<Loading /> <Loading />
</div> </div>
@@ -174,20 +175,17 @@ export default class AISearchAsk extends Component {
<AISearchRobot/> <AISearchRobot/>
</div> </div>
<div className="ai-search-ask-body-right"> <div className="ai-search-ask-body-right">
{/* <div>{this.state.answeringResult}</div>s */} {answeringResult.length > 0 ?
<div className="ai-search-ask-body-markdown">
{/* markdown viewer */} <MarkdownViewer value={answeringResult} isShowOutline={false}/>
<div className="ai-search-ask-body-markdown"> </div>
<MarkdownViewer :
value={this.state.answeringResult} <p>{gettext('No result')}</p>
isShowOutline={false} }
/>
</div>
<AISearchHelp /> <AISearchHelp />
{this.state.hitFiles.length > 0 && {hitFiles.length > 0 &&
<AISearchRefrences <AISearchRefrences
hitFiles={this.state.hitFiles} hitFiles={hitFiles}
onItemClickHandler={this.props.onItemClickHandler} onItemClickHandler={this.props.onItemClickHandler}
/> />
} }
@@ -196,7 +194,7 @@ export default class AISearchAsk extends Component {
} }
<div className="ai-search-ask-footer"> <div className="ai-search-ask-footer">
<div className={`input-icon mb-1`}> <div className="input-icon mb-1">
<input <input
type="text" type="text"
className="form-control search-input w-100" className="form-control search-input w-100"

View File

@@ -1,5 +1,6 @@
.ai-search-refrences { .ai-search-refrences {
margin-top: 10px; margin-top: 10px;
padding-bottom: 10px;
} }
.ai-search-refrences .ai-search-refrences-title { .ai-search-refrences .ai-search-refrences-title {