react-native-system-ui 0.0.5 → 0.0.7
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/README.md +12 -4
- package/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
- package/dist/cjs/components/area/Area.js +72 -6
- package/dist/cjs/components/area/tokens.js +11 -0
- package/dist/cjs/components/avatar/Avatar.js +42 -10
- package/dist/cjs/components/badge/Badge.js +10 -10
- package/dist/cjs/components/badge/tokens.js +4 -0
- package/dist/cjs/components/button/Button.js +16 -65
- package/dist/cjs/components/button/ButtonContext.js +7 -10
- package/dist/cjs/components/button/ButtonGroup.js +13 -15
- package/dist/cjs/components/button/tokens.js +1 -5
- package/dist/cjs/components/calendar/Calendar.js +23 -12
- package/dist/cjs/components/cascader/Cascader.js +18 -13
- package/dist/cjs/components/cell/Cell.js +3 -3
- package/dist/cjs/components/cell/CellGroup.js +26 -21
- package/dist/cjs/components/checkbox/Checkbox.js +5 -4
- package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
- package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
- package/dist/cjs/components/circle/Circle.js +6 -6
- package/dist/cjs/components/collapse/Collapse.js +10 -10
- package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
- package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
- package/dist/cjs/components/config-provider/tokens.js +11 -0
- package/dist/cjs/components/count-down/CountDown.js +6 -6
- package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
- package/dist/cjs/components/datetime-picker/tokens.js +11 -0
- package/dist/cjs/components/dialog/Dialog.js +39 -34
- package/dist/cjs/components/dialog/tokens.js +1 -4
- package/dist/cjs/components/divider/Divider.js +36 -1
- package/dist/cjs/components/field/Field.js +303 -201
- package/dist/cjs/components/flex/Flex.js +7 -3
- package/dist/cjs/components/flex/FlexContext.js +7 -14
- package/dist/cjs/components/form/Form.js +112 -122
- package/dist/cjs/components/form/FormContext.js +7 -10
- package/dist/cjs/components/form/FormItem.js +30 -4
- package/dist/cjs/components/form/FormList.js +16 -3
- package/dist/cjs/components/form/tokens.js +11 -0
- package/dist/cjs/components/form/utils.js +2 -1
- package/dist/cjs/components/grid/Grid.js +45 -31
- package/dist/cjs/components/grid/GridContext.js +7 -10
- package/dist/cjs/components/grid/GridItem.js +22 -22
- package/dist/cjs/components/image/Image.js +17 -13
- package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
- package/dist/cjs/components/index.js +43 -141
- package/dist/cjs/components/input/Input.js +19 -5
- package/dist/cjs/components/loading/Loading.js +10 -139
- package/dist/cjs/components/loading/tokens.js +0 -24
- package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
- package/dist/cjs/components/notify/Notify.js +63 -22
- package/dist/cjs/components/notify/imperative.js +2 -2
- package/dist/cjs/components/notify/tokens.js +11 -1
- package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
- package/dist/cjs/components/overlay/Overlay.js +70 -77
- package/dist/cjs/components/overlay/index.js +13 -27
- package/dist/cjs/components/overlay/tokens.js +4 -31
- package/dist/cjs/components/password-input/PasswordInput.js +2 -41
- package/dist/cjs/components/password-input/tokens.js +53 -0
- package/dist/cjs/components/picker/Picker.js +618 -38
- package/dist/cjs/components/popup/Popup.js +60 -47
- package/dist/cjs/components/portal/Portal.js +39 -31
- package/dist/cjs/components/portal/PortalHost.js +258 -213
- package/dist/cjs/components/portal/tokens.js +11 -0
- package/dist/cjs/components/progress/Progress.js +77 -36
- package/dist/cjs/components/progress/index.js +6 -0
- package/dist/cjs/components/radio/Radio.js +35 -12
- package/dist/cjs/components/radio/RadioContext.js +7 -10
- package/dist/cjs/components/radio/RadioGroup.js +23 -20
- package/dist/cjs/components/safe-area-view/tokens.js +11 -0
- package/dist/cjs/components/search/Search.js +16 -16
- package/dist/cjs/components/selector/Selector.js +6 -6
- package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
- package/dist/cjs/components/sidebar/Sidebar.js +27 -22
- package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
- package/dist/cjs/components/skeleton/Skeleton.js +34 -21
- package/dist/cjs/components/slider/Slider.js +135 -78
- package/dist/cjs/components/stepper/Stepper.js +12 -10
- package/dist/cjs/components/swiper/Swiper.js +247 -710
- package/dist/cjs/components/swiper/SwiperItem.js +5 -33
- package/dist/cjs/components/swiper/tokens.js +11 -0
- package/dist/cjs/components/switch/Switch.js +46 -98
- package/dist/cjs/components/switch/tokens.js +1 -55
- package/dist/cjs/components/tabbar/Tabbar.js +26 -22
- package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
- package/dist/cjs/components/tabbar/tokens.js +0 -2
- package/dist/cjs/components/tabs/Tabs.js +268 -94
- package/dist/cjs/components/tabs/index.js +4 -5
- package/dist/cjs/components/toast/Toast.js +72 -27
- package/dist/cjs/components/toast/imperative.js +2 -2
- package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
- package/dist/cjs/hooks/index.js +12 -12
- package/dist/cjs/hooks/overlay/index.js +27 -0
- package/dist/cjs/hooks/useHairline.js +0 -4
- package/dist/cjs/platform/scrollLock.js +1 -1
- package/dist/cjs/utils/compare.js +26 -0
- package/dist/cjs/utils/index.js +11 -0
- package/dist/es/components/action-sheet/ActionSheet.js +29 -23
- package/dist/es/components/area/Area.js +73 -7
- package/dist/es/components/area/tokens.js +5 -0
- package/dist/es/components/avatar/Avatar.js +42 -10
- package/dist/es/components/badge/Badge.js +11 -11
- package/dist/es/components/badge/tokens.js +4 -0
- package/dist/es/components/button/Button.js +17 -65
- package/dist/es/components/button/ButtonContext.js +1 -2
- package/dist/es/components/button/ButtonGroup.js +10 -12
- package/dist/es/components/button/tokens.js +1 -5
- package/dist/es/components/calendar/Calendar.js +24 -13
- package/dist/es/components/cascader/Cascader.js +16 -11
- package/dist/es/components/cell/Cell.js +4 -4
- package/dist/es/components/cell/CellGroup.js +25 -20
- package/dist/es/components/checkbox/Checkbox.js +5 -4
- package/dist/es/components/checkbox/CheckboxContext.js +1 -2
- package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
- package/dist/es/components/circle/Circle.js +7 -7
- package/dist/es/components/collapse/Collapse.js +11 -11
- package/dist/es/components/config-provider/locale/en-US.js +66 -4
- package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
- package/dist/es/components/config-provider/tokens.js +5 -0
- package/dist/es/components/count-down/CountDown.js +7 -7
- package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
- package/dist/es/components/datetime-picker/tokens.js +5 -0
- package/dist/es/components/dialog/Dialog.js +40 -35
- package/dist/es/components/dialog/tokens.js +1 -4
- package/dist/es/components/divider/Divider.js +36 -1
- package/dist/es/components/field/Field.js +304 -202
- package/dist/es/components/flex/Flex.js +5 -1
- package/dist/es/components/flex/FlexContext.js +1 -6
- package/dist/es/components/form/Form.js +89 -99
- package/dist/es/components/form/FormContext.js +1 -2
- package/dist/es/components/form/FormItem.js +32 -6
- package/dist/es/components/form/FormList.js +18 -5
- package/dist/es/components/form/tokens.js +5 -0
- package/dist/es/components/form/utils.js +1 -0
- package/dist/es/components/grid/Grid.js +43 -29
- package/dist/es/components/grid/GridContext.js +1 -2
- package/dist/es/components/grid/GridItem.js +24 -24
- package/dist/es/components/image/Image.js +18 -14
- package/dist/es/components/image-preview/ImagePreview.js +44 -42
- package/dist/es/components/index.js +2 -17
- package/dist/es/components/input/Input.js +20 -6
- package/dist/es/components/loading/Loading.js +10 -139
- package/dist/es/components/loading/tokens.js +0 -24
- package/dist/es/components/notice-bar/NoticeBar.js +46 -42
- package/dist/es/components/notify/Notify.js +63 -22
- package/dist/es/components/notify/imperative.js +2 -2
- package/dist/es/components/notify/tokens.js +5 -1
- package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
- package/dist/es/components/overlay/Overlay.js +58 -75
- package/dist/es/components/overlay/index.js +3 -4
- package/dist/es/components/overlay/tokens.js +3 -29
- package/dist/es/components/password-input/PasswordInput.js +1 -40
- package/dist/es/components/password-input/tokens.js +41 -0
- package/dist/es/components/picker/Picker.js +610 -34
- package/dist/es/components/popup/Popup.js +62 -49
- package/dist/es/components/portal/Portal.js +37 -31
- package/dist/es/components/portal/PortalHost.js +257 -211
- package/dist/es/components/portal/tokens.js +5 -0
- package/dist/es/components/progress/Progress.js +76 -36
- package/dist/es/components/progress/index.js +2 -1
- package/dist/es/components/radio/Radio.js +37 -14
- package/dist/es/components/radio/RadioContext.js +1 -2
- package/dist/es/components/radio/RadioGroup.js +23 -20
- package/dist/es/components/safe-area-view/tokens.js +5 -0
- package/dist/es/components/search/Search.js +17 -17
- package/dist/es/components/selector/Selector.js +7 -7
- package/dist/es/components/share-sheet/ShareSheet.js +51 -47
- package/dist/es/components/sidebar/Sidebar.js +26 -21
- package/dist/es/components/sidebar/SidebarItem.js +26 -22
- package/dist/es/components/skeleton/Skeleton.js +35 -22
- package/dist/es/components/slider/Slider.js +132 -75
- package/dist/es/components/stepper/Stepper.js +13 -11
- package/dist/es/components/swiper/Swiper.js +248 -711
- package/dist/es/components/swiper/SwiperItem.js +1 -21
- package/dist/es/components/swiper/tokens.js +5 -0
- package/dist/es/components/switch/Switch.js +49 -101
- package/dist/es/components/switch/tokens.js +1 -49
- package/dist/es/components/tabbar/Tabbar.js +27 -23
- package/dist/es/components/tabbar/TabbarItem.js +22 -22
- package/dist/es/components/tabbar/tokens.js +0 -2
- package/dist/es/components/tabs/Tabs.js +264 -90
- package/dist/es/components/tabs/index.js +1 -2
- package/dist/es/components/toast/Toast.js +72 -28
- package/dist/es/components/toast/imperative.js +2 -2
- package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
- package/dist/es/hooks/index.js +1 -1
- package/dist/es/hooks/overlay/index.js +3 -0
- package/dist/es/hooks/useHairline.js +0 -4
- package/dist/es/platform/scrollLock.js +1 -1
- package/dist/es/utils/compare.js +18 -0
- package/dist/es/utils/index.js +1 -1
- package/dist/types/components/area/tokens.d.ts +3 -0
- package/dist/types/components/avatar/Avatar.d.ts +4 -2
- package/dist/types/components/button/ButtonContext.d.ts +2 -16
- package/dist/types/components/button/ButtonGroup.d.ts +14 -1
- package/dist/types/components/button/index.d.ts +1 -1
- package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
- package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
- package/dist/types/components/collapse/Collapse.d.ts +0 -1
- package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
- package/dist/types/components/config-provider/tokens.d.ts +3 -0
- package/dist/types/components/config-provider/useLocale.d.ts +1 -74
- package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
- package/dist/types/components/flex/Flex.d.ts +6 -0
- package/dist/types/components/flex/FlexContext.d.ts +2 -8
- package/dist/types/components/form/Form.d.ts +15 -1
- package/dist/types/components/form/FormContext.d.ts +2 -17
- package/dist/types/components/form/tokens.d.ts +3 -0
- package/dist/types/components/form/utils.d.ts +1 -0
- package/dist/types/components/grid/Grid.d.ts +16 -1
- package/dist/types/components/grid/GridContext.d.ts +2 -17
- package/dist/types/components/index.d.ts +3 -33
- package/dist/types/components/loading/index.d.ts +1 -1
- package/dist/types/components/notify/Notify.d.ts +1 -0
- package/dist/types/components/overlay/Overlay.d.ts +6 -1
- package/dist/types/components/overlay/index.d.ts +2 -3
- package/dist/types/components/overlay/tokens.d.ts +2 -3
- package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
- package/dist/types/components/password-input/tokens.d.ts +40 -0
- package/dist/types/components/picker/Picker.d.ts +18 -2
- package/dist/types/components/picker/index.d.ts +1 -1
- package/dist/types/components/portal/Portal.d.ts +4 -6
- package/dist/types/components/portal/PortalHost.d.ts +1 -15
- package/dist/types/components/portal/tokens.d.ts +3 -0
- package/dist/types/components/progress/Progress.d.ts +4 -0
- package/dist/types/components/progress/index.d.ts +2 -1
- package/dist/types/components/radio/RadioContext.d.ts +2 -13
- package/dist/types/components/radio/RadioGroup.d.ts +12 -1
- package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
- package/dist/types/components/swiper/Swiper.d.ts +4 -2
- package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
- package/dist/types/components/swiper/tokens.d.ts +3 -0
- package/dist/types/components/tabs/Tabs.d.ts +8 -4
- package/dist/types/components/tabs/index.d.ts +3 -1
- package/dist/types/components/toast/Toast.d.ts +1 -4
- package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
- package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
- package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
- package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
- package/dist/types/hooks/index.d.ts +1 -1
- package/dist/types/hooks/overlay/index.d.ts +2 -0
- package/dist/types/hooks/useHairline.d.ts +0 -21
- package/dist/types/utils/compare.d.ts +2 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +10 -48
- package/dist/cjs/components/area/utils.js +0 -74
- package/dist/cjs/components/cascader/utils.js +0 -20
- package/dist/cjs/components/config-provider/locale/base.js +0 -80
- package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
- package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
- package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
- package/dist/cjs/components/dropdown-menu/index.js +0 -25
- package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
- package/dist/cjs/components/field/utils.js +0 -24
- package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
- package/dist/cjs/components/index-bar/IndexBar.js +0 -436
- package/dist/cjs/components/index-bar/index.js +0 -25
- package/dist/cjs/components/index-bar/tokens.js +0 -45
- package/dist/cjs/components/list/List.js +0 -165
- package/dist/cjs/components/list/index.js +0 -9
- package/dist/cjs/components/list/tokens.js +0 -39
- package/dist/cjs/components/notify/defaults.js +0 -15
- package/dist/cjs/components/pagination/Pagination.js +0 -160
- package/dist/cjs/components/pagination/index.js +0 -22
- package/dist/cjs/components/pagination/tokens.js +0 -103
- package/dist/cjs/components/picker/WheelPicker.js +0 -492
- package/dist/cjs/components/picker/utils.js +0 -138
- package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
- package/dist/cjs/components/pull-refresh/index.js +0 -16
- package/dist/cjs/components/pull-refresh/tokens.js +0 -22
- package/dist/cjs/components/rate/Rate.js +0 -269
- package/dist/cjs/components/rate/index.js +0 -15
- package/dist/cjs/components/rate/tokens.js +0 -60
- package/dist/cjs/components/slider/utils.js +0 -60
- package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
- package/dist/cjs/components/swiper/utils.js +0 -49
- package/dist/cjs/components/tabs/TabPane.js +0 -9
- package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
- package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
- package/dist/cjs/components/tabs/utils.js +0 -34
- package/dist/cjs/components/types.js +0 -1
- package/dist/cjs/components/uploader/Uploader.js +0 -557
- package/dist/cjs/components/uploader/index.js +0 -22
- package/dist/cjs/components/uploader/tokens.js +0 -58
- package/dist/cjs/components/uploader/utils.js +0 -72
- package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
- package/dist/es/components/area/utils.js +0 -67
- package/dist/es/components/cascader/utils.js +0 -13
- package/dist/es/components/config-provider/locale/base.js +0 -74
- package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
- package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
- package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
- package/dist/es/components/dropdown-menu/index.js +0 -7
- package/dist/es/components/dropdown-menu/tokens.js +0 -61
- package/dist/es/components/field/utils.js +0 -17
- package/dist/es/components/index-bar/IndexAnchor.js +0 -55
- package/dist/es/components/index-bar/IndexBar.js +0 -417
- package/dist/es/components/index-bar/index.js +0 -7
- package/dist/es/components/index-bar/tokens.js +0 -39
- package/dist/es/components/list/List.js +0 -145
- package/dist/es/components/list/index.js +0 -2
- package/dist/es/components/list/tokens.js +0 -32
- package/dist/es/components/notify/defaults.js +0 -9
- package/dist/es/components/pagination/Pagination.js +0 -141
- package/dist/es/components/pagination/index.js +0 -4
- package/dist/es/components/pagination/tokens.js +0 -91
- package/dist/es/components/picker/WheelPicker.js +0 -473
- package/dist/es/components/picker/utils.js +0 -127
- package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
- package/dist/es/components/pull-refresh/index.js +0 -3
- package/dist/es/components/pull-refresh/tokens.js +0 -16
- package/dist/es/components/rate/Rate.js +0 -250
- package/dist/es/components/rate/index.js +0 -3
- package/dist/es/components/rate/tokens.js +0 -53
- package/dist/es/components/slider/utils.js +0 -49
- package/dist/es/components/swiper/useSwiperWeb.js +0 -190
- package/dist/es/components/swiper/utils.js +0 -37
- package/dist/es/components/tabs/TabPane.js +0 -3
- package/dist/es/components/tabs/useTabsAnimation.js +0 -55
- package/dist/es/components/tabs/useTabsScroll.js +0 -114
- package/dist/es/components/tabs/utils.js +0 -19
- package/dist/es/components/types.js +0 -1
- package/dist/es/components/uploader/Uploader.js +0 -537
- package/dist/es/components/uploader/index.js +0 -4
- package/dist/es/components/uploader/tokens.js +0 -52
- package/dist/es/components/uploader/utils.js +0 -60
- package/dist/es/hooks/usePresenceAnimation.js +0 -51
- package/dist/types/components/area/utils.d.ts +0 -2
- package/dist/types/components/cascader/utils.d.ts +0 -6
- package/dist/types/components/config-provider/locale/base.d.ts +0 -74
- package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
- package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
- package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
- package/dist/types/components/dropdown-menu/index.d.ts +0 -8
- package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
- package/dist/types/components/field/utils.d.ts +0 -4
- package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
- package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
- package/dist/types/components/index-bar/index.d.ts +0 -9
- package/dist/types/components/index-bar/tokens.d.ts +0 -31
- package/dist/types/components/list/List.d.ts +0 -4
- package/dist/types/components/list/index.d.ts +0 -3
- package/dist/types/components/list/tokens.d.ts +0 -4
- package/dist/types/components/notify/defaults.d.ts +0 -10
- package/dist/types/components/pagination/Pagination.d.ts +0 -5
- package/dist/types/components/pagination/index.d.ts +0 -5
- package/dist/types/components/pagination/tokens.d.ts +0 -2
- package/dist/types/components/picker/WheelPicker.d.ts +0 -21
- package/dist/types/components/picker/utils.d.ts +0 -17
- package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
- package/dist/types/components/pull-refresh/index.d.ts +0 -4
- package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
- package/dist/types/components/rate/Rate.d.ts +0 -4
- package/dist/types/components/rate/index.d.ts +0 -4
- package/dist/types/components/rate/tokens.d.ts +0 -4
- package/dist/types/components/slider/utils.d.ts +0 -42
- package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
- package/dist/types/components/swiper/utils.d.ts +0 -17
- package/dist/types/components/tabs/TabPane.d.ts +0 -4
- package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
- package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
- package/dist/types/components/tabs/utils.d.ts +0 -5
- package/dist/types/components/types.d.ts +0 -59
- package/dist/types/components/uploader/Uploader.d.ts +0 -4
- package/dist/types/components/uploader/index.d.ts +0 -5
- package/dist/types/components/uploader/tokens.d.ts +0 -42
- package/dist/types/components/uploader/utils.d.ts +0 -11
- package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
- /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
- /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
- /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
- /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
- /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
- /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
|
@@ -1,21 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { View, StyleSheet } from 'react-native';
|
|
3
|
-
const SwiperItem = /*#__PURE__*/forwardRef((props, ref) => {
|
|
4
|
-
const {
|
|
5
|
-
style,
|
|
6
|
-
children,
|
|
7
|
-
testID
|
|
8
|
-
} = props;
|
|
9
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
10
|
-
ref: ref,
|
|
11
|
-
style: [styles.item, style],
|
|
12
|
-
testID: testID
|
|
13
|
-
}, children);
|
|
14
|
-
});
|
|
15
|
-
SwiperItem.displayName = 'SwiperItem';
|
|
16
|
-
const styles = StyleSheet.create({
|
|
17
|
-
item: {
|
|
18
|
-
flex: 1
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
export default SwiperItem;
|
|
1
|
+
export { SwiperItem as default } from './Swiper';
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { nativeDriverEnabled } from '../../platform';
|
|
5
|
-
import { useAriaPress, useControllableValue } from '../../hooks';
|
|
1
|
+
import React, { useCallback, useMemo } from 'react';
|
|
2
|
+
import { Switch as RNSwitch } from 'react-native';
|
|
3
|
+
import { useControllableValue } from '../../hooks';
|
|
6
4
|
import { parseNumber } from '../../utils';
|
|
7
5
|
import { useSwitchTokens } from './tokens';
|
|
8
|
-
const AnimatedHandle = Animated.createAnimatedComponent(View);
|
|
9
|
-
const switchEasing = Easing.bezier(0.25, 0.1, 0.25, 1);
|
|
10
6
|
const SwitchImpl = props => {
|
|
11
7
|
const {
|
|
12
8
|
disabled: disabledProp,
|
|
13
|
-
loading: loadingProp,
|
|
14
9
|
size,
|
|
15
10
|
activeColor,
|
|
16
11
|
inactiveColor,
|
|
@@ -18,25 +13,27 @@ const SwitchImpl = props => {
|
|
|
18
13
|
inactiveValue: inactiveValueProp,
|
|
19
14
|
tokensOverride,
|
|
20
15
|
onClick,
|
|
21
|
-
style
|
|
22
|
-
...rest
|
|
16
|
+
style
|
|
23
17
|
} = props;
|
|
24
18
|
const tokens = useSwitchTokens(tokensOverride);
|
|
25
19
|
const disabled = disabledProp ?? tokens.defaults.disabled;
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
20
|
+
const activeValue = useMemo(() => activeValueProp ?? tokens.defaults.activeValue, [activeValueProp, tokens.defaults.activeValue]);
|
|
21
|
+
const inactiveValue = useMemo(() => inactiveValueProp ?? tokens.defaults.inactiveValue, [inactiveValueProp, tokens.defaults.inactiveValue]);
|
|
22
|
+
const scale = useMemo(() => {
|
|
23
|
+
if (!tokens.defaults.size) return 1;
|
|
24
|
+
if (typeof size === 'string') {
|
|
25
|
+
const value = size.toLowerCase();
|
|
26
|
+
if (value === 'sm') return 0.75;
|
|
27
|
+
if (value === 'md') return 1;
|
|
28
|
+
if (value === 'lg') return 1.25;
|
|
29
|
+
const numeric = parseNumber(size, tokens.defaults.size);
|
|
30
|
+
return Math.max(0, numeric / tokens.defaults.size);
|
|
31
|
+
}
|
|
32
|
+
if (typeof size === 'number') {
|
|
33
|
+
return Math.max(0, size / tokens.defaults.size);
|
|
34
|
+
}
|
|
35
|
+
return 1;
|
|
36
|
+
}, [size, tokens.defaults.size]);
|
|
40
37
|
const [value, triggerChange] = useControllableValue(props, {
|
|
41
38
|
valuePropName: 'checked',
|
|
42
39
|
defaultValuePropName: 'defaultChecked',
|
|
@@ -44,93 +41,44 @@ const SwitchImpl = props => {
|
|
|
44
41
|
trigger: 'onChange'
|
|
45
42
|
});
|
|
46
43
|
const isChecked = Object.is(value, activeValue);
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
const toValue = isChecked ? 1 : 0;
|
|
51
|
-
progress.stopAnimation();
|
|
52
|
-
colorProgress.stopAnimation();
|
|
53
|
-
const animation = Animated.parallel([Animated.timing(progress, {
|
|
54
|
-
toValue,
|
|
55
|
-
duration: tokens.animation.duration,
|
|
56
|
-
easing: switchEasing,
|
|
57
|
-
useNativeDriver: nativeDriverEnabled
|
|
58
|
-
}), Animated.timing(colorProgress, {
|
|
59
|
-
toValue,
|
|
60
|
-
duration: tokens.animation.duration,
|
|
61
|
-
easing: switchEasing,
|
|
62
|
-
useNativeDriver: false
|
|
63
|
-
})]);
|
|
64
|
-
animation.start();
|
|
65
|
-
return () => animation.stop();
|
|
66
|
-
}, [colorProgress, isChecked, progress, tokens.animation.duration]);
|
|
67
|
-
const translateX = progress.interpolate({
|
|
68
|
-
inputRange: [0, 1],
|
|
69
|
-
outputRange: [0, translateDistance]
|
|
70
|
-
});
|
|
71
|
-
const resolvedActiveColor = activeColor ?? tokens.colors.activeTrack;
|
|
72
|
-
const resolvedInactiveColor = inactiveColor ?? tokens.colors.inactiveTrack;
|
|
73
|
-
const trackColor = isChecked ? resolvedActiveColor : resolvedInactiveColor;
|
|
74
|
-
const animatedTrackColor = colorProgress.interpolate({
|
|
75
|
-
inputRange: [0, 1],
|
|
76
|
-
outputRange: [resolvedInactiveColor, resolvedActiveColor]
|
|
77
|
-
});
|
|
78
|
-
const handlePress = event => {
|
|
44
|
+
const resolvedActiveColor = useMemo(() => activeColor ?? tokens.colors.activeTrack, [activeColor, tokens.colors.activeTrack]);
|
|
45
|
+
const resolvedInactiveColor = useMemo(() => inactiveColor ?? tokens.colors.inactiveTrack, [inactiveColor, tokens.colors.inactiveTrack]);
|
|
46
|
+
const handleTouchEnd = useCallback(event => {
|
|
79
47
|
if (disabled) return;
|
|
80
48
|
onClick?.(event);
|
|
81
|
-
|
|
49
|
+
}, [disabled, onClick]);
|
|
50
|
+
const handleValueChange = useCallback(() => {
|
|
51
|
+
if (disabled) return;
|
|
82
52
|
const next = isChecked ? inactiveValue : activeValue;
|
|
83
53
|
if (Object.is(next, value)) return;
|
|
84
54
|
triggerChange(next);
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
55
|
+
}, [activeValue, disabled, inactiveValue, isChecked, triggerChange, value]);
|
|
56
|
+
return /*#__PURE__*/React.createElement(RNSwitch, {
|
|
57
|
+
value: isChecked,
|
|
58
|
+
disabled: disabled,
|
|
59
|
+
trackColor: {
|
|
60
|
+
false: resolvedInactiveColor,
|
|
61
|
+
true: resolvedActiveColor
|
|
62
|
+
},
|
|
63
|
+
thumbColor: tokens.colors.handle,
|
|
64
|
+
ios_backgroundColor: resolvedInactiveColor,
|
|
65
|
+
style: [{
|
|
66
|
+
transform: [{
|
|
67
|
+
scaleX: scale
|
|
68
|
+
}, {
|
|
69
|
+
scaleY: scale
|
|
70
|
+
}]
|
|
71
|
+
}, {
|
|
72
|
+
opacity: disabled ? tokens.opacity.disabled : 1
|
|
73
|
+
}, style],
|
|
94
74
|
accessibilityRole: "switch",
|
|
95
75
|
accessibilityState: {
|
|
96
76
|
checked: isChecked,
|
|
97
77
|
disabled
|
|
98
78
|
},
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}) => [tokens.layout.container, {
|
|
103
|
-
opacity: disabled ? tokens.opacity.disabled : pressed ? tokens.opacity.pressed : 1
|
|
104
|
-
}, style]
|
|
105
|
-
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
106
|
-
style: [tokens.layout.track, {
|
|
107
|
-
width: trackWidth,
|
|
108
|
-
height: trackHeight,
|
|
109
|
-
borderRadius: trackRadius,
|
|
110
|
-
backgroundColor: animatedTrackColor,
|
|
111
|
-
borderWidth,
|
|
112
|
-
borderColor: tokens.colors.border
|
|
113
|
-
}, {
|
|
114
|
-
pointerEvents: 'none'
|
|
115
|
-
}]
|
|
116
|
-
}, /*#__PURE__*/React.createElement(AnimatedHandle, {
|
|
117
|
-
style: [tokens.layout.handleOuter, tokens.layout.handleInner, {
|
|
118
|
-
width: handleSize,
|
|
119
|
-
height: handleSize,
|
|
120
|
-
borderRadius: handleRadius,
|
|
121
|
-
top: inset,
|
|
122
|
-
left: inset,
|
|
123
|
-
transform: [{
|
|
124
|
-
translateX
|
|
125
|
-
}],
|
|
126
|
-
backgroundColor: tokens.colors.handle,
|
|
127
|
-
borderWidth,
|
|
128
|
-
borderColor: tokens.colors.border
|
|
129
|
-
}]
|
|
130
|
-
}, loading && /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
131
|
-
size: tokens.loader.size,
|
|
132
|
-
color: trackColor
|
|
133
|
-
}))));
|
|
79
|
+
onValueChange: handleValueChange,
|
|
80
|
+
onTouchEnd: handleTouchEnd
|
|
81
|
+
});
|
|
134
82
|
};
|
|
135
83
|
export const Switch = /*#__PURE__*/React.memo(SwitchImpl);
|
|
136
84
|
Switch.displayName = 'Switch';
|
|
@@ -1,72 +1,24 @@
|
|
|
1
1
|
import { createComponentTokensHook } from '../../design-system';
|
|
2
|
-
import { StyleSheet } from 'react-native';
|
|
3
2
|
const createSwitchTokens = foundations => {
|
|
4
3
|
const {
|
|
5
4
|
palette,
|
|
6
5
|
opacity
|
|
7
6
|
} = foundations;
|
|
8
|
-
const borderWidth = StyleSheet.hairlineWidth;
|
|
9
7
|
return {
|
|
10
8
|
defaults: {
|
|
11
9
|
size: 28,
|
|
12
10
|
disabled: false,
|
|
13
|
-
loading: false,
|
|
14
11
|
activeValue: true,
|
|
15
12
|
inactiveValue: false
|
|
16
13
|
},
|
|
17
|
-
spacing: {
|
|
18
|
-
inset: 1
|
|
19
|
-
},
|
|
20
|
-
layout: {
|
|
21
|
-
container: {
|
|
22
|
-
flexDirection: 'row',
|
|
23
|
-
alignItems: 'center'
|
|
24
|
-
},
|
|
25
|
-
track: {
|
|
26
|
-
position: 'relative'
|
|
27
|
-
},
|
|
28
|
-
handleOuter: {
|
|
29
|
-
position: 'absolute'
|
|
30
|
-
},
|
|
31
|
-
handleInner: {
|
|
32
|
-
alignItems: 'center',
|
|
33
|
-
justifyContent: 'center'
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
14
|
colors: {
|
|
37
15
|
activeTrack: palette.primary[500],
|
|
38
16
|
inactiveTrack: palette.default[200],
|
|
39
|
-
handle: '#ffffff'
|
|
40
|
-
border: palette.default[300]
|
|
41
|
-
},
|
|
42
|
-
borders: {
|
|
43
|
-
width: borderWidth
|
|
17
|
+
handle: '#ffffff'
|
|
44
18
|
},
|
|
45
19
|
opacity: {
|
|
46
20
|
disabled: opacity.disabled,
|
|
47
21
|
pressed: opacity.pressed
|
|
48
|
-
},
|
|
49
|
-
animation: {
|
|
50
|
-
duration: 200
|
|
51
|
-
},
|
|
52
|
-
shadow: {
|
|
53
|
-
outer: {
|
|
54
|
-
color: '#000000',
|
|
55
|
-
opacity: 0.06,
|
|
56
|
-
radius: 3,
|
|
57
|
-
offsetY: 3,
|
|
58
|
-
elevation: 3
|
|
59
|
-
},
|
|
60
|
-
inner: {
|
|
61
|
-
color: '#000000',
|
|
62
|
-
opacity: 0.12,
|
|
63
|
-
radius: 2,
|
|
64
|
-
offsetY: 2,
|
|
65
|
-
elevation: 2
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
loader: {
|
|
69
|
-
size: 12
|
|
70
22
|
}
|
|
71
23
|
};
|
|
72
24
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { useCallback, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
3
3
|
import { StyleSheet, View } from 'react-native';
|
|
4
4
|
import { mergeTokensOverride } from '../../design-system';
|
|
5
5
|
import { useControllableValue } from '../../hooks';
|
|
@@ -34,16 +34,16 @@ const TabbarBase = props => {
|
|
|
34
34
|
const placeholder = placeholderProp ?? tokens.defaults.placeholder;
|
|
35
35
|
const iconSize = iconSizeProp ?? tokens.icon.size;
|
|
36
36
|
const enableSafeAreaInsetBottom = safeAreaInsetBottom ?? fixed;
|
|
37
|
-
const items = React.Children.toArray(children).filter(React.isValidElement);
|
|
38
|
-
const firstName = items.length ? items[0].props.name ?? 0 : undefined;
|
|
37
|
+
const items = useMemo(() => React.Children.toArray(children).filter(React.isValidElement), [children]);
|
|
38
|
+
const firstName = useMemo(() => items.length ? items[0].props.name ?? 0 : undefined, [items]);
|
|
39
39
|
const [activeValue, setActiveValue] = useControllableValue(props, {
|
|
40
40
|
defaultValue: firstName,
|
|
41
41
|
valuePropName: 'value',
|
|
42
42
|
defaultValuePropName: 'defaultValue',
|
|
43
43
|
trigger: 'onChange'
|
|
44
44
|
});
|
|
45
|
-
const itemNames = items.map((item, index) => item.props.name ?? index);
|
|
46
|
-
const currentName = activeValue === undefined || activeValue === null ? firstName : itemNames.some(name => name === activeValue) ? activeValue : firstName;
|
|
45
|
+
const itemNames = useMemo(() => items.map((item, index) => item.props.name ?? index), [items]);
|
|
46
|
+
const currentName = useMemo(() => activeValue === undefined || activeValue === null ? firstName : itemNames.some(name => name === activeValue) ? activeValue : firstName, [activeValue, firstName, itemNames]);
|
|
47
47
|
const [barHeight, setBarHeight] = useState(tokens.layout.height);
|
|
48
48
|
const enablePlaceholder = fixed && placeholder;
|
|
49
49
|
const handleLayout = useCallback(event => {
|
|
@@ -52,15 +52,15 @@ const TabbarBase = props => {
|
|
|
52
52
|
setBarHeight(prev => Math.abs(prev - nextHeight) < 0.5 ? prev : nextHeight);
|
|
53
53
|
}, [enablePlaceholder]);
|
|
54
54
|
const onSelect = useCallback((name, index) => setActiveValue(name, index), [setActiveValue]);
|
|
55
|
-
const contextValue = {
|
|
55
|
+
const contextValue = useMemo(() => ({
|
|
56
56
|
activeValue: currentName,
|
|
57
57
|
activeColor: activeColor ?? tokens.colors.active,
|
|
58
58
|
inactiveColor: inactiveColor ?? tokens.colors.inactive,
|
|
59
59
|
fontSize: tokens.typography.fontSize,
|
|
60
60
|
fontWeight: tokens.typography.fontWeight,
|
|
61
61
|
onSelect
|
|
62
|
-
};
|
|
63
|
-
const clonedChildren = items.map((item, index) => {
|
|
62
|
+
}), [activeColor, currentName, inactiveColor, onSelect, tokens.colors.active, tokens.colors.inactive, tokens.typography.fontSize, tokens.typography.fontWeight]);
|
|
63
|
+
const clonedChildren = useMemo(() => items.map((item, index) => {
|
|
64
64
|
const name = item.props.name ?? index;
|
|
65
65
|
return /*#__PURE__*/React.cloneElement(item, {
|
|
66
66
|
key: item.key ?? name,
|
|
@@ -69,31 +69,35 @@ const TabbarBase = props => {
|
|
|
69
69
|
iconSize,
|
|
70
70
|
tokensOverride: mergeTokensOverride(tokensOverride, item.props.tokensOverride)
|
|
71
71
|
});
|
|
72
|
-
});
|
|
72
|
+
}), [iconSize, items, tokensOverride]);
|
|
73
73
|
if (items.length === 0) return null;
|
|
74
74
|
const ContentWrapper = enableSafeAreaInsetBottom ? SafeAreaView : View;
|
|
75
|
+
const placeholderStyle = useMemo(() => ({
|
|
76
|
+
height: barHeight
|
|
77
|
+
}), [barHeight]);
|
|
78
|
+
const containerStyle = useMemo(() => [styles.container, fixed && [styles.fixed, {
|
|
79
|
+
zIndex
|
|
80
|
+
}], style], [fixed, style, zIndex]);
|
|
81
|
+
const barStyle = useMemo(() => [styles.bar, {
|
|
82
|
+
backgroundColor: background,
|
|
83
|
+
paddingHorizontal: tokens.layout.paddingHorizontal,
|
|
84
|
+
minHeight: tokens.layout.height
|
|
85
|
+
}, border ? createHairlineBorderTop(tokens.colors.border) : null, contentStyle], [background, border, contentStyle, tokens.colors.border, tokens.layout.height, tokens.layout.paddingHorizontal]);
|
|
86
|
+
const rowStyle = useMemo(() => [styles.row, {
|
|
87
|
+
minHeight: tokens.layout.height
|
|
88
|
+
}], [tokens.layout.height]);
|
|
75
89
|
return /*#__PURE__*/React.createElement(React.Fragment, null, enablePlaceholder && /*#__PURE__*/React.createElement(View, {
|
|
76
90
|
testID: "rv-tabbar-placeholder",
|
|
77
|
-
style:
|
|
78
|
-
height: barHeight
|
|
79
|
-
}
|
|
91
|
+
style: placeholderStyle
|
|
80
92
|
}), /*#__PURE__*/React.createElement(View, _extends({}, rest, {
|
|
81
|
-
style:
|
|
82
|
-
zIndex
|
|
83
|
-
}], style],
|
|
93
|
+
style: containerStyle,
|
|
84
94
|
onLayout: handleLayout
|
|
85
95
|
}), /*#__PURE__*/React.createElement(ContentWrapper, {
|
|
86
|
-
style:
|
|
87
|
-
backgroundColor: background,
|
|
88
|
-
paddingHorizontal: tokens.layout.paddingHorizontal,
|
|
89
|
-
minHeight: tokens.layout.height
|
|
90
|
-
}, border ? createHairlineBorderTop(tokens.colors.border) : null, contentStyle]
|
|
96
|
+
style: barStyle
|
|
91
97
|
}, /*#__PURE__*/React.createElement(TabbarContext.Provider, {
|
|
92
98
|
value: contextValue
|
|
93
99
|
}, /*#__PURE__*/React.createElement(View, {
|
|
94
|
-
style:
|
|
95
|
-
minHeight: tokens.layout.height
|
|
96
|
-
}],
|
|
100
|
+
style: rowStyle,
|
|
97
101
|
accessibilityRole: "tablist"
|
|
98
102
|
}, clonedChildren)))));
|
|
99
103
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useCallback, useMemo } from 'react';
|
|
3
3
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
4
|
import { useAriaPress } from '../../hooks';
|
|
5
5
|
import { isFunction, isPlainObject, isRenderable, isText } from '../../utils/validate';
|
|
@@ -33,7 +33,7 @@ const TabbarItem = props => {
|
|
|
33
33
|
const isActive = context.activeValue === itemName;
|
|
34
34
|
const color = isActive ? context.activeColor : context.inactiveColor;
|
|
35
35
|
const resolvedIconSize = iconSize ?? tokens.icon.size;
|
|
36
|
-
const applyIconTheme = node => {
|
|
36
|
+
const applyIconTheme = useCallback(node => {
|
|
37
37
|
if (! /*#__PURE__*/React.isValidElement(node)) return node;
|
|
38
38
|
const element = node;
|
|
39
39
|
const nextProps = {};
|
|
@@ -47,15 +47,13 @@ const TabbarItem = props => {
|
|
|
47
47
|
}];
|
|
48
48
|
}
|
|
49
49
|
return /*#__PURE__*/React.cloneElement(element, nextProps);
|
|
50
|
-
};
|
|
51
|
-
const renderIcon = () => {
|
|
50
|
+
}, [color, resolvedIconSize]);
|
|
51
|
+
const renderIcon = useCallback(() => {
|
|
52
52
|
if (!icon) return null;
|
|
53
53
|
const raw = isFunction(icon) ? icon(isActive) : icon;
|
|
54
54
|
return applyIconTheme(raw);
|
|
55
|
-
};
|
|
56
|
-
const renderLabel = () =>
|
|
57
|
-
return isFunction(children) ? children(isActive) : children;
|
|
58
|
-
};
|
|
55
|
+
}, [applyIconTheme, icon, isActive]);
|
|
56
|
+
const renderLabel = useCallback(() => isFunction(children) ? children(isActive) : children, [children, isActive]);
|
|
59
57
|
const ariaPress = useAriaPress({
|
|
60
58
|
disabled,
|
|
61
59
|
onPress: () => {
|
|
@@ -73,8 +71,8 @@ const TabbarItem = props => {
|
|
|
73
71
|
testID: testID ?? `rv-tabbar-item-${itemName}`
|
|
74
72
|
}
|
|
75
73
|
});
|
|
76
|
-
const shouldRenderBadge = dot || isRenderable(badge);
|
|
77
|
-
const renderBadge = () => {
|
|
74
|
+
const shouldRenderBadge = useMemo(() => dot || isRenderable(badge), [badge, dot]);
|
|
75
|
+
const renderBadge = useCallback(() => {
|
|
78
76
|
if (isRenderable(badge)) {
|
|
79
77
|
if (isText(badge)) {
|
|
80
78
|
return /*#__PURE__*/React.createElement(Badge, {
|
|
@@ -92,24 +90,26 @@ const TabbarItem = props => {
|
|
|
92
90
|
return /*#__PURE__*/React.createElement(Badge, {
|
|
93
91
|
dot: true
|
|
94
92
|
});
|
|
95
|
-
};
|
|
93
|
+
}, [badge, dot]);
|
|
94
|
+
const itemStyle = useMemo(() => [styles.item, {
|
|
95
|
+
height: tokens.layout.height,
|
|
96
|
+
paddingVertical: tokens.layout.paddingVertical,
|
|
97
|
+
opacity: disabled ? 0.5 : 1
|
|
98
|
+
}, style], [disabled, style, tokens.layout.height, tokens.layout.paddingVertical]);
|
|
99
|
+
const labelStyle = useMemo(() => [styles.label, {
|
|
100
|
+
color,
|
|
101
|
+
fontSize: context.fontSize,
|
|
102
|
+
fontWeight: context.fontWeight,
|
|
103
|
+
lineHeight: context.fontSize
|
|
104
|
+
}, textStyle], [color, context.fontSize, context.fontWeight, textStyle]);
|
|
96
105
|
return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, ariaPress.interactionProps, {
|
|
97
|
-
style:
|
|
98
|
-
height: tokens.layout.height,
|
|
99
|
-
paddingVertical: tokens.layout.paddingVertical,
|
|
100
|
-
opacity: disabled ? 0.5 : 1
|
|
101
|
-
}, style]
|
|
106
|
+
style: itemStyle
|
|
102
107
|
}), /*#__PURE__*/React.createElement(View, {
|
|
103
108
|
style: [styles.iconWrapper, iconStyle]
|
|
104
109
|
}, renderIcon(), shouldRenderBadge && /*#__PURE__*/React.createElement(View, {
|
|
105
110
|
style: styles.badge
|
|
106
111
|
}, renderBadge())), isRenderable(children) ? /*#__PURE__*/React.createElement(Text, {
|
|
107
|
-
style:
|
|
108
|
-
color,
|
|
109
|
-
fontSize: context.fontSize,
|
|
110
|
-
fontWeight: context.fontWeight,
|
|
111
|
-
lineHeight: context.fontSize
|
|
112
|
-
}, textStyle]
|
|
112
|
+
style: labelStyle
|
|
113
113
|
}, renderLabel()) : null);
|
|
114
114
|
};
|
|
115
115
|
const styles = StyleSheet.create({
|
|
@@ -9,7 +9,6 @@ const createTokens = foundations => {
|
|
|
9
9
|
defaults: {
|
|
10
10
|
fixed: true,
|
|
11
11
|
border: true,
|
|
12
|
-
// 与 Vant 默认一致:placeholder 默认关闭;safe-area 由 Tabbar 在 fixed 时默认开启
|
|
13
12
|
placeholder: false,
|
|
14
13
|
safeAreaInsetBottom: false
|
|
15
14
|
},
|
|
@@ -20,7 +19,6 @@ const createTokens = foundations => {
|
|
|
20
19
|
inactive: palette.default[600]
|
|
21
20
|
},
|
|
22
21
|
layout: {
|
|
23
|
-
// 对齐官方默认观感(Vant Tabbar):50 高度、无左右 padding
|
|
24
22
|
height: 50,
|
|
25
23
|
paddingHorizontal: 0,
|
|
26
24
|
paddingVertical: spacing.xs
|