@linzjs/lui 17.4.0 → 17.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +0 -1
- package/dist/components/LuiSearchBox/LuiSearchBox.d.ts +1 -0
- package/dist/components/LuiSearchInput/LuiSearchInput.d.ts +1 -0
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/lui.esm.js +33 -2
- package/dist/lui.esm.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## [17.5.2](https://github.com/linz/lui/compare/v17.5.1...v17.5.2) (2022-06-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* clear search input after search type changed. ([#692](https://github.com/linz/lui/issues/692)) ([9c4138c](https://github.com/linz/lui/commit/9c4138c335b92788cb8e3420fdcc45a6d3f80658))
|
|
7
|
+
|
|
8
|
+
## [17.5.1](https://github.com/linz/lui/compare/v17.5.0...v17.5.1) (2022-06-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Release for LuiSearchBox change. ([#691](https://github.com/linz/lui/issues/691)) ([b449ab8](https://github.com/linz/lui/commit/b449ab8488bc232570ae496405d464207adebfdf))
|
|
14
|
+
|
|
15
|
+
# [17.5.0](https://github.com/linz/lui/compare/v17.4.0...v17.5.0) (2022-06-01)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **LuiSearchInput:** Add no result message to LuiSearchInput component. ([#689](https://github.com/linz/lui/issues/689)) ([f7d23c3](https://github.com/linz/lui/commit/f7d23c3107c8a87db179fb869c43537b7d634c05))
|
|
21
|
+
|
|
1
22
|
# [17.4.0](https://github.com/linz/lui/compare/v17.3.3...v17.4.0) (2022-06-01)
|
|
2
23
|
|
|
3
24
|
|
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@ import React, { ReactElement } from 'react';
|
|
|
2
2
|
import { LuiButtonProps } from '../LuiButton/LuiButton';
|
|
3
3
|
import { ISearchResult, ISearchGroupedResult } from '../LuiSearchInput/LuiSearchInput';
|
|
4
4
|
export interface ISearchMenuOption {
|
|
5
|
+
name?: string;
|
|
5
6
|
groupTitle?: string;
|
|
6
7
|
groupDivider?: boolean;
|
|
7
8
|
value: string;
|
|
@@ -19,6 +19,7 @@ export interface ISearchInputProps {
|
|
|
19
19
|
disclaimer?: string;
|
|
20
20
|
initialValue?: string;
|
|
21
21
|
inputTransformer?: (input: string) => string;
|
|
22
|
+
name?: string;
|
|
22
23
|
}
|
|
23
24
|
export declare function isGroupedResult(result: ISearchResult[] | ISearchGroupedResult[]): result is ISearchGroupedResult[];
|
|
24
25
|
export declare const LuiSearchInput: React.FC<ISearchInputProps>;
|
package/dist/index.js
CHANGED
|
@@ -55910,6 +55910,10 @@ var LuiSearchInput = function (props) {
|
|
|
55910
55910
|
var _e = React.useState(false), isLoading = _e[0], setIsLoading = _e[1];
|
|
55911
55911
|
var inputRef = React.useRef(null);
|
|
55912
55912
|
var selectedRef = React.useRef(null);
|
|
55913
|
+
//clear result after search types changed
|
|
55914
|
+
React.useEffect(function () {
|
|
55915
|
+
setResults([]);
|
|
55916
|
+
}, [props.getOptions]);
|
|
55913
55917
|
function setInputValue(value) {
|
|
55914
55918
|
setTypedValue(props.inputTransformer ? props.inputTransformer(value) : value);
|
|
55915
55919
|
}
|
|
@@ -56014,6 +56018,25 @@ var LuiSearchInput = function (props) {
|
|
|
56014
56018
|
},
|
|
56015
56019
|
} })) : null;
|
|
56016
56020
|
var searchIcon = (React__default["default"].createElement(LuiIcon, { className: 'LuiSearchInput-startIconPosition', name: "ic_search", size: "md", alt: "search", spanProps: { onClick: function () { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); } } }));
|
|
56021
|
+
var typeMore = 'You need to type a few more characters';
|
|
56022
|
+
function enoughChars(input) {
|
|
56023
|
+
if (typeof props.minCharactersForSearch === 'number')
|
|
56024
|
+
return input.length >= props.minCharactersForSearch;
|
|
56025
|
+
else
|
|
56026
|
+
return false;
|
|
56027
|
+
}
|
|
56028
|
+
function noOptionsMessage(inputValue) {
|
|
56029
|
+
if (inputValue === '') {
|
|
56030
|
+
return null;
|
|
56031
|
+
}
|
|
56032
|
+
if (!enoughChars(inputValue)) {
|
|
56033
|
+
return typeMore;
|
|
56034
|
+
}
|
|
56035
|
+
if (props.name)
|
|
56036
|
+
return "The " + props.name + " could not be displayed or does not exist.";
|
|
56037
|
+
else
|
|
56038
|
+
return null;
|
|
56039
|
+
}
|
|
56017
56040
|
return (React__default["default"].createElement("div", { className: "LuiSearchInput" },
|
|
56018
56041
|
React__default["default"].createElement("span", { className: "LuiSearchInput-inputWrapper" },
|
|
56019
56042
|
searchIcon,
|
|
@@ -56022,10 +56045,17 @@ var LuiSearchInput = function (props) {
|
|
|
56022
56045
|
setHaveFocus(true);
|
|
56023
56046
|
},
|
|
56024
56047
|
// This timeout could be a little brittle but allows the menu to stay open long enough to click it
|
|
56025
|
-
onBlur: function () { return setTimeout(function () { return setHaveFocus(false); },
|
|
56048
|
+
onBlur: function () { return setTimeout(function () { return setHaveFocus(false); }, 200); } }),
|
|
56026
56049
|
cancelIcon),
|
|
56027
56050
|
(isLoading || results.length > 0) && haveFocus && (React__default["default"].createElement("div", null,
|
|
56028
56051
|
React__default["default"].createElement(ResultsDisplay, { results: results, selectedId: selectedId, setSelectedId: setSelectedId, selectedRef: selectedRef, onClick: selectItem, isLoading: isLoading, renderItem: props.renderItem }))),
|
|
56052
|
+
props.name &&
|
|
56053
|
+
haveFocus &&
|
|
56054
|
+
results.length === 0 &&
|
|
56055
|
+
!isLoading &&
|
|
56056
|
+
noOptionsMessage(typedValue) && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
56057
|
+
React__default["default"].createElement("hr", { className: "LuiSearchInput-resultSeparator" }),
|
|
56058
|
+
React__default["default"].createElement("div", { "data-testid": "no-result-msg", className: "LuiSearchInput-disclaimer" }, noOptionsMessage(typedValue)))),
|
|
56029
56059
|
props.disclaimer && haveFocus && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
56030
56060
|
React__default["default"].createElement("hr", { className: "LuiSearchInput-resultSeparator" }),
|
|
56031
56061
|
React__default["default"].createElement("div", { "data-testid": "disclaimer", className: "LuiSearchInput-disclaimer" }, props.disclaimer)))));
|
|
@@ -56059,7 +56089,7 @@ var LuiSearchBox = function (_a) {
|
|
|
56059
56089
|
return (React__default["default"].createElement("div", { className: "LuiSearchBox" },
|
|
56060
56090
|
React__default["default"].createElement(LuiSelectMenu, { menuButton: React__default["default"].createElement(LuiSearchBoxButton, null, selectedMenuOption.title) }, renderSelectMenu(searchBoxOptions, handleMenuSelected)),
|
|
56061
56091
|
React__default["default"].createElement("div", { className: "LuiSearchBox-right" },
|
|
56062
|
-
React__default["default"].createElement(LuiSearchInput, { minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
56092
|
+
React__default["default"].createElement(LuiSearchInput, { name: selectedMenuOption.name ? selectedMenuOption.name : undefined, minCharactersForSearch: 2, placeholderText: selectedMenuOption.placeholderText, getOptions: selectedMenuOption.getOption, onSelectOption: selectedMenuOption.onSelectOption, renderItem: selectedMenuOption.renderItem
|
|
56063
56093
|
? selectedMenuOption.renderItem
|
|
56064
56094
|
: function (item) {
|
|
56065
56095
|
return React__default["default"].createElement("span", { style: resultStyle$1 }, item.description);
|
|
@@ -56112,6 +56142,7 @@ var searchBoxOptions = [
|
|
|
56112
56142
|
groupTitle: 'Title',
|
|
56113
56143
|
value: 'address',
|
|
56114
56144
|
title: 'Address',
|
|
56145
|
+
name: 'address',
|
|
56115
56146
|
placeholderText: 'Enter a place, street or address. e.g. Newlands',
|
|
56116
56147
|
disclaimer: 'This is a default disclaimer, add your own search options',
|
|
56117
56148
|
getOption: getDefaultOptions,
|