aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/search
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-04-21 19:03:49 -0400
committerbobzel <zzzman@gmail.com>2024-04-21 19:03:49 -0400
commit939e18624af4252551f38c43335ee8ef0acd144c (patch)
treed4e7a8dd4db05737ec1343ff8d80611537bde65b /src/client/views/search
parent57d9c12d6b88d6814e468aca93b9bf809eabd9ce (diff)
more lint cleanup
Diffstat (limited to 'src/client/views/search')
-rw-r--r--src/client/views/search/SearchBox.tsx68
1 files changed, 34 insertions, 34 deletions
diff --git a/src/client/views/search/SearchBox.tsx b/src/client/views/search/SearchBox.tsx
index af9f05a14..0c1a419aa 100644
--- a/src/client/views/search/SearchBox.tsx
+++ b/src/client/views/search/SearchBox.tsx
@@ -1,3 +1,5 @@
+/* eslint-disable jsx-a11y/no-static-element-interactions */
+/* eslint-disable jsx-a11y/click-events-have-key-events */
import { Tooltip } from '@mui/material';
import { action, computed, makeObservable, observable } from 'mobx';
import { observer } from 'mobx-react';
@@ -40,6 +42,7 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
public static LayoutString(fieldKey: string) {
return FieldView.LayoutString(SearchBox, fieldKey);
}
+ // eslint-disable-next-line no-use-before-define
public static Instance: SearchBox;
private _inputRef = React.createRef<HTMLInputElement>();
@@ -135,20 +138,23 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
* This method iterates asynchronously through an array of docs and all docs within those
* docs, calling the function func on each doc.
*/
- static async foreachRecursiveDocAsync(docs: Doc[], func: (depth: number, doc: Doc) => void) {
+ static async foreachRecursiveDocAsync(docsIn: Doc[], func: (depth: number, doc: Doc) => void) {
+ let docs = docsIn;
let newarray: Doc[] = [];
- var depth = 0;
+ let depth = 0;
while (docs.length > 0) {
newarray = [];
+ // eslint-disable-next-line no-await-in-loop
await Promise.all(
docs
.filter(d => d)
+ // eslint-disable-next-line no-loop-func
.map(async d => {
const fieldKey = Doc.LayoutFieldKey(d);
const annos = !Field.toString(Doc.LayoutField(d) as FieldType).includes('CollectionView');
const data = d[annos ? fieldKey + '_annotations' : fieldKey];
- const docs = await DocListCastAsync(data);
- docs && newarray.push(...docs);
+ const dataDocs = await DocListCastAsync(data);
+ dataDocs && newarray.push(...dataDocs);
func(depth, d);
})
);
@@ -170,6 +176,7 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
case DocumentType.IMG : return 'Img';
case DocumentType.RTF : return 'Rtf';
case DocumentType.COL : return 'Col:'+colType.substring(0,3);
+ default:
} // prettier-ignore
return type.charAt(0).toUpperCase() + type.substring(1, 3);
@@ -298,35 +305,27 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
if (query) {
this.searchCollection(query);
const response = await fetchRecommendations('', query, [], true);
- const recs = response.recommendations;
+ const recs = response.recommendations as any[];
const recommendations: IRecommendation[] = [];
- for (const key in recs) {
- const title = recs[key].title;
- const url = recs[key].url;
- const type = recs[key].type;
- const text = recs[key].text;
- const transcript = recs[key].transcript;
- const previewUrl = recs[key].previewUrl;
- const embedding = recs[key].embedding;
- const distance = recs[key].distance;
- const source = recs[key].source;
- const related_concepts = recs[key].related_concepts;
- const docId = recs[key].doc_id;
+ recs.forEach(rec => {
+ const { title, url, type, text, transcript, previewUrl, embedding, distance, source, related_concepts: relatedConcepts, doc_id: docId } = rec;
recommendations.push({
- title: title,
+ title,
data: url,
- type: type,
- text: text,
- transcript: transcript,
- previewUrl: previewUrl,
- embedding: embedding,
+ type,
+ text,
+ transcript,
+ previewUrl,
+ embedding,
distance: Math.round(distance * 100) / 100,
source: source,
- related_concepts: related_concepts,
- docId: docId,
+ related_concepts: relatedConcepts,
+ docId,
});
- }
- const setRecommendations = action(() => (this._recommendations = recommendations));
+ });
+ const setRecommendations = action(() => {
+ this._recommendations = recommendations;
+ });
setRecommendations();
}
};
@@ -375,30 +374,30 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
* This method renders the search input box, select drop-down menu, and search results.
*/
render() {
- var validResults = 0;
+ let validResults = 0;
const isLinkSearch: boolean = this._props.linkSearch;
const sortedResults = Array.from(this._results.entries()).sort((a, b) => (this._pageRanks.get(b[0]) ?? 0) - (this._pageRanks.get(a[0]) ?? 0)); // sorted by page rank
- const resultsJSX = Array();
+ const resultsJSX = [] as any[];
const fromDoc = this._props.linkFrom?.();
sortedResults.forEach(result => {
- var className = 'searchBox-results-scroll-view-result';
+ let className = 'searchBox-results-scroll-view-result';
if (this._selectedResult === result[0]) {
className += ' searchBox-results-scroll-view-result-selected';
}
const formattedType = SearchBox.formatType(StrCast(result[0].type), StrCast(result[0].type_collection));
- const title = result[0].title;
+ const { title } = result[0];
if (this._docTypeString === 'keys' || this._docTypeString === 'all' || this._docTypeString === result[0].type) {
validResults++;
resultsJSX.push(
- <Tooltip key={result[0][Id]} placement={'right'} title={<div className="dash-tooltip">{title as string}</div>}>
+ <Tooltip key={result[0][Id]} placement="right" title={<div className="dash-tooltip">{title as string}</div>}>
<div
onClick={
isLinkSearch
@@ -429,6 +428,7 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
}
});
+ // eslint-disable-next-line react/jsx-props-no-spreading
const recommendationsJSX: JSX.Element[] = this._recommendations.map(props => <Recommendation {...props} />);
return (
@@ -459,7 +459,7 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
<div className="searchBox-results-container">
<div className="section-header" style={{ background: SettingsManager.userVariantColor }}>
<div className="section-title">Results</div>
- <div className="section-subtitle">{`${validResults}` + ' result' + (validResults === 1 ? '' : 's')}</div>
+ <div className="section-subtitle">{`${validResults} result` + (validResults === 1 ? '' : 's')}</div>
</div>
<div className="searchBox-results-view">{resultsJSX}</div>
</div>
@@ -468,7 +468,7 @@ export class SearchBox extends ViewBoxBaseComponent<SearchBoxProps>() {
<div className="searchBox-recommendations-container">
<div className="section-header" style={{ background: SettingsManager.userVariantColor }}>
<div className="section-title">Recommendations</div>
- <div className="section-subtitle">{`${validResults}` + ' result' + (validResults === 1 ? '' : 's')}</div>
+ <div className="section-subtitle">{`${validResults} result` + (validResults === 1 ? '' : 's')}</div>
</div>
<div className="searchBox-recommendations-view">{recommendationsJSX}</div>
</div>