@hero-design/rn 8.77.1-alpha.0 → 8.78.0-alpha.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/CHANGELOG.md +3 -7
- package/es/index.js +22 -3
- package/lib/index.js +22 -3
- package/package.json +9 -8
- package/src/components/BottomSheet/index.tsx +4 -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/FloatingIsland/SingleLine/StyledSingleLine.d.ts +15 -0
- package/types/components/FloatingIsland/SingleLine/index.d.ts +24 -0
- package/types/components/FloatingIsland/StyledFloatingIsland.d.ts +2 -2
- 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-build.log +0 -8
- 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/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/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# @hero-design/rn
|
|
2
2
|
|
|
3
|
-
## 8.
|
|
3
|
+
## 8.78.0
|
|
4
4
|
|
|
5
|
-
###
|
|
6
|
-
|
|
7
|
-
- test release workflow
|
|
5
|
+
### Minor Changes
|
|
8
6
|
|
|
9
|
-
-
|
|
10
|
-
- @hero-design/colors@8.45.2-alpha.0
|
|
11
|
-
- @hero-design/react-native-month-year-picker@8.42.11-alpha.0
|
|
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
|
|
12
8
|
|
|
13
9
|
## 8.77.0
|
|
14
10
|
|
package/es/index.js
CHANGED
|
@@ -9737,8 +9737,10 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9737
9737
|
useNativeDriver: true
|
|
9738
9738
|
});
|
|
9739
9739
|
animation.start(function () {
|
|
9740
|
-
if (!open
|
|
9740
|
+
if (!open) {
|
|
9741
9741
|
setVisibility(false);
|
|
9742
|
+
}
|
|
9743
|
+
if (!open && canCallOnDismiss.current) {
|
|
9742
9744
|
onDismiss === null || onDismiss === void 0 || onDismiss();
|
|
9743
9745
|
}
|
|
9744
9746
|
onAnimationEnd === null || onAnimationEnd === void 0 || onAnimationEnd();
|
|
@@ -36999,7 +37001,7 @@ var SearchTwoLine = function SearchTwoLine(props) {
|
|
|
36999
37001
|
})));
|
|
37000
37002
|
};
|
|
37001
37003
|
|
|
37002
|
-
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant"];
|
|
37004
|
+
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant", "clearable"];
|
|
37003
37005
|
var getState = function getState(_ref) {
|
|
37004
37006
|
var disabled = _ref.disabled,
|
|
37005
37007
|
editable = _ref.editable,
|
|
@@ -37041,6 +37043,8 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37041
37043
|
testID = props.testID,
|
|
37042
37044
|
_props$variant = props.variant,
|
|
37043
37045
|
variant = _props$variant === void 0 ? 'basic' : _props$variant,
|
|
37046
|
+
_props$clearable = props.clearable,
|
|
37047
|
+
clearable = _props$clearable === void 0 ? false : _props$clearable,
|
|
37044
37048
|
nativeProps = _objectWithoutProperties(props, _excluded$2);
|
|
37045
37049
|
var _React$useState = React__default.useState(false),
|
|
37046
37050
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -37083,6 +37087,21 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37083
37087
|
}
|
|
37084
37088
|
};
|
|
37085
37089
|
}, [innerTextInput]);
|
|
37090
|
+
var renderClearButton = function renderClearButton() {
|
|
37091
|
+
return /*#__PURE__*/React__default.createElement(StyledAffixContainer, null, /*#__PURE__*/React__default.createElement(CompoundButton.Icon, {
|
|
37092
|
+
onPress: function onPress() {
|
|
37093
|
+
var _innerTextInput$curre6, _nativeProps$onChange;
|
|
37094
|
+
(_innerTextInput$curre6 = innerTextInput.current) === null || _innerTextInput$curre6 === void 0 || _innerTextInput$curre6.clear();
|
|
37095
|
+
(_nativeProps$onChange = nativeProps.onChangeText) === null || _nativeProps$onChange === void 0 || _nativeProps$onChange.call(nativeProps, '');
|
|
37096
|
+
},
|
|
37097
|
+
intent: "text",
|
|
37098
|
+
testID: "input-clear-button",
|
|
37099
|
+
icon: "circle-cancel",
|
|
37100
|
+
size: "small",
|
|
37101
|
+
disabled: state === 'disabled' || state === 'readonly'
|
|
37102
|
+
}));
|
|
37103
|
+
};
|
|
37104
|
+
var shouldShowClearButton = clearable && (state === 'filled' || isFocused) && !isEmptyValue;
|
|
37086
37105
|
return /*#__PURE__*/React__default.createElement(StyledContainer, {
|
|
37087
37106
|
pointerEvents: state === 'disabled' || state === 'readonly' ? 'none' : 'auto',
|
|
37088
37107
|
testID: testID,
|
|
@@ -37120,7 +37139,7 @@ var SearchOneLine = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
37120
37139
|
ref: function ref(rnTextInputRef) {
|
|
37121
37140
|
innerTextInput.current = rnTextInputRef;
|
|
37122
37141
|
}
|
|
37123
|
-
}), !!suffix && renderSuffix({
|
|
37142
|
+
}), shouldShowClearButton ? renderClearButton() : !!suffix && renderSuffix({
|
|
37124
37143
|
suffix: suffix
|
|
37125
37144
|
})));
|
|
37126
37145
|
});
|
package/lib/index.js
CHANGED
|
@@ -9764,8 +9764,10 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9764
9764
|
useNativeDriver: true
|
|
9765
9765
|
});
|
|
9766
9766
|
animation.start(function () {
|
|
9767
|
-
if (!open
|
|
9767
|
+
if (!open) {
|
|
9768
9768
|
setVisibility(false);
|
|
9769
|
+
}
|
|
9770
|
+
if (!open && canCallOnDismiss.current) {
|
|
9769
9771
|
onDismiss === null || onDismiss === void 0 || onDismiss();
|
|
9770
9772
|
}
|
|
9771
9773
|
onAnimationEnd === null || onAnimationEnd === void 0 || onAnimationEnd();
|
|
@@ -37026,7 +37028,7 @@ var SearchTwoLine = function SearchTwoLine(props) {
|
|
|
37026
37028
|
})));
|
|
37027
37029
|
};
|
|
37028
37030
|
|
|
37029
|
-
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant"];
|
|
37031
|
+
var _excluded$2 = ["prefix", "suffix", "style", "allowFontScaling", "accessibilityLabelledBy", "editable", "maxLength", "value", "defaultValue", "placeholder", "disabled", "testID", "variant", "clearable"];
|
|
37030
37032
|
var getState = function getState(_ref) {
|
|
37031
37033
|
var disabled = _ref.disabled,
|
|
37032
37034
|
editable = _ref.editable,
|
|
@@ -37068,6 +37070,8 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37068
37070
|
testID = props.testID,
|
|
37069
37071
|
_props$variant = props.variant,
|
|
37070
37072
|
variant = _props$variant === void 0 ? 'basic' : _props$variant,
|
|
37073
|
+
_props$clearable = props.clearable,
|
|
37074
|
+
clearable = _props$clearable === void 0 ? false : _props$clearable,
|
|
37071
37075
|
nativeProps = _objectWithoutProperties(props, _excluded$2);
|
|
37072
37076
|
var _React$useState = React__namespace.default.useState(false),
|
|
37073
37077
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -37110,6 +37114,21 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37110
37114
|
}
|
|
37111
37115
|
};
|
|
37112
37116
|
}, [innerTextInput]);
|
|
37117
|
+
var renderClearButton = function renderClearButton() {
|
|
37118
|
+
return /*#__PURE__*/React__namespace.default.createElement(StyledAffixContainer, null, /*#__PURE__*/React__namespace.default.createElement(CompoundButton.Icon, {
|
|
37119
|
+
onPress: function onPress() {
|
|
37120
|
+
var _innerTextInput$curre6, _nativeProps$onChange;
|
|
37121
|
+
(_innerTextInput$curre6 = innerTextInput.current) === null || _innerTextInput$curre6 === void 0 || _innerTextInput$curre6.clear();
|
|
37122
|
+
(_nativeProps$onChange = nativeProps.onChangeText) === null || _nativeProps$onChange === void 0 || _nativeProps$onChange.call(nativeProps, '');
|
|
37123
|
+
},
|
|
37124
|
+
intent: "text",
|
|
37125
|
+
testID: "input-clear-button",
|
|
37126
|
+
icon: "circle-cancel",
|
|
37127
|
+
size: "small",
|
|
37128
|
+
disabled: state === 'disabled' || state === 'readonly'
|
|
37129
|
+
}));
|
|
37130
|
+
};
|
|
37131
|
+
var shouldShowClearButton = clearable && (state === 'filled' || isFocused) && !isEmptyValue;
|
|
37113
37132
|
return /*#__PURE__*/React__namespace.default.createElement(StyledContainer, {
|
|
37114
37133
|
pointerEvents: state === 'disabled' || state === 'readonly' ? 'none' : 'auto',
|
|
37115
37134
|
testID: testID,
|
|
@@ -37147,7 +37166,7 @@ var SearchOneLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37147
37166
|
ref: function ref(rnTextInputRef) {
|
|
37148
37167
|
innerTextInput.current = rnTextInputRef;
|
|
37149
37168
|
}
|
|
37150
|
-
}), !!suffix && renderSuffix({
|
|
37169
|
+
}), shouldShowClearButton ? renderClearButton() : !!suffix && renderSuffix({
|
|
37151
37170
|
suffix: suffix
|
|
37152
37171
|
})));
|
|
37153
37172
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hero-design/rn",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.78.0-alpha.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"@emotion/native": "^11.9.3",
|
|
23
23
|
"@emotion/primitives-core": "11.0.0",
|
|
24
24
|
"@emotion/react": "^11.9.3",
|
|
25
|
-
"@hero-design/colors": "8.45.
|
|
25
|
+
"@hero-design/colors": "8.45.1",
|
|
26
26
|
"date-fns": "^2.16.1",
|
|
27
27
|
"hero-editor": "^1.9.21",
|
|
28
28
|
"nanoid": "^4.0.2"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"@hero-design/react-native-month-year-picker": "^8.42.
|
|
31
|
+
"@hero-design/react-native-month-year-picker": "^8.42.10",
|
|
32
32
|
"@react-native-community/datetimepicker": "^3.5.2 || ^7.6.1",
|
|
33
33
|
"@react-native-community/slider": "^4.5.1",
|
|
34
34
|
"react": "18.2.0",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"@eslint/compat": "^1.1.1",
|
|
51
51
|
"@eslint/eslintrc": "^3.1.0",
|
|
52
52
|
"@eslint/js": "^9.8.0",
|
|
53
|
-
"@hero-design/eslint-plugin": "9.2.
|
|
54
|
-
"@hero-design/react-native-month-year-picker": "^8.42.
|
|
53
|
+
"@hero-design/eslint-plugin": "9.2.0",
|
|
54
|
+
"@hero-design/react-native-month-year-picker": "^8.42.10",
|
|
55
55
|
"@react-native-community/datetimepicker": "7.6.1",
|
|
56
56
|
"@react-native-community/slider": "^4.5.1",
|
|
57
57
|
"@rollup/plugin-babel": "^6.0.4",
|
|
@@ -70,12 +70,12 @@
|
|
|
70
70
|
"babel-preset-expo": "^11.0.15",
|
|
71
71
|
"core-js": "^3.33.0",
|
|
72
72
|
"eslint": "^8.56.0",
|
|
73
|
-
"eslint-config-hd": "8.42.
|
|
73
|
+
"eslint-config-hd": "8.42.4",
|
|
74
74
|
"eslint-plugin-import": "^2.27.5",
|
|
75
75
|
"jest": "^29.2.1",
|
|
76
76
|
"jest-environment-jsdom": "^29.2.1",
|
|
77
77
|
"jest-junit": "^16.0.0",
|
|
78
|
-
"prettier-config-hd": "8.42.
|
|
78
|
+
"prettier-config-hd": "8.42.4",
|
|
79
79
|
"react": "18.2.0",
|
|
80
80
|
"react-dom": "^18.2.0",
|
|
81
81
|
"react-native": "^0.74.5",
|
|
@@ -93,5 +93,6 @@
|
|
|
93
93
|
"ts-jest": "^29.1.1",
|
|
94
94
|
"typescript": "4.8.4"
|
|
95
95
|
},
|
|
96
|
-
"prettier": "prettier-config-hd"
|
|
96
|
+
"prettier": "prettier-config-hd",
|
|
97
|
+
"react-native": "src/index.ts"
|
|
97
98
|
}
|
|
@@ -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', () => {
|