aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/frontend/src/main/components/search
diff options
context:
space:
mode:
authorMarcin Aman <maman@virtuslab.com>2020-07-30 15:05:06 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-08-21 15:40:12 +0200
commit3c07bc1966c85de3351602c4e8798fa507c40e49 (patch)
treeef39ea18a4ec699e4cab9dc55489b43fccb1e247 /plugins/base/frontend/src/main/components/search
parentc2b02c1fc17b839075b7cb6fd42498a519473fae (diff)
downloaddokka-3c07bc1966c85de3351602c4e8798fa507c40e49.tar.gz
dokka-3c07bc1966c85de3351602c4e8798fa507c40e49.tar.bz2
dokka-3c07bc1966c85de3351602c4e8798fa507c40e49.zip
Create navigation search component
Diffstat (limited to 'plugins/base/frontend/src/main/components/search')
-rw-r--r--plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx18
-rw-r--r--plugins/base/frontend/src/main/components/search/search.scss14
-rw-r--r--plugins/base/frontend/src/main/components/search/search.tsx1
-rw-r--r--plugins/base/frontend/src/main/components/search/types.ts1
4 files changed, 19 insertions, 15 deletions
diff --git a/plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx b/plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx
index 725fbaee..2d9dcb3d 100644
--- a/plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx
+++ b/plugins/base/frontend/src/main/components/search/dokkaFuzzyFilter.tsx
@@ -39,10 +39,20 @@ const highlightMatchedPhrases = (records: OptionWithSearchResult[]): OptionWithH
}
export class DokkaFuzzyFilterComponent extends Select {
+ componentDidUpdate(prevProps, prevState) {
+ super.componentDidUpdate(prevProps, prevState)
+ if(this.props.filter && this.state.filterValue != this.props.filter.value){
+ this.setState({
+ filterValue: this.props.filter.value,
+ })
+ }
+ }
+
getListItems(rawFilterString: string, _: Option[]) {
+ const filterPhrase = (rawFilterString ? rawFilterString : '').trim()
const matchedRecords = this.props.data
.map((record: Option) => {
- const bySearchKey = fuzzyHighlight(rawFilterString.trim(), record.searchKey, false)
+ const bySearchKey = fuzzyHighlight(filterPhrase, record.searchKey, false)
if(bySearchKey.matched){
return {
...bySearchKey,
@@ -51,13 +61,15 @@ export class DokkaFuzzyFilterComponent extends Select {
}
}
return {
- ...fuzzyHighlight(rawFilterString.trim(), record.name, false),
+ ...fuzzyHighlight(filterPhrase, record.name, false),
...record,
rank: SearchRank.NameMatch
}
})
.filter((record: OptionWithSearchResult) => record.matched)
- return highlightMatchedPhrases(orderRecords(matchedRecords, rawFilterString))
+ this.props.onFilter(filterPhrase, matchedRecords)
+
+ return highlightMatchedPhrases(orderRecords(matchedRecords, filterPhrase))
}
} \ No newline at end of file
diff --git a/plugins/base/frontend/src/main/components/search/search.scss b/plugins/base/frontend/src/main/components/search/search.scss
index 1068fe7a..e708ef84 100644
--- a/plugins/base/frontend/src/main/components/search/search.scss
+++ b/plugins/base/frontend/src/main/components/search/search.scss
@@ -14,20 +14,12 @@
min-width: calc(100% - 360px) !important;
}
-.indented {
- text-indent: 10px;
-}
-
-.disabled {
- color: gray;
-}
-
.template-wrapper {
+ height: 32px;
display: grid;
grid-template-columns: auto auto;
-
- span.phraseHighlight {
- font-weight: bold;
+ span {
+ line-height: 32px;
}
}
diff --git a/plugins/base/frontend/src/main/components/search/search.tsx b/plugins/base/frontend/src/main/components/search/search.tsx
index c7976edb..ef26c662 100644
--- a/plugins/base/frontend/src/main/components/search/search.tsx
+++ b/plugins/base/frontend/src/main/components/search/search.tsx
@@ -20,6 +20,7 @@ const WithFuzzySearchFilterComponent: React.FC<Props> = ({data}: Props) => {
<div className="search-container">
<div className="search">
<DokkaFuzzyFilterComponent
+ id="pages-search"
selectedLabel="Search"
label="Please type page name"
filter={true}
diff --git a/plugins/base/frontend/src/main/components/search/types.ts b/plugins/base/frontend/src/main/components/search/types.ts
index 922935bd..11e2edf8 100644
--- a/plugins/base/frontend/src/main/components/search/types.ts
+++ b/plugins/base/frontend/src/main/components/search/types.ts
@@ -6,7 +6,6 @@ export type Page = {
location: string;
searchKey: string;
description: string;
- disabled: boolean;
}
export type Option = Page & {