From ca5eb06de9f8dc66a3a26fffc41675c1eb607089 Mon Sep 17 00:00:00 2001 From: ManishMadan2882 Date: Mon, 9 Dec 2024 02:43:26 +0530 Subject: [PATCH] (feat:filter results) improve markdown format, add filter --- .../react-widget/src/components/SearchBar.tsx | 59 ++++++++++--------- extensions/react-widget/tsconfig.json | 2 +- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/extensions/react-widget/src/components/SearchBar.tsx b/extensions/react-widget/src/components/SearchBar.tsx index 16072643..42262e08 100644 --- a/extensions/react-widget/src/components/SearchBar.tsx +++ b/extensions/react-widget/src/components/SearchBar.tsx @@ -1,11 +1,10 @@ import React from 'react' -import styled, { keyframes, createGlobalStyle, ThemeProvider } from 'styled-components'; +import styled, { ThemeProvider } from 'styled-components'; import { WidgetCore } from './DocsGPTWidget'; import { SearchBarProps } from '@/types'; import { getSearchResults } from '../requests/searchAPI' import { Result } from '@/types'; import MarkdownIt from 'markdown-it'; -import DOMPurify from 'dompurify'; import { getOS, preprocessSearchResultsToHTML } from '../utils/helper' const themes = { dark: { @@ -116,7 +115,7 @@ const ResultWrapper = styled.div` const Markdown = styled.div` line-height:20px; font-size: 12px; -word-break: break-all; +white-space: pre-wrap; pre { padding: 8px; width: 90%; @@ -147,17 +146,18 @@ word-break: break-all; code:not(pre code) { border-radius: 6px; - padding: 4px 4px; - font-size: 12px; - display: inline-block; + padding: 2px 2px; + margin: 2px; + font-size: 10px; + display: inline; background-color: #646464; color: #fff ; } - + img{ + max-width: 50%; + } code { - white-space: pre-wrap ; - overflow-wrap: break-word; - word-break: break-all; + overflow-x: auto; } a{ color: #007ee6; @@ -292,7 +292,7 @@ export const SearchBar = ({ return () => { console.log(results); - + abortController.abort(); clearTimeout(debounceTimeout.current ?? undefined); }; @@ -343,22 +343,27 @@ export const SearchBar = ({ (results.length > 0 ? results.map((res, key) => { const containsSource = res.source !== 'local'; - return ( - { - if (!containsSource) return; - window.open(res.source, '_blank', 'noopener, noreferrer') - }} - className={containsSource ? "contains-source" : ""}> - {res.title} - - - - - ) + const filteredResults = preprocessSearchResultsToHTML(res.text,input) + if (filteredResults) + return ( + { + if (!containsSource) return; + window.open(res.source, '_blank', 'noopener, noreferrer') + }} + className={containsSource ? "contains-source" : ""}> + {res.title} + + + + + ) + else { + setResults((prevItems) => prevItems.filter((_, index) => index !== key)); + } }) : No results diff --git a/extensions/react-widget/tsconfig.json b/extensions/react-widget/tsconfig.json index e73dd80f..88e86216 100644 --- a/extensions/react-widget/tsconfig.json +++ b/extensions/react-widget/tsconfig.json @@ -21,7 +21,7 @@ /* Linting */ "strict": true, "noUnusedLocals": false, - "noUnusedParameters": true, + "noUnusedParameters": false, "noFallthroughCasesInSwitch": true, /* The "typeRoots" configuration specifies the locations where TypeScript looks for type definitions (.d.ts files) to