@hero-design/rn 8.77.1-alpha.10 → 8.78.0-alpha.1
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 -3
- package/es/index.js +21 -4
- package/lib/index.js +21 -4
- package/package.json +3 -2
- package/src/components/BottomSheet/index.tsx +2 -2
- 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,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
|
@@ -9728,7 +9728,7 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9728
9728
|
if (open && !visible) {
|
|
9729
9729
|
setVisibility(open);
|
|
9730
9730
|
}
|
|
9731
|
-
}, [open]);
|
|
9731
|
+
}, [open, visible]);
|
|
9732
9732
|
// Animation
|
|
9733
9733
|
useEffect(function () {
|
|
9734
9734
|
var animation = Animated.timing(animatedValue.current, {
|
|
@@ -9746,7 +9746,7 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9746
9746
|
return function () {
|
|
9747
9747
|
return animation.stop();
|
|
9748
9748
|
};
|
|
9749
|
-
}, [open]);
|
|
9749
|
+
}, [open, onDismiss, onAnimationEnd]);
|
|
9750
9750
|
var interpolateY = animatedValue.current.interpolate({
|
|
9751
9751
|
inputRange: [0, 1],
|
|
9752
9752
|
outputRange: [height, 0]
|
|
@@ -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
|
@@ -9755,7 +9755,7 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9755
9755
|
if (open && !visible) {
|
|
9756
9756
|
setVisibility(open);
|
|
9757
9757
|
}
|
|
9758
|
-
}, [open]);
|
|
9758
|
+
}, [open, visible]);
|
|
9759
9759
|
// Animation
|
|
9760
9760
|
React.useEffect(function () {
|
|
9761
9761
|
var animation = reactNative.Animated.timing(animatedValue.current, {
|
|
@@ -9773,7 +9773,7 @@ var BottomSheet = function BottomSheet(_ref) {
|
|
|
9773
9773
|
return function () {
|
|
9774
9774
|
return animation.stop();
|
|
9775
9775
|
};
|
|
9776
|
-
}, [open]);
|
|
9776
|
+
}, [open, onDismiss, onAnimationEnd]);
|
|
9777
9777
|
var interpolateY = animatedValue.current.interpolate({
|
|
9778
9778
|
inputRange: [0, 1],
|
|
9779
9779
|
outputRange: [height, 0]
|
|
@@ -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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hero-design/rn",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.78.0-alpha.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -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
|
}
|
|
@@ -127,7 +127,7 @@ const BottomSheet = ({
|
|
|
127
127
|
if (open && !visible) {
|
|
128
128
|
setVisibility(open);
|
|
129
129
|
}
|
|
130
|
-
}, [open]);
|
|
130
|
+
}, [open, visible]);
|
|
131
131
|
|
|
132
132
|
// Animation
|
|
133
133
|
useEffect(() => {
|
|
@@ -147,7 +147,7 @@ const BottomSheet = ({
|
|
|
147
147
|
});
|
|
148
148
|
|
|
149
149
|
return () => animation.stop();
|
|
150
|
-
}, [open]);
|
|
150
|
+
}, [open, onDismiss, onAnimationEnd]);
|
|
151
151
|
|
|
152
152
|
const interpolateY = animatedValue.current.interpolate({
|
|
153
153
|
inputRange: [0, 1],
|
|
@@ -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', () => {
|