Skip to content

Commit 00be344

Browse files
committed
feat: show lib suggestion when renderItem returns null
1 parent 37260b5 commit 00be344

File tree

4 files changed

+34
-15
lines changed

4 files changed

+34
-15
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,8 @@
5656
},
5757
"engines": {
5858
"node": ">=10.16"
59+
},
60+
"volta": {
61+
"node": "16.20.2"
5962
}
6063
}

packages/reactivecore

packages/web/src/components/search/SearchBox.js

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ import { ImageDropdown } from './addons/ImageDropdown';
7979
import { innerText } from '../shared/innerText';
8080
import TextWithTooltip from './addons/TextWithTooltip';
8181
import { Thumbnail, CameraIcon } from './addons/CameraIcon';
82+
import { FallbackRender } from './addons/FallbackRender';
8283

8384
const md = new Remarkable();
8485

@@ -202,6 +203,7 @@ const SearchBox = (props) => {
202203
// Document suggestions don't have a meaningful label and value
203204
const newSuggestion = { ...suggestion };
204205
newSuggestion.label = 'For document suggestions, please implement a renderItem method to display label.';
206+
// If renderItem is provided we can get the value from it's content
205207
if (typeof props.renderItem === 'function') {
206208
const jsxEl = props.renderItem(newSuggestion);
207209
const innerValue = innerText(jsxEl);
@@ -2039,11 +2041,13 @@ const SearchBox = (props) => {
20392041
)}`
20402042
}`}
20412043
>
2042-
{props.renderItem ? (
2043-
props.renderItem(
2044-
sectionItem,
2045-
)
2046-
) : (
2044+
<FallbackRender
2045+
item={typeof props.renderItem === 'function' ? (
2046+
props.renderItem(
2047+
sectionItem,
2048+
)
2049+
) : null}
2050+
>
20472051
<React.Fragment>
20482052
<div
20492053
style={{
@@ -2100,7 +2104,7 @@ const SearchBox = (props) => {
21002104
sectionItem,
21012105
)}
21022106
</React.Fragment>
2103-
)}
2107+
</FallbackRender>
21042108
</li>
21052109
),
21062110
)}
@@ -2136,9 +2140,13 @@ const SearchBox = (props) => {
21362140
)}`
21372141
}`}
21382142
>
2139-
{props.renderItem ? (
2140-
props.renderItem(item)
2141-
) : (
2143+
<FallbackRender
2144+
item={typeof props.renderItem === 'function' ? (
2145+
props.renderItem(
2146+
item,
2147+
)
2148+
) : null}
2149+
>
21422150
<React.Fragment>
21432151
<SuggestionItem
21442152
currentValue={
@@ -2148,7 +2156,7 @@ const SearchBox = (props) => {
21482156
suggestion={item}
21492157
/>
21502158
</React.Fragment>
2151-
)}
2159+
</FallbackRender>
21522160
</li>
21532161
);
21542162
}
@@ -2172,9 +2180,13 @@ const SearchBox = (props) => {
21722180
)}`
21732181
}`}
21742182
>
2175-
{props.renderItem ? (
2176-
props.renderItem(item)
2177-
) : (
2183+
<FallbackRender
2184+
item={typeof props.renderItem === 'function' ? (
2185+
props.renderItem(
2186+
item,
2187+
)
2188+
) : null}
2189+
>
21782190
<React.Fragment>
21792191
{/* eslint-disable */}
21802192

@@ -2213,7 +2225,7 @@ const SearchBox = (props) => {
22132225

22142226
{getActionIcon(item)}
22152227
</React.Fragment>
2216-
)}
2228+
</FallbackRender>
22172229
</li>
22182230
);
22192231
})}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// Use children as fallback if the passed item is null
2+
export const FallbackRender = ({ item, children }) => (item || children);
3+
4+
export default FallbackRender;

0 commit comments

Comments
 (0)