@hero-design/rn 8.77.1-alpha.10 → 8.78.0
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/.turbo/turbo-build.log +3 -4
- package/CHANGELOG.md +3 -3
- package/es/index.js +19 -2
- package/lib/index.js +19 -2
- package/package.json +1 -1
- package/src/components/Search/SearchOneLine.tsx +31 -1
- package/src/components/Search/__tests__/SearchOneLine.spec.tsx +123 -64
- package/src/components/Search/__tests__/__snapshots__/SearchOneLine.spec.tsx.snap +247 -67
- package/stats/8.78.0/rn-stats.html +4842 -0
- package/types/components/Accordion/AccordionItem.d.ts +0 -0
- package/types/components/Accordion/StyledAccordion.d.ts +0 -0
- package/types/components/Accordion/index.d.ts +0 -0
- package/types/components/Alert/StyledAlert.d.ts +0 -0
- package/types/components/Alert/index.d.ts +0 -0
- package/types/components/Attachment/StyledAttachment.d.ts +0 -0
- package/types/components/Attachment/index.d.ts +0 -0
- package/types/components/Avatar/Avatar.d.ts +0 -0
- package/types/components/Avatar/AvatarStack/StyledAvatarStack.d.ts +0 -0
- package/types/components/Avatar/AvatarStack/index.d.ts +0 -0
- package/types/components/Avatar/AvatarStack/utils.d.ts +0 -0
- package/types/components/Avatar/StyledAvatar.d.ts +0 -0
- package/types/components/Avatar/index.d.ts +0 -0
- package/types/components/Badge/Status.d.ts +0 -0
- package/types/components/Badge/StyledBadge.d.ts +0 -0
- package/types/components/Badge/index.d.ts +0 -0
- package/types/components/BottomNavigation/StyledBottomNavigation.d.ts +0 -0
- package/types/components/BottomNavigation/index.d.ts +0 -0
- package/types/components/BottomSheet/BottomSheetContext.d.ts +0 -0
- package/types/components/BottomSheet/Footer.d.ts +0 -0
- package/types/components/BottomSheet/Header.d.ts +0 -0
- package/types/components/BottomSheet/ScrollView.d.ts +0 -0
- package/types/components/BottomSheet/StyledBottomSheet.d.ts +0 -0
- package/types/components/BottomSheet/index.d.ts +0 -0
- package/types/components/Box/StyledBox.d.ts +0 -0
- package/types/components/Box/config.d.ts +0 -0
- package/types/components/Box/index.d.ts +0 -0
- package/types/components/Box/types.d.ts +0 -0
- package/types/components/Button/Button.d.ts +0 -0
- package/types/components/Button/IconButton.d.ts +0 -0
- package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +0 -0
- package/types/components/Button/LoadingIndicator/index.d.ts +0 -0
- package/types/components/Button/StyledButton.d.ts +0 -0
- package/types/components/Button/UtilityButton/StyledUtilityButton.d.ts +0 -0
- package/types/components/Button/UtilityButton/index.d.ts +0 -0
- package/types/components/Button/index.d.ts +0 -0
- package/types/components/Calendar/CalendarRowItem.d.ts +0 -0
- package/types/components/Calendar/StyledCalendar.d.ts +0 -0
- package/types/components/Calendar/helpers.d.ts +0 -0
- package/types/components/Calendar/index.d.ts +0 -0
- package/types/components/Card/DataCard/StyledDataCard.d.ts +0 -0
- package/types/components/Card/DataCard/index.d.ts +0 -0
- package/types/components/Card/StyledCard.d.ts +0 -0
- package/types/components/Card/index.d.ts +0 -0
- package/types/components/Carousel/CardCarousel.d.ts +0 -0
- package/types/components/Carousel/CarouselItem.d.ts +0 -0
- package/types/components/Carousel/StyledCardCarousel.d.ts +0 -0
- package/types/components/Carousel/StyledCarousel.d.ts +0 -0
- package/types/components/Carousel/contants.d.ts +0 -0
- package/types/components/Carousel/index.d.ts +0 -0
- package/types/components/Carousel/types.d.ts +0 -0
- package/types/components/Checkbox/StyledCheckbox.d.ts +0 -0
- package/types/components/Checkbox/index.d.ts +0 -0
- package/types/components/Collapse/StyledCollapse.d.ts +0 -0
- package/types/components/Collapse/index.d.ts +0 -0
- package/types/components/ContentNavigator/StyledContentNavigator.d.ts +0 -0
- package/types/components/ContentNavigator/index.d.ts +0 -0
- package/types/components/DatePicker/DatePickerAndroid.d.ts +0 -0
- package/types/components/DatePicker/DatePickerCalendar.d.ts +0 -0
- package/types/components/DatePicker/DatePickerIOS.d.ts +0 -0
- package/types/components/DatePicker/StyledDatePicker.d.ts +0 -0
- package/types/components/DatePicker/index.d.ts +0 -0
- package/types/components/DatePicker/types.d.ts +0 -0
- package/types/components/Divider/StyledDivider.d.ts +0 -0
- package/types/components/Divider/index.d.ts +0 -0
- package/types/components/Drawer/DragableDrawer/helpers.d.ts +0 -0
- package/types/components/Drawer/DragableDrawer/index.d.ts +0 -0
- package/types/components/Drawer/StyledDrawer.d.ts +0 -0
- package/types/components/Drawer/index.d.ts +0 -0
- package/types/components/Empty/StyledEmpty.d.ts +0 -0
- package/types/components/Empty/index.d.ts +0 -0
- package/types/components/Error/StyledError.d.ts +0 -0
- package/types/components/Error/index.d.ts +0 -0
- package/types/components/FAB/ActionGroup/ActionItem.d.ts +0 -0
- package/types/components/FAB/ActionGroup/StyledActionGroup.d.ts +0 -0
- package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +0 -0
- package/types/components/FAB/ActionGroup/index.d.ts +0 -0
- package/types/components/FAB/AnimatedFABIcon.d.ts +0 -0
- package/types/components/FAB/FAB.d.ts +0 -0
- package/types/components/FAB/StyledFAB.d.ts +0 -0
- package/types/components/FAB/index.d.ts +0 -0
- package/types/components/Icon/AnimatedIcon.d.ts +0 -0
- package/types/components/Icon/HeroIcon/index.d.ts +0 -0
- package/types/components/Icon/IconList.d.ts +0 -0
- package/types/components/Icon/index.d.ts +0 -0
- package/types/components/Icon/utils.d.ts +0 -0
- package/types/components/Image/index.d.ts +0 -0
- package/types/components/List/BasicListItem.d.ts +0 -0
- package/types/components/List/ListItem.d.ts +0 -0
- package/types/components/List/StyledBasicListItem.d.ts +0 -0
- package/types/components/List/StyledListItem.d.ts +0 -0
- package/types/components/List/index.d.ts +0 -0
- package/types/components/PageControl/StyledPageControl.d.ts +0 -0
- package/types/components/PageControl/index.d.ts +0 -0
- package/types/components/PinInput/PinCell.d.ts +0 -0
- package/types/components/PinInput/StyledPinInput.d.ts +0 -0
- package/types/components/PinInput/index.d.ts +0 -0
- package/types/components/Progress/ProgressBar.d.ts +0 -0
- package/types/components/Progress/ProgressCircle.d.ts +0 -0
- package/types/components/Progress/StyledProgressBar.d.ts +0 -0
- package/types/components/Progress/StyledProgressCircle.d.ts +0 -0
- package/types/components/Progress/__tests__/index.spec.d.ts +0 -0
- package/types/components/Progress/constants.d.ts +0 -0
- package/types/components/Progress/index.d.ts +0 -0
- package/types/components/Progress/types.d.ts +0 -0
- package/types/components/Radio/Radio.d.ts +0 -0
- package/types/components/Radio/RadioGroup.d.ts +0 -0
- package/types/components/Radio/StyledRadio.d.ts +0 -0
- package/types/components/Radio/index.d.ts +0 -0
- package/types/components/Radio/types.d.ts +0 -0
- package/types/components/RefreshControl/index.d.ts +0 -0
- package/types/components/RichTextEditor/EditorEvent.d.ts +0 -0
- package/types/components/RichTextEditor/EditorToolbar.d.ts +0 -0
- package/types/components/RichTextEditor/MentionList.d.ts +0 -0
- package/types/components/RichTextEditor/RichTextEditor.d.ts +0 -0
- package/types/components/RichTextEditor/StyledRichTextEditor.d.ts +0 -0
- package/types/components/RichTextEditor/StyledToolbar.d.ts +0 -0
- package/types/components/RichTextEditor/__mocks__/heroEditorApp.d.ts +0 -0
- package/types/components/RichTextEditor/constants.d.ts +0 -0
- package/types/components/RichTextEditor/heroEditorApp.d.ts +0 -0
- package/types/components/RichTextEditor/index.d.ts +0 -0
- package/types/components/RichTextEditor/types.d.ts +0 -0
- package/types/components/RichTextEditor/utils/events.d.ts +0 -0
- package/types/components/RichTextEditor/utils/rnWebView.d.ts +0 -0
- package/types/components/Search/SearchOneLine.d.ts +4 -0
- package/types/components/SectionHeading/StyledHeading.d.ts +0 -0
- package/types/components/SectionHeading/index.d.ts +0 -0
- package/types/components/Select/BaseOptionList.d.ts +0 -0
- package/types/components/Select/Footer.d.ts +0 -0
- package/types/components/Select/MultiSelect/Option.d.ts +0 -0
- package/types/components/Select/MultiSelect/OptionList.d.ts +0 -0
- package/types/components/Select/MultiSelect/index.d.ts +0 -0
- package/types/components/Select/SingleSelect/Option.d.ts +0 -0
- package/types/components/Select/SingleSelect/OptionList.d.ts +0 -0
- package/types/components/Select/SingleSelect/StyledSingleSelect.d.ts +0 -0
- package/types/components/Select/SingleSelect/index.d.ts +0 -0
- package/types/components/Select/StyledSelect.d.ts +0 -0
- package/types/components/Select/helpers.d.ts +0 -0
- package/types/components/Select/index.d.ts +0 -0
- package/types/components/Select/types.d.ts +0 -0
- package/types/components/Skeleton/StyledSkeleton.d.ts +0 -0
- package/types/components/Skeleton/index.d.ts +0 -0
- package/types/components/Slider/index.d.ts +0 -0
- package/types/components/Spinner/AnimatedSpinner.d.ts +0 -0
- package/types/components/Spinner/StyledSpinner.d.ts +0 -0
- package/types/components/Spinner/index.d.ts +0 -0
- package/types/components/Success/StyledSuccess.d.ts +0 -0
- package/types/components/Success/index.d.ts +0 -0
- package/types/components/Swipeable/StyledSwipeable.d.ts +0 -0
- package/types/components/Swipeable/SwipeableAction.d.ts +0 -0
- package/types/components/Swipeable/index.d.ts +0 -0
- package/types/components/Switch/SelectorSwitch/Option.d.ts +0 -0
- package/types/components/Switch/SelectorSwitch/StyledSelectorSwitch.d.ts +0 -0
- package/types/components/Switch/SelectorSwitch/index.d.ts +0 -0
- package/types/components/Switch/StyledSwitch.d.ts +0 -0
- package/types/components/Switch/index.d.ts +0 -0
- package/types/components/Tabs/ActiveTabIndicator.d.ts +0 -0
- package/types/components/Tabs/SceneView.d.ts +0 -0
- package/types/components/Tabs/ScrollableTabs.d.ts +0 -0
- package/types/components/Tabs/StyledScrollableTabs.d.ts +0 -0
- package/types/components/Tabs/StyledTabs.d.ts +0 -0
- package/types/components/Tabs/TabWithBadge.d.ts +0 -0
- package/types/components/Tabs/index.d.ts +0 -0
- package/types/components/Tabs/useIsFocused.d.ts +0 -0
- package/types/components/Tabs/utils.d.ts +0 -0
- package/types/components/Tag/StyledTag.d.ts +0 -0
- package/types/components/Tag/index.d.ts +0 -0
- package/types/components/TextInput/StyledTextInput.d.ts +0 -0
- package/types/components/TextInput/index.d.ts +0 -0
- package/types/components/TimePicker/StyledTimePicker.d.ts +0 -0
- package/types/components/TimePicker/TimePickerAndroid.d.ts +0 -0
- package/types/components/TimePicker/TimePickerIOS.d.ts +0 -0
- package/types/components/TimePicker/index.d.ts +0 -0
- package/types/components/TimePicker/types.d.ts +0 -0
- package/types/components/Toast/StyledToast.d.ts +0 -0
- package/types/components/Toast/Toast.d.ts +0 -0
- package/types/components/Toast/ToastContainer.d.ts +0 -0
- package/types/components/Toast/ToastContext.d.ts +0 -0
- package/types/components/Toast/ToastProvider.d.ts +0 -0
- package/types/components/Toast/index.d.ts +0 -0
- package/types/components/Toast/types.d.ts +0 -0
- package/types/components/Toolbar/StyledToolbar.d.ts +0 -0
- package/types/components/Toolbar/ToolbarGroup.d.ts +0 -0
- package/types/components/Toolbar/ToolbarItem.d.ts +0 -0
- package/types/components/Toolbar/index.d.ts +0 -0
- package/types/components/Typography/Text/StyledText.d.ts +0 -0
- package/types/components/Typography/Text/index.d.ts +0 -0
- package/types/components/Typography/index.d.ts +0 -0
- package/types/index.d.ts +0 -0
- package/types/testHelpers/renderWithTheme.d.ts +0 -0
- package/types/theme/ThemeProvider.d.ts +0 -0
- package/types/theme/ThemeSwitcher.d.ts +0 -0
- package/types/theme/components/accordion.d.ts +0 -0
- package/types/theme/components/alert.d.ts +0 -0
- package/types/theme/components/attachment.d.ts +0 -0
- package/types/theme/components/avatar.d.ts +0 -0
- package/types/theme/components/badge.d.ts +0 -0
- package/types/theme/components/bottomNavigation.d.ts +0 -0
- package/types/theme/components/bottomSheet.d.ts +0 -0
- package/types/theme/components/button.d.ts +0 -0
- package/types/theme/components/calendar.d.ts +0 -0
- package/types/theme/components/card.d.ts +0 -0
- package/types/theme/components/cardCarousel.d.ts +0 -0
- package/types/theme/components/carousel.d.ts +0 -0
- package/types/theme/components/checkbox.d.ts +0 -0
- package/types/theme/components/contentNavigator.d.ts +0 -0
- package/types/theme/components/datePicker.d.ts +0 -0
- package/types/theme/components/divider.d.ts +0 -0
- package/types/theme/components/drawer.d.ts +0 -0
- package/types/theme/components/empty.d.ts +0 -0
- package/types/theme/components/error.d.ts +0 -0
- package/types/theme/components/fab.d.ts +0 -0
- package/types/theme/components/icon.d.ts +0 -0
- package/types/theme/components/image.d.ts +0 -0
- package/types/theme/components/list.d.ts +0 -0
- package/types/theme/components/pageControl.d.ts +0 -0
- package/types/theme/components/pinInput.d.ts +0 -0
- package/types/theme/components/progress.d.ts +0 -0
- package/types/theme/components/radio.d.ts +0 -0
- package/types/theme/components/refreshControl.d.ts +0 -0
- package/types/theme/components/richTextEditor.d.ts +0 -0
- package/types/theme/components/sectionHeading.d.ts +0 -0
- package/types/theme/components/select.d.ts +0 -0
- package/types/theme/components/skeleton.d.ts +0 -0
- package/types/theme/components/slider.d.ts +0 -0
- package/types/theme/components/spinner.d.ts +0 -0
- package/types/theme/components/success.d.ts +0 -0
- package/types/theme/components/swipeable.d.ts +0 -0
- package/types/theme/components/switch.d.ts +0 -0
- package/types/theme/components/tabs.d.ts +0 -0
- package/types/theme/components/tag.d.ts +0 -0
- package/types/theme/components/textInput.d.ts +0 -0
- package/types/theme/components/timePicker.d.ts +0 -0
- package/types/theme/components/toast.d.ts +0 -0
- package/types/theme/components/toolbar.d.ts +0 -0
- package/types/theme/components/typography.d.ts +0 -0
- package/types/theme/getTheme.d.ts +0 -0
- package/types/theme/global/borders.d.ts +0 -0
- package/types/theme/global/colors/eBens.d.ts +0 -0
- package/types/theme/global/colors/global.d.ts +0 -0
- package/types/theme/global/colors/globalDark.d.ts +0 -0
- package/types/theme/global/colors/jobs.d.ts +0 -0
- package/types/theme/global/colors/swag.d.ts +0 -0
- package/types/theme/global/colors/swagDark.d.ts +0 -0
- package/types/theme/global/colors/types.d.ts +0 -0
- package/types/theme/global/colors/wallet.d.ts +0 -0
- package/types/theme/global/colors/work.d.ts +0 -0
- package/types/theme/global/index.d.ts +0 -0
- package/types/theme/global/scale.d.ts +0 -0
- package/types/theme/global/sizes.d.ts +0 -0
- package/types/theme/global/space.d.ts +0 -0
- package/types/theme/global/typography.d.ts +0 -0
- package/types/theme/index.d.ts +0 -0
- package/types/types.d.ts +0 -0
- package/types/utils/functions.d.ts +0 -0
- package/types/utils/helpers.d.ts +0 -0
- package/types/utils/hooks.d.ts +0 -0
- package/types/utils/scale.d.ts +0 -0
- package/.turbo/turbo-build$colon$types.log +0 -0
- package/.turbo/turbo-lint.log +0 -183
- package/.turbo/turbo-publish:npm.log +0 -9
- package/.turbo/turbo-test.log +0 -4726
- package/.turbo/turbo-type-check.log +0 -0
- package/types/components/CompoundSearch/CompoundSearchHandler.d.ts +0 -31
- package/types/components/CompoundSearch/CompoundSearchTextInput.d.ts +0 -60
- package/types/components/CompoundSearch/StyledCompoundSearch.d.ts +0 -40
- package/types/components/CompoundSearch/index.d.ts +0 -8
- package/types/components/CompoundSearch/utils.d.ts +0 -8
- package/types/components/Search/SearchBasic.d.ts +0 -31
- package/types/components/Search/SearchCompound.d.ts +0 -60
- package/types/components/Tabs/ScrollableTabsHeader.d.ts +0 -35
- package/types/theme/components/compoundSearch.d.ts +0 -36
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
(node:
|
|
1
|
+
(node:2884) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
|
|
2
2
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
3
|
-
(node:11552) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
|
|
4
3
|
[36m
|
|
5
4
|
[1msrc/index.ts[22m → [1mlib/index.js, es/index.js[22m...[39m
|
|
6
5
|
[1m[33m(!) [plugin replace] @rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.[39m[22m
|
|
7
|
-
[1m[33m(!) [plugin node-resolve] preferring built-in module 'events' over local alternative at '/
|
|
8
|
-
[32mcreated [1mlib/index.js, es/index.js[22m in [
|
|
6
|
+
[1m[33m(!) [plugin node-resolve] preferring built-in module 'events' over local alternative at '/home/runner/work/hero-design/hero-design/node_modules/events/events.js', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning.or passing a function to 'preferBuiltins' to provide more fine-grained control over which built-in modules to prefer.[39m[22m
|
|
7
|
+
[32mcreated [1mlib/index.js, es/index.js[22m in [1m50.6s[22m[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# @hero-design/rn
|
|
2
2
|
|
|
3
|
-
## 8.
|
|
3
|
+
## 8.78.0
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Minor Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- [#3480](https://github.com/Thinkei/hero-design/pull/3480) [`f27e980c7e5eec77a09a0646fad7a5c990b2ad0c`](https://github.com/Thinkei/hero-design/commit/f27e980c7e5eec77a09a0646fad7a5c990b2ad0c) Thanks [@phucdph](https://github.com/phucdph)! - [Search.OneLine] Support clearable input
|
|
8
8
|
|
|
9
9
|
## 8.77.0
|
|
10
10
|
|
package/es/index.js
CHANGED
|
@@ -36999,7 +36999,7 @@ var SearchTwoLine = function SearchTwoLine(props) {
|
|
|
36999
36999
|
})));
|
|
37000
37000
|
};
|
|
37001
37001
|
|
|
37002
|
-
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant"];
|
|
37002
|
+
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant", "clearable"];
|
|
37003
37003
|
var getState = function getState(_ref) {
|
|
37004
37004
|
var disabled = _ref.disabled,
|
|
37005
37005
|
editable = _ref.editable,
|
|
@@ -37041,6 +37041,8 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37041
37041
|
testID = props.testID,
|
|
37042
37042
|
_props$variant = props.variant,
|
|
37043
37043
|
variant = _props$variant === void 0 ? 'basic' : _props$variant,
|
|
37044
|
+
_props$clearable = props.clearable,
|
|
37045
|
+
clearable = _props$clearable === void 0 ? false : _props$clearable,
|
|
37044
37046
|
nativeProps = _objectWithoutProperties(props, _excluded$2);
|
|
37045
37047
|
var _React$useState = React__default.useState(false),
|
|
37046
37048
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -37083,6 +37085,21 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37083
37085
|
}
|
|
37084
37086
|
};
|
|
37085
37087
|
}, [innerTextInput]);
|
|
37088
|
+
var renderClearButton = function renderClearButton() {
|
|
37089
|
+
return /*#__PURE__*/React__default.createElement(StyledAffixContainer, null, /*#__PURE__*/React__default.createElement(CompoundButton.Icon, {
|
|
37090
|
+
onPress: function onPress() {
|
|
37091
|
+
var _innerTextInput$curre6, _nativeProps$onChange;
|
|
37092
|
+
(_innerTextInput$curre6 = innerTextInput.current) === null || _innerTextInput$curre6 === void 0 || _innerTextInput$curre6.clear();
|
|
37093
|
+
(_nativeProps$onChange = nativeProps.onChangeText) === null || _nativeProps$onChange === void 0 || _nativeProps$onChange.call(nativeProps, '');
|
|
37094
|
+
},
|
|
37095
|
+
intent: "text",
|
|
37096
|
+
testID: "input-clear-button",
|
|
37097
|
+
icon: "circle-cancel",
|
|
37098
|
+
size: "small",
|
|
37099
|
+
disabled: state === 'disabled' || state === 'readonly'
|
|
37100
|
+
}));
|
|
37101
|
+
};
|
|
37102
|
+
var shouldShowClearButton = clearable && (state === 'filled' || isFocused) && !isEmptyValue;
|
|
37086
37103
|
return /*#__PURE__*/React__default.createElement(StyledContainer, {
|
|
37087
37104
|
pointerEvents: state === 'disabled' || state === 'readonly' ? 'none' : 'auto',
|
|
37088
37105
|
testID: testID,
|
|
@@ -37120,7 +37137,7 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37120
37137
|
ref: function ref(rnTextInputRef) {
|
|
37121
37138
|
innerTextInput.current = rnTextInputRef;
|
|
37122
37139
|
}
|
|
37123
|
-
}), !!suffix && renderSuffix({
|
|
37140
|
+
}), shouldShowClearButton ? renderClearButton() : !!suffix && renderSuffix({
|
|
37124
37141
|
suffix: suffix
|
|
37125
37142
|
})));
|
|
37126
37143
|
});
|
package/lib/index.js
CHANGED
|
@@ -37026,7 +37026,7 @@ var SearchTwoLine = function SearchTwoLine(props) {
|
|
|
37026
37026
|
})));
|
|
37027
37027
|
};
|
|
37028
37028
|
|
|
37029
|
-
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant"];
|
|
37029
|
+
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant", "clearable"];
|
|
37030
37030
|
var getState = function getState(_ref) {
|
|
37031
37031
|
var disabled = _ref.disabled,
|
|
37032
37032
|
editable = _ref.editable,
|
|
@@ -37068,6 +37068,8 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37068
37068
|
testID = props.testID,
|
|
37069
37069
|
_props$variant = props.variant,
|
|
37070
37070
|
variant = _props$variant === void 0 ? 'basic' : _props$variant,
|
|
37071
|
+
_props$clearable = props.clearable,
|
|
37072
|
+
clearable = _props$clearable === void 0 ? false : _props$clearable,
|
|
37071
37073
|
nativeProps = _objectWithoutProperties(props, _excluded$2);
|
|
37072
37074
|
var _React$useState = React__namespace.default.useState(false),
|
|
37073
37075
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -37110,6 +37112,21 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37110
37112
|
}
|
|
37111
37113
|
};
|
|
37112
37114
|
}, [innerTextInput]);
|
|
37115
|
+
var renderClearButton = function renderClearButton() {
|
|
37116
|
+
return /*#__PURE__*/React__namespace.default.createElement(StyledAffixContainer, null, /*#__PURE__*/React__namespace.default.createElement(CompoundButton.Icon, {
|
|
37117
|
+
onPress: function onPress() {
|
|
37118
|
+
var _innerTextInput$curre6, _nativeProps$onChange;
|
|
37119
|
+
(_innerTextInput$curre6 = innerTextInput.current) === null || _innerTextInput$curre6 === void 0 || _innerTextInput$curre6.clear();
|
|
37120
|
+
(_nativeProps$onChange = nativeProps.onChangeText) === null || _nativeProps$onChange === void 0 || _nativeProps$onChange.call(nativeProps, '');
|
|
37121
|
+
},
|
|
37122
|
+
intent: "text",
|
|
37123
|
+
testID: "input-clear-button",
|
|
37124
|
+
icon: "circle-cancel",
|
|
37125
|
+
size: "small",
|
|
37126
|
+
disabled: state === 'disabled' || state === 'readonly'
|
|
37127
|
+
}));
|
|
37128
|
+
};
|
|
37129
|
+
var shouldShowClearButton = clearable && (state === 'filled' || isFocused) && !isEmptyValue;
|
|
37113
37130
|
return /*#__PURE__*/React__namespace.default.createElement(StyledContainer, {
|
|
37114
37131
|
pointerEvents: state === 'disabled' || state === 'readonly' ? 'none' : 'auto',
|
|
37115
37132
|
testID: testID,
|
|
@@ -37147,7 +37164,7 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37147
37164
|
ref: function ref(rnTextInputRef) {
|
|
37148
37165
|
innerTextInput.current = rnTextInputRef;
|
|
37149
37166
|
}
|
|
37150
|
-
}), !!suffix && renderSuffix({
|
|
37167
|
+
}), shouldShowClearButton ? renderClearButton() : !!suffix && renderSuffix({
|
|
37151
37168
|
suffix: suffix
|
|
37152
37169
|
})));
|
|
37153
37170
|
});
|
package/package.json
CHANGED
|
@@ -8,12 +8,14 @@ import type {
|
|
|
8
8
|
} from 'react-native';
|
|
9
9
|
import {
|
|
10
10
|
State,
|
|
11
|
+
StyledAffixContainer,
|
|
11
12
|
StyledContainer,
|
|
12
13
|
StyledInput,
|
|
13
14
|
StyledInputContainer,
|
|
14
15
|
} from './StyledSearch';
|
|
15
16
|
import { IconName } from '../Icon';
|
|
16
17
|
import { renderPrefix, renderSuffix } from './utils';
|
|
18
|
+
import Button from '../Button';
|
|
17
19
|
|
|
18
20
|
export type SearchOneLineHandles = Pick<
|
|
19
21
|
RNTextInput,
|
|
@@ -71,6 +73,10 @@ interface SearchOneLineProps extends NativeTextInputProps {
|
|
|
71
73
|
* @default 'basic'
|
|
72
74
|
*/
|
|
73
75
|
variant?: 'basic' | 'reversed';
|
|
76
|
+
/**
|
|
77
|
+
* Clearable input.
|
|
78
|
+
*/
|
|
79
|
+
clearable?: boolean;
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
export const getState = ({
|
|
@@ -121,6 +127,7 @@ const SearchOneLine = forwardRef<SearchOneLineHandles, SearchOneLineProps>(
|
|
|
121
127
|
disabled = false,
|
|
122
128
|
testID,
|
|
123
129
|
variant = 'basic',
|
|
130
|
+
clearable = false,
|
|
124
131
|
...nativeProps
|
|
125
132
|
} = props;
|
|
126
133
|
|
|
@@ -155,6 +162,27 @@ const SearchOneLine = forwardRef<SearchOneLineHandles, SearchOneLineProps>(
|
|
|
155
162
|
[innerTextInput]
|
|
156
163
|
);
|
|
157
164
|
|
|
165
|
+
const renderClearButton = () => {
|
|
166
|
+
return (
|
|
167
|
+
<StyledAffixContainer>
|
|
168
|
+
<Button.Icon
|
|
169
|
+
onPress={() => {
|
|
170
|
+
innerTextInput.current?.clear();
|
|
171
|
+
nativeProps.onChangeText?.('');
|
|
172
|
+
}}
|
|
173
|
+
intent="text"
|
|
174
|
+
testID="input-clear-button"
|
|
175
|
+
icon="circle-cancel"
|
|
176
|
+
size="small"
|
|
177
|
+
disabled={state === 'disabled' || state === 'readonly'}
|
|
178
|
+
/>
|
|
179
|
+
</StyledAffixContainer>
|
|
180
|
+
);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const shouldShowClearButton =
|
|
184
|
+
clearable && (state === 'filled' || isFocused) && !isEmptyValue;
|
|
185
|
+
|
|
158
186
|
return (
|
|
159
187
|
<StyledContainer
|
|
160
188
|
pointerEvents={
|
|
@@ -192,7 +220,9 @@ const SearchOneLine = forwardRef<SearchOneLineHandles, SearchOneLineProps>(
|
|
|
192
220
|
innerTextInput.current = rnTextInputRef;
|
|
193
221
|
},
|
|
194
222
|
})}
|
|
195
|
-
{
|
|
223
|
+
{shouldShowClearButton
|
|
224
|
+
? renderClearButton()
|
|
225
|
+
: !!suffix && renderSuffix({ suffix })}
|
|
196
226
|
</StyledInputContainer>
|
|
197
227
|
</StyledContainer>
|
|
198
228
|
);
|
|
@@ -54,6 +54,12 @@ describe('SearchOneLine', () => {
|
|
|
54
54
|
'input-suffix'
|
|
55
55
|
)
|
|
56
56
|
).toHaveLength(1);
|
|
57
|
+
|
|
58
|
+
expect(
|
|
59
|
+
within(getByTestId('idle-search-text-input')).queryAllByTestId(
|
|
60
|
+
'input-clear-button'
|
|
61
|
+
)
|
|
62
|
+
).toHaveLength(0);
|
|
57
63
|
});
|
|
58
64
|
|
|
59
65
|
it('renders reserved variant correctly', () => {
|
|
@@ -104,77 +110,130 @@ describe('SearchOneLine', () => {
|
|
|
104
110
|
within(getByTestId('idle-search-input')).getByText('Suffix')
|
|
105
111
|
).toBeTruthy();
|
|
106
112
|
});
|
|
113
|
+
});
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
describe('handler', () => {
|
|
116
|
+
it('onChangeText work correctly', () => {
|
|
117
|
+
const onChangeText = jest.fn();
|
|
118
|
+
const { getByTestId } = renderWithTheme(
|
|
119
|
+
<SearchOneLine
|
|
120
|
+
prefix="search-outlined"
|
|
121
|
+
testID="idle-search-input"
|
|
122
|
+
onChangeText={onChangeText}
|
|
123
|
+
/>
|
|
124
|
+
);
|
|
125
|
+
const input = within(getByTestId('idle-search-input')).getByTestId(
|
|
126
|
+
'text-input'
|
|
127
|
+
);
|
|
128
|
+
fireEvent.changeText(input, 'Park Chae Young');
|
|
129
|
+
expect(onChangeText).toHaveBeenCalledWith('Park Chae Young');
|
|
130
|
+
});
|
|
124
131
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
it('onFocus work correctly', () => {
|
|
133
|
+
const onFocus = jest.fn();
|
|
134
|
+
const { getByTestId } = renderWithTheme(
|
|
135
|
+
<SearchOneLine
|
|
136
|
+
prefix="search-outlined"
|
|
137
|
+
testID="idle-search-input"
|
|
138
|
+
onFocus={onFocus}
|
|
139
|
+
/>
|
|
140
|
+
);
|
|
141
|
+
const input = within(getByTestId('idle-search-input')).getByTestId(
|
|
142
|
+
'text-input'
|
|
143
|
+
);
|
|
144
|
+
fireEvent(input, 'focus');
|
|
145
|
+
expect(onFocus).toHaveBeenCalled();
|
|
146
|
+
});
|
|
140
147
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
148
|
+
it('onBlur work correctly', () => {
|
|
149
|
+
const onBlur = jest.fn();
|
|
150
|
+
const { getByTestId } = renderWithTheme(
|
|
151
|
+
<SearchOneLine
|
|
152
|
+
prefix="search-outlined"
|
|
153
|
+
testID="idle-search-input"
|
|
154
|
+
onBlur={onBlur}
|
|
155
|
+
/>
|
|
156
|
+
);
|
|
157
|
+
const input = within(getByTestId('idle-search-input')).getByTestId(
|
|
158
|
+
'text-input'
|
|
159
|
+
);
|
|
160
|
+
fireEvent(input, 'blur');
|
|
161
|
+
expect(onBlur).toHaveBeenCalled();
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
it('clearable input work correctly', () => {
|
|
165
|
+
const onChangeText = jest.fn();
|
|
166
|
+
const { getByTestId } = renderWithTheme(
|
|
167
|
+
<SearchOneLine
|
|
168
|
+
prefix="search-outlined"
|
|
169
|
+
testID="idle-search-input"
|
|
170
|
+
onChangeText={onChangeText}
|
|
171
|
+
clearable
|
|
172
|
+
value="On the ground"
|
|
173
|
+
/>
|
|
174
|
+
);
|
|
175
|
+
const clearButton = within(getByTestId('idle-search-input')).getByTestId(
|
|
176
|
+
'input-clear-button'
|
|
177
|
+
);
|
|
178
|
+
fireEvent.press(clearButton);
|
|
179
|
+
expect(onChangeText).toHaveBeenCalledWith('');
|
|
156
180
|
});
|
|
157
181
|
});
|
|
182
|
+
});
|
|
158
183
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
184
|
+
describe('filled', () => {
|
|
185
|
+
it('renders correctly', () => {
|
|
186
|
+
const { toJSON, queryAllByTestId, queryAllByDisplayValue } =
|
|
187
|
+
renderWithTheme(
|
|
188
|
+
<SearchOneLine
|
|
189
|
+
prefix="search-outlined"
|
|
190
|
+
suffix="adjustment"
|
|
191
|
+
testID="idle-search-text-input"
|
|
192
|
+
placeholder="Search"
|
|
193
|
+
value="Jennie Kim"
|
|
194
|
+
/>
|
|
195
|
+
);
|
|
171
196
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
197
|
+
expect(toJSON()).toMatchSnapshot();
|
|
198
|
+
expect(queryAllByDisplayValue('Jennie Kim')).toHaveLength(1);
|
|
199
|
+
expect(queryAllByTestId('input-prefix')).toHaveLength(1);
|
|
200
|
+
expect(queryAllByTestId('input-suffix')).toHaveLength(1);
|
|
201
|
+
expect(queryAllByTestId('text-input')).toHaveLength(1);
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
it('renders clearable input correctly', () => {
|
|
205
|
+
const { getByTestId, toJSON } = renderWithTheme(
|
|
206
|
+
<SearchOneLine
|
|
207
|
+
prefix="search-outlined"
|
|
208
|
+
clearable
|
|
209
|
+
testID="idle-search-text-input"
|
|
210
|
+
placeholder="Search"
|
|
211
|
+
value="Eyes wide open"
|
|
212
|
+
/>
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
expect(toJSON()).toMatchSnapshot();
|
|
216
|
+
expect(getByTestId('idle-search-text-input')).toBeTruthy();
|
|
217
|
+
expect(
|
|
218
|
+
within(getByTestId('idle-search-text-input')).queryAllByTestId(
|
|
219
|
+
'text-input'
|
|
220
|
+
)
|
|
221
|
+
).toHaveLength(1);
|
|
222
|
+
expect(
|
|
223
|
+
within(getByTestId('idle-search-text-input')).queryAllByTestId(
|
|
224
|
+
'input-prefix'
|
|
225
|
+
)
|
|
226
|
+
).toHaveLength(1);
|
|
227
|
+
expect(
|
|
228
|
+
within(getByTestId('idle-search-text-input')).queryAllByTestId(
|
|
229
|
+
'input-suffix'
|
|
230
|
+
)
|
|
231
|
+
).toHaveLength(0);
|
|
232
|
+
expect(
|
|
233
|
+
within(getByTestId('idle-search-text-input')).queryAllByTestId(
|
|
234
|
+
'input-clear-button'
|
|
235
|
+
)
|
|
236
|
+
).toHaveLength(1);
|
|
178
237
|
});
|
|
179
238
|
|
|
180
239
|
describe('readonly', () => {
|