@vkontakte/vkui 4.19.0 → 4.22.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +493 -125
- package/.cache/ts/src/components/ActionSheet/types.d.ts +2 -2
- package/.cache/ts/src/components/Alert/Alert.d.ts +1 -0
- package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
- package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
- package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
- package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
- package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
- package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
- package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/.cache/ts/src/components/Link/Link.d.ts +1 -2
- package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
- package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
- package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
- package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
- package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
- package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
- package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
- package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
- package/.cache/ts/src/components/View/utils.d.ts +2 -0
- package/.cache/ts/src/index.d.ts +4 -0
- package/.cache/ts/src/lib/accessibility.d.ts +4 -2
- package/.cache/ts/src/lib/is.d.ts +1 -0
- package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
- package/.cache/ts/src/testing/utils.d.ts +2 -0
- package/.cache/ts/src/types.d.ts +3 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +13 -12
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +3 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +10 -5
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheet/types.d.ts +2 -2
- package/dist/cjs/components/Alert/Alert.d.ts +1 -0
- package/dist/cjs/components/Alert/Alert.js +12 -3
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +2 -1
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
- package/dist/cjs/components/Avatar/Avatar.js +7 -3
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.d.ts +11 -0
- package/dist/cjs/components/Cell/Cell.js +109 -182
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
- package/dist/cjs/components/Cell/useDraggable.js +140 -0
- package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +6 -4
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js +6 -4
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.js +165 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/cjs/components/FormField/FormField.d.ts +2 -3
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/cjs/components/Link/Link.d.ts +1 -2
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +184 -368
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +74 -244
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
- package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +34 -25
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +2 -1
- package/dist/cjs/components/Removable/Removable.js +75 -66
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/Root/Root.js +1 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +1 -1
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
- package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +2 -3
- package/dist/cjs/components/Switch/Switch.js +18 -8
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +9 -7
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.d.ts +16 -17
- package/dist/cjs/components/Touch/Touch.js +34 -14
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
- package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
- package/dist/cjs/components/Typography/Text/Text.js +2 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cjs/components/Typography/Title/Title.js +9 -4
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/View/View.js +68 -75
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +78 -85
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/View/utils.d.ts +2 -0
- package/dist/cjs/components/View/utils.js +13 -0
- package/dist/cjs/components/View/utils.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/accessibility.d.ts +4 -2
- package/dist/cjs/lib/accessibility.js +8 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- package/dist/cjs/lib/is.d.ts +1 -0
- package/dist/cjs/lib/is.js +13 -0
- package/dist/cjs/lib/is.js.map +1 -0
- package/dist/cjs/lib/prefixClass.js +7 -6
- package/dist/cjs/lib/prefixClass.js.map +1 -1
- package/dist/cjs/lib/supportEvents.d.ts +3 -1
- package/dist/cjs/lib/supportEvents.js +1 -4
- package/dist/cjs/lib/supportEvents.js.map +1 -1
- package/dist/cjs/types.d.ts +3 -0
- package/dist/components/ActionSheet/ActionSheet.js +12 -12
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js +2 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +2 -2
- package/dist/components/Alert/Alert.d.ts +1 -0
- package/dist/components/Alert/Alert.js +11 -3
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +2 -1
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -0
- package/dist/components/Avatar/Avatar.js +4 -2
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts +11 -0
- package/dist/components/Cell/Cell.js +103 -177
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/components/Cell/useDraggable.d.ts +13 -0
- package/dist/components/Cell/useDraggable.js +125 -0
- package/dist/components/Cell/useDraggable.js.map +1 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/dist/components/CustomSelect/CustomSelect.js +6 -6
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +6 -4
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/components/FocusTrap/FocusTrap.js +138 -0
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/components/FormField/FormField.d.ts +2 -3
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +2 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.d.ts +2 -4
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/dist/components/GridAvatar/GridAvatar.js +41 -0
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
- package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/components/Link/Link.d.ts +1 -2
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +181 -371
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +72 -248
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +0 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
- package/dist/components/ModalRoot/useModalManager.js +189 -0
- package/dist/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +35 -25
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +2 -1
- package/dist/components/Removable/Removable.js +73 -64
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/Root/Root.js +1 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +3 -3
- package/dist/components/SplitCol/SplitCol.js +2 -4
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -3
- package/dist/components/Switch/Switch.js +15 -8
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +2 -3
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +9 -6
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +16 -17
- package/dist/components/Touch/Touch.js +34 -14
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/components/Typography/Caption/Caption.js +4 -2
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +2 -2
- package/dist/components/Typography/Headline/Headline.js +2 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +2 -3
- package/dist/components/Typography/Text/Text.js +2 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +2 -2
- package/dist/components/Typography/Title/Title.js +9 -4
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/View/View.js +67 -75
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +79 -87
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/View/utils.d.ts +2 -0
- package/dist/components/View/utils.js +6 -0
- package/dist/components/View/utils.js.map +1 -0
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +12 -12
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +2 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +11 -3
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +2 -1
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +4 -2
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +1 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.css +1 -1
- package/dist/cssm/components/Cell/Cell.js +103 -177
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/cssm/components/Cell/useDraggable.js +125 -0
- package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -6
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js +6 -4
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/cssm/components/FocusTrap/FocusTrap.js +138 -0
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.css +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.css +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
- package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/IconButton/IconButton.css +1 -1
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +181 -371
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +72 -248
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +35 -25
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/Removable/Removable.js +73 -64
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Root/Root.css +1 -1
- package/dist/cssm/components/Root/Root.js +1 -0
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Search/Search.css +1 -1
- package/dist/cssm/components/Search/Search.js +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Select/Select.css +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Switch/Switch.js +15 -8
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +9 -6
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +34 -14
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +2 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +9 -4
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/View/View.js +67 -75
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +79 -87
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/View/utils.js +6 -0
- package/dist/cssm/components/View/utils.js.map +1 -0
- package/dist/cssm/index.js +2 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +6 -0
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/is.js +6 -0
- package/dist/cssm/lib/is.js.map +1 -0
- package/dist/cssm/lib/prefixClass.js +7 -6
- package/dist/cssm/lib/prefixClass.js.map +1 -1
- package/dist/cssm/lib/supportEvents.js +1 -4
- package/dist/cssm/lib/supportEvents.js.map +1 -1
- package/dist/cssm/styles/components.css +1 -1
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/styles/vkcom_light.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/accessibility.d.ts +4 -2
- package/dist/lib/accessibility.js +6 -0
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/is.d.ts +1 -0
- package/dist/lib/is.js +6 -0
- package/dist/lib/is.js.map +1 -0
- package/dist/lib/prefixClass.js +7 -6
- package/dist/lib/prefixClass.js.map +1 -1
- package/dist/lib/supportEvents.d.ts +3 -1
- package/dist/lib/supportEvents.js +1 -4
- package/dist/lib/supportEvents.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/vkui.css +2 -2
- package/dist/vkui.css.map +1 -1
- package/package.json +8 -4
- package/src/components/ActionSheet/ActionSheet.tsx +9 -7
- package/src/components/ActionSheet/ActionSheetDropdown.tsx +3 -2
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +9 -5
- package/src/components/ActionSheet/Readme.md +18 -14
- package/src/components/ActionSheet/types.ts +2 -2
- package/src/components/Alert/Alert.tsx +11 -4
- package/src/components/Alert/Readme.md +15 -11
- package/src/components/AppRoot/AppRoot.tsx +1 -0
- package/src/components/AppRoot/AppRootContext.ts +1 -0
- package/src/components/Avatar/Avatar.tsx +5 -2
- package/src/components/Banner/Banner.tsx +4 -5
- package/src/components/Button/Button.css +26 -53
- package/src/components/Button/Button.tsx +2 -3
- package/src/components/Card/Readme.md +6 -6
- package/src/components/Cell/Cell.css +21 -58
- package/src/components/Cell/Cell.tsx +101 -162
- package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
- package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
- package/src/components/Cell/CellDragger/CellDragger.css +4 -0
- package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
- package/src/components/Cell/Readme.md +89 -51
- package/src/components/Cell/useDraggable.tsx +112 -0
- package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
- package/src/components/Counter/Counter.tsx +2 -2
- package/src/components/CustomSelect/CustomSelect.tsx +6 -5
- package/src/components/DatePicker/DatePicker.tsx +5 -5
- package/src/components/DropdownIcon/DropdownIcon.css +3 -0
- package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
- package/src/components/Epic/Readme.md +1 -1
- package/src/components/FocusTrap/FocusTrap.tsx +125 -0
- package/src/components/FocusVisible/FocusVisible.css +12 -4
- package/src/components/FormField/FormField.css +0 -1
- package/src/components/FormField/FormField.tsx +2 -2
- package/src/components/FormItem/FormItem.css +13 -14
- package/src/components/FormItem/FormItem.tsx +2 -3
- package/src/components/FormLayout/FormLayout.tsx +2 -4
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
- package/src/components/Gallery/Gallery.css +2 -3
- package/src/components/Gallery/Readme.md +89 -109
- package/src/components/GridAvatar/GridAvatar.css +37 -0
- package/src/components/GridAvatar/GridAvatar.tsx +55 -0
- package/src/components/GridAvatar/Readme.md +12 -0
- package/src/components/Group/Readme.md +18 -14
- package/src/components/Header/Header.tsx +4 -4
- package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
- package/src/components/IconButton/IconButton.css +7 -0
- package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
- package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
- package/src/components/InitialsAvatar/Readme.md +14 -0
- package/src/components/Link/Link.tsx +1 -1
- package/src/components/MiniInfoCell/Readme.md +66 -62
- package/src/components/ModalDismissButton/Readme.md +13 -10
- package/src/components/ModalRoot/ModalRoot.tsx +170 -344
- package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
- package/src/components/ModalRoot/ModalRootDesktop.tsx +62 -243
- package/src/components/ModalRoot/Readme.md +35 -27
- package/src/components/ModalRoot/types.ts +0 -1
- package/src/components/ModalRoot/useModalManager.tsx +174 -0
- package/src/components/NativeSelect/NativeSelect.tsx +2 -2
- package/src/components/PullToRefresh/PullToRefresh.tsx +30 -25
- package/src/components/Removable/Removable.css +16 -63
- package/src/components/Removable/Removable.tsx +84 -64
- package/src/components/Root/Root.css +5 -0
- package/src/components/Root/Root.tsx +4 -1
- package/src/components/ScreenSpinner/Readme.md +13 -9
- package/src/components/Search/Search.css +1 -1
- package/src/components/Search/Search.tsx +3 -3
- package/src/components/Select/Select.css +1 -1
- package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
- package/src/components/SimpleCell/SimpleCell.css +10 -18
- package/src/components/SimpleCell/SimpleCell.tsx +3 -5
- package/src/components/SplitCol/SplitCol.tsx +4 -8
- package/src/components/SplitLayout/Readme.md +2 -2
- package/src/components/SubnavigationBar/Readme.md +90 -86
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
- package/src/components/Switch/Readme.md +6 -6
- package/src/components/Switch/Switch.css +46 -15
- package/src/components/Switch/Switch.tsx +16 -8
- package/src/components/Tappable/Tappable.tsx +2 -3
- package/src/components/Textarea/Readme.md +3 -0
- package/src/components/Textarea/Textarea.tsx +10 -6
- package/src/components/Touch/Touch.tsx +51 -31
- package/src/components/Typography/Caption/Caption.tsx +4 -4
- package/src/components/Typography/Headline/Headline.tsx +3 -3
- package/src/components/Typography/Subhead/Subhead.tsx +3 -3
- package/src/components/Typography/Text/Text.tsx +3 -4
- package/src/components/Typography/Title/Title.tsx +9 -5
- package/src/components/View/Readme.md +42 -56
- package/src/components/View/View.tsx +46 -61
- package/src/components/View/ViewInfinite.tsx +52 -67
- package/src/components/View/utils.ts +8 -0
- package/src/index.ts +4 -0
- package/src/lib/accessibility.ts +22 -2
- package/src/lib/is.ts +10 -0
- package/src/lib/prefixClass.ts +9 -6
- package/src/lib/supportEvents.ts +1 -4
- package/src/styles/components.css +4 -0
- package/src/styles/vkcom_light.css +3 -3
- package/src/testing/utils.tsx +41 -0
- package/src/types.ts +4 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ModalsState, ModalsStateEntry, ModalType } from './types';
|
|
3
|
+
import { warnOnce } from '../../lib/warnOnce';
|
|
4
|
+
import { getNavId } from '../../lib/getNavId';
|
|
5
|
+
import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
|
|
6
|
+
import { noop, isFunction } from '../../lib/utils';
|
|
7
|
+
|
|
8
|
+
interface ModalTransitionState {
|
|
9
|
+
activeModal?: string;
|
|
10
|
+
enteringModal?: string;
|
|
11
|
+
exitingModal?: string;
|
|
12
|
+
|
|
13
|
+
history?: string[];
|
|
14
|
+
isBack?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ModalTransitionProps extends ModalTransitionState {
|
|
18
|
+
onEnter: (id: string) => void;
|
|
19
|
+
onExit: (id: string) => void;
|
|
20
|
+
getModalState: (id: string) => ModalsStateEntry;
|
|
21
|
+
closeActiveModal: VoidFunction;
|
|
22
|
+
delayEnter: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function getModals(children: React.ReactNode | React.ReactNode[]) {
|
|
26
|
+
return React.Children.toArray(children) as React.ReactElement[];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const warn = warnOnce('ModalRoot');
|
|
30
|
+
|
|
31
|
+
export function modalTransitionReducer(
|
|
32
|
+
state: ModalTransitionState,
|
|
33
|
+
action: { type: 'setActive' | 'entered' | 'exited' | 'inited'; id: string },
|
|
34
|
+
): ModalTransitionState {
|
|
35
|
+
if (action.type === 'setActive' && action.id !== state.activeModal) {
|
|
36
|
+
const nextModal = action.id;
|
|
37
|
+
// preserve exiting modal if switching mid-transition
|
|
38
|
+
const prevModal = state.exitingModal || state.activeModal;
|
|
39
|
+
let history = [...state.history];
|
|
40
|
+
const isBack = history.includes(nextModal);
|
|
41
|
+
|
|
42
|
+
if (nextModal === null) {
|
|
43
|
+
history = [];
|
|
44
|
+
} else if (isBack) {
|
|
45
|
+
history = history.splice(0, history.indexOf(nextModal) + 1);
|
|
46
|
+
} else {
|
|
47
|
+
history.push(nextModal);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
activeModal: nextModal,
|
|
52
|
+
// not entering yet
|
|
53
|
+
enteringModal: null,
|
|
54
|
+
exitingModal: prevModal,
|
|
55
|
+
history,
|
|
56
|
+
isBack,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (action.type === 'entered' && action.id === state.enteringModal) {
|
|
60
|
+
return { ...state, enteringModal: null };
|
|
61
|
+
}
|
|
62
|
+
if (action.type === 'exited' && action.id === state.exitingModal) {
|
|
63
|
+
return { ...state, exitingModal: null };
|
|
64
|
+
}
|
|
65
|
+
if (action.type === 'inited' && action.id === state.activeModal) {
|
|
66
|
+
return { ...state, enteringModal: action.id };
|
|
67
|
+
}
|
|
68
|
+
return state;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Реализует переход модалок. При смене activeModal m1 -> m2:
|
|
73
|
+
* 1. activeModal: m1, exitingModal: null, enteringModal: null, триггер перехода
|
|
74
|
+
* 2. activeModal: m2, exitingModal: m1, enteringModal: null, рендерим m2 чтобы прошел init, начинаем анимацию выхода
|
|
75
|
+
* одновременный переход между ModalPage:
|
|
76
|
+
* 3a. activeModal: m2, exitingModal: m1, enteringModal: m2
|
|
77
|
+
* 4a. exitingModal и enteringModal переходят в null в порядке завершения анимации
|
|
78
|
+
* ИЛИ дожидаемся скрытия ModalCard
|
|
79
|
+
* 3b. activeModal: m2, exitingModal: null, enteringModal: m2
|
|
80
|
+
* 4b. enteringModal переходит в null после завершения анимации
|
|
81
|
+
* 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен
|
|
82
|
+
*/
|
|
83
|
+
export function useModalManager(
|
|
84
|
+
activeModal: string,
|
|
85
|
+
children: React.ReactNode | React.ReactNode[],
|
|
86
|
+
onClose: (id: string) => void,
|
|
87
|
+
initModal: (state: ModalsStateEntry) => void = noop,
|
|
88
|
+
): ModalTransitionProps {
|
|
89
|
+
const modalsState = React.useRef<ModalsState>({}).current;
|
|
90
|
+
getModals(children).forEach((Modal) => {
|
|
91
|
+
const modalProps = Modal.props;
|
|
92
|
+
const id = getNavId(modalProps, warn);
|
|
93
|
+
const state: ModalsStateEntry = modalsState[id] || { id };
|
|
94
|
+
|
|
95
|
+
state.onClose = Modal.props.onClose;
|
|
96
|
+
state.dynamicContentHeight = !!modalProps.dynamicContentHeight;
|
|
97
|
+
// ModalPage props
|
|
98
|
+
if (typeof modalProps.settlingHeight === 'number') {
|
|
99
|
+
state.settlingHeight = modalProps.settlingHeight;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
modalsState[state.id] = state;
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const isMissing = activeModal && !modalsState[activeModal];
|
|
106
|
+
const safeActiveModal = isMissing ? null : activeModal;
|
|
107
|
+
const [transitionState, dispatchTransition] = React.useReducer(modalTransitionReducer, {
|
|
108
|
+
activeModal: safeActiveModal,
|
|
109
|
+
enteringModal: null,
|
|
110
|
+
exitingModal: null,
|
|
111
|
+
history: safeActiveModal ? [safeActiveModal] : [],
|
|
112
|
+
isBack: false,
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Map props to state, render activeModal for init
|
|
116
|
+
useIsomorphicLayoutEffect(() => {
|
|
117
|
+
// ignore non-existent activeModal
|
|
118
|
+
if (process.env.NODE_ENV === 'development' && isMissing) {
|
|
119
|
+
warn(`Can't transition - modal ${activeModal} not found`);
|
|
120
|
+
}
|
|
121
|
+
dispatchTransition({ type: 'setActive', id: safeActiveModal });
|
|
122
|
+
}, [activeModal]);
|
|
123
|
+
|
|
124
|
+
// Init activeModal & set enteringModal
|
|
125
|
+
useIsomorphicLayoutEffect(() => {
|
|
126
|
+
if (transitionState.activeModal) {
|
|
127
|
+
initModal(modalsState[transitionState.activeModal]);
|
|
128
|
+
dispatchTransition({ type: 'inited', id: transitionState.activeModal });
|
|
129
|
+
}
|
|
130
|
+
}, [transitionState.activeModal]);
|
|
131
|
+
|
|
132
|
+
const isCard = (id: string) => modalsState[id]?.type === ModalType.CARD;
|
|
133
|
+
const onEnter = React.useCallback((id: string) => dispatchTransition({ type: 'entered', id }), []);
|
|
134
|
+
const onExit = React.useCallback((id: string) => dispatchTransition({ type: 'exited', id }), []);
|
|
135
|
+
const delayEnter = Boolean(transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)));
|
|
136
|
+
const getModalState = React.useCallback((id: string) => modalsState[id], []);
|
|
137
|
+
|
|
138
|
+
function closeActiveModal() {
|
|
139
|
+
const modalState = modalsState[transitionState.activeModal];
|
|
140
|
+
if (modalState) {
|
|
141
|
+
if (isFunction(modalState.onClose)) {
|
|
142
|
+
modalState.onClose();
|
|
143
|
+
} else if (isFunction(onClose)) {
|
|
144
|
+
onClose(modalState.id);
|
|
145
|
+
} else if (process.env.NODE_ENV === 'development') {
|
|
146
|
+
warn('onClose is undefined');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
onEnter,
|
|
153
|
+
onExit,
|
|
154
|
+
...transitionState,
|
|
155
|
+
delayEnter,
|
|
156
|
+
getModalState,
|
|
157
|
+
closeActiveModal,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export function withModalManager(initModal: (a: ModalsStateEntry) => void = noop) {
|
|
162
|
+
return function<Props extends ModalTransitionProps>(
|
|
163
|
+
Wrapped: React.ComponentType<Props>,
|
|
164
|
+
): React.FC<Omit<Props, keyof ModalTransitionProps> & { activeModal: string }> {
|
|
165
|
+
return function WithModalManager(props) {
|
|
166
|
+
const transitionManager = useModalManager(
|
|
167
|
+
props.activeModal,
|
|
168
|
+
props.children,
|
|
169
|
+
(props as any).onClose,
|
|
170
|
+
initModal);
|
|
171
|
+
return <Wrapped {...props as any} {...transitionManager} />;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { classNames } from '../../lib/classNames';
|
|
3
|
-
import {
|
|
3
|
+
import { DropdownIcon } from '../DropdownIcon/DropdownIcon';
|
|
4
4
|
import { FormField } from '../FormField/FormField';
|
|
5
5
|
import { HasAlign, HasRef, HasRootRef } from '../../types';
|
|
6
6
|
import { withAdaptivity, AdaptivityProps, SizeType } from '../../hoc/withAdaptivity';
|
|
@@ -64,7 +64,7 @@ const NativeSelect: React.FC<NativeSelectProps> = ({
|
|
|
64
64
|
style={style}
|
|
65
65
|
getRootRef={getRootRef}
|
|
66
66
|
disabled={disabled}
|
|
67
|
-
after={
|
|
67
|
+
after={<DropdownIcon />}
|
|
68
68
|
>
|
|
69
69
|
<select
|
|
70
70
|
{...restProps}
|
|
@@ -33,7 +33,6 @@ export interface PullToRefreshState {
|
|
|
33
33
|
canRefresh: boolean;
|
|
34
34
|
|
|
35
35
|
touchDown: boolean;
|
|
36
|
-
refreshingFinished: boolean;
|
|
37
36
|
|
|
38
37
|
touchY: number;
|
|
39
38
|
spinnerY: PullToRefreshParams['start'];
|
|
@@ -86,7 +85,6 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
86
85
|
canRefresh: false,
|
|
87
86
|
|
|
88
87
|
touchDown: false,
|
|
89
|
-
refreshingFinished: false,
|
|
90
88
|
|
|
91
89
|
touchY: 0,
|
|
92
90
|
spinnerY: this.params.start,
|
|
@@ -98,8 +96,8 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
98
96
|
}
|
|
99
97
|
|
|
100
98
|
params: PullToRefreshParams;
|
|
101
|
-
|
|
102
99
|
contentRef: React.RefObject<HTMLDivElement>;
|
|
100
|
+
waitFetchingTimeout: ReturnType<typeof setTimeout>;
|
|
103
101
|
|
|
104
102
|
get document() {
|
|
105
103
|
return this.props.document;
|
|
@@ -126,12 +124,34 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
126
124
|
passive: false,
|
|
127
125
|
});
|
|
128
126
|
}
|
|
127
|
+
clearTimeout(this.waitFetchingTimeout);
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
componentDidUpdate(prevProps: PullToRefreshProps) {
|
|
130
|
+
componentDidUpdate(prevProps: PullToRefreshProps, prevState: PullToRefreshState) {
|
|
132
131
|
if (prevProps.isFetching && !this.props.isFetching) {
|
|
133
132
|
this.onRefreshingFinish();
|
|
134
133
|
}
|
|
134
|
+
if (!prevProps.isFetching && this.props.isFetching) {
|
|
135
|
+
clearTimeout(this.waitFetchingTimeout);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (prevState.touchDown && !this.state.touchDown) {
|
|
139
|
+
const { refreshing, canRefresh } = this.state;
|
|
140
|
+
if (!refreshing && canRefresh) {
|
|
141
|
+
this.runRefreshing();
|
|
142
|
+
} else if (refreshing && !this.props.isFetching) {
|
|
143
|
+
// only iOS can start refresh before gesture end
|
|
144
|
+
this.resetRefreshingState();
|
|
145
|
+
} else {
|
|
146
|
+
// refreshing && isFetching: refresh in progress
|
|
147
|
+
// OR !refreshing && !canRefresh: pull was not strong enough
|
|
148
|
+
this.setState({
|
|
149
|
+
spinnerY: refreshing ? this.params.refreshing : this.params.start,
|
|
150
|
+
spinnerProgress: 0,
|
|
151
|
+
contentShift: 0,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
135
155
|
}
|
|
136
156
|
|
|
137
157
|
onTouchStart: TouchEventHandler = (e: TouchEvent) => {
|
|
@@ -187,29 +207,17 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
187
207
|
}
|
|
188
208
|
};
|
|
189
209
|
|
|
190
|
-
onTouchEnd
|
|
191
|
-
const { refreshing, canRefresh, refreshingFinished } = this.state;
|
|
192
|
-
|
|
210
|
+
onTouchEnd = () => {
|
|
193
211
|
this.setState({
|
|
194
212
|
watching: false,
|
|
195
213
|
touchDown: false,
|
|
196
|
-
}, () => {
|
|
197
|
-
if (canRefresh && !refreshing) {
|
|
198
|
-
this.runRefreshing();
|
|
199
|
-
} else if (refreshing && refreshingFinished) {
|
|
200
|
-
this.resetRefreshingState();
|
|
201
|
-
} else {
|
|
202
|
-
this.setState({
|
|
203
|
-
spinnerY: refreshing ? this.params.refreshing : this.params.start,
|
|
204
|
-
spinnerProgress: 0,
|
|
205
|
-
contentShift: 0,
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
214
|
});
|
|
209
215
|
};
|
|
210
216
|
|
|
211
217
|
runRefreshing() {
|
|
212
218
|
if (!this.state.refreshing && this.props.onRefresh) {
|
|
219
|
+
// cleanup if the consumer does not start fetching in 1s
|
|
220
|
+
this.waitFetchingTimeout = setTimeout(this.onRefreshingFinish, 1000);
|
|
213
221
|
this.setState({
|
|
214
222
|
refreshing: true,
|
|
215
223
|
spinnerY: this.props.platform === ANDROID || this.props.platform === VKCOM ? this.params.refreshing : this.state.spinnerY,
|
|
@@ -221,11 +229,9 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
221
229
|
}
|
|
222
230
|
|
|
223
231
|
onRefreshingFinish: VoidFunction = () => {
|
|
224
|
-
this.
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
!this.state.touchDown && this.resetRefreshingState();
|
|
228
|
-
});
|
|
232
|
+
if (!this.state.touchDown) {
|
|
233
|
+
this.resetRefreshingState();
|
|
234
|
+
}
|
|
229
235
|
};
|
|
230
236
|
|
|
231
237
|
resetRefreshingState() {
|
|
@@ -233,7 +239,6 @@ class PullToRefresh extends React.PureComponent<PullToRefreshProps & DOMProps, P
|
|
|
233
239
|
watching: false,
|
|
234
240
|
canRefresh: false,
|
|
235
241
|
refreshing: false,
|
|
236
|
-
refreshingFinished: false,
|
|
237
242
|
spinnerY: this.params.start,
|
|
238
243
|
spinnerProgress: 0,
|
|
239
244
|
contentShift: 0,
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
.Removable {
|
|
2
|
-
position: relative;
|
|
3
|
-
min-width: 0;
|
|
4
|
-
width: 100%;
|
|
5
|
-
max-width: 100%;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
1
|
.Removable__content {
|
|
2
|
+
position: relative;
|
|
9
3
|
display: flex;
|
|
10
|
-
flex-flow: row nowrap;
|
|
11
4
|
align-items: center;
|
|
5
|
+
padding-left: var(--formitem_padding);
|
|
12
6
|
}
|
|
13
7
|
|
|
14
8
|
.Removable__action {
|
|
@@ -22,35 +16,16 @@
|
|
|
22
16
|
align-self: flex-start;
|
|
23
17
|
}
|
|
24
18
|
|
|
25
|
-
.FormItem .
|
|
26
|
-
.FormLayoutGroup .
|
|
27
|
-
padding-left: var(--formitem_padding);
|
|
28
|
-
padding-right: var(--formitem_padding);
|
|
29
|
-
margin-left: calc(-1 * var(--formitem_padding));
|
|
30
|
-
margin-right: calc(-1 * var(--formitem_padding));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.FormItem--withTop .Removable__action,
|
|
34
|
-
.FormItem--withTop ~ .Removable__action {
|
|
19
|
+
.FormItem--removable.FormItem--withTop .Removable__action,
|
|
20
|
+
.FormLayoutGroup--removable .FormItem--withTop ~ .Removable__action {
|
|
35
21
|
top: 28px;
|
|
36
22
|
}
|
|
37
23
|
|
|
38
|
-
.FormItem--
|
|
39
|
-
.
|
|
24
|
+
.FormItem--sizeY-compact.FormItem--removable.FormItem--withTop .Removable__action,
|
|
25
|
+
.FormLayoutGroup--sizeY-compact.FormLayoutGroup--removable .FormItem--withTop ~ .Removable__action {
|
|
40
26
|
top: 26px;
|
|
41
27
|
}
|
|
42
28
|
|
|
43
|
-
.Cell .Removable {
|
|
44
|
-
padding-right: 6px;
|
|
45
|
-
box-sizing: border-box;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/* TODO: remove this
|
|
49
|
-
(a very temporary fix to appease screenshot tests) */
|
|
50
|
-
.Cell.Cell--android .Removable.Removable--sizeY-regular {
|
|
51
|
-
padding-right: 4px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
29
|
/**
|
|
55
30
|
* iOS
|
|
56
31
|
*/
|
|
@@ -81,16 +56,16 @@
|
|
|
81
56
|
}
|
|
82
57
|
|
|
83
58
|
@media (prefers-reduced-motion: no-preference) {
|
|
84
|
-
.Removable--ios .Removable__content
|
|
85
|
-
.Removable__remove {
|
|
59
|
+
.Removable--ios .Removable__content {
|
|
86
60
|
transition: transform .6s var(--ios-easing);
|
|
87
61
|
}
|
|
88
62
|
}
|
|
89
63
|
|
|
90
64
|
.Removable__toggle {
|
|
91
65
|
display: block;
|
|
92
|
-
width:
|
|
93
|
-
height:
|
|
66
|
+
width: 44px;
|
|
67
|
+
height: 44px;
|
|
68
|
+
margin: 0 2px;
|
|
94
69
|
background: none;
|
|
95
70
|
}
|
|
96
71
|
|
|
@@ -122,44 +97,22 @@
|
|
|
122
97
|
background-color: var(--white);
|
|
123
98
|
}
|
|
124
99
|
|
|
125
|
-
.Removable--
|
|
126
|
-
|
|
127
|
-
|
|
100
|
+
.Removable--ios .Removable__content {
|
|
101
|
+
padding-left: 0;
|
|
102
|
+
padding-right: var(--formitem_padding);
|
|
128
103
|
}
|
|
129
104
|
|
|
130
|
-
.FormLayoutGroup
|
|
105
|
+
.FormLayoutGroup--removable .Removable__content {
|
|
131
106
|
flex-wrap: wrap;
|
|
132
107
|
}
|
|
133
108
|
|
|
134
|
-
.FormLayoutGroup .
|
|
109
|
+
.FormLayoutGroup--removable .FormItem--ios.FormItem--withTop ~ .Removable__offset {
|
|
135
110
|
order: -1;
|
|
136
111
|
display: block;
|
|
137
112
|
width: 100%;
|
|
138
113
|
height: 28px;
|
|
139
114
|
}
|
|
140
115
|
|
|
141
|
-
.FormLayoutGroup
|
|
116
|
+
.FormLayoutGroup--removable.FormLayoutGroup--sizeY-compact .FormItem--ios.FormItem--withTop ~ .Removable__offset {
|
|
142
117
|
height: 26px;
|
|
143
118
|
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* ANDROID & VKCOM
|
|
147
|
-
*/
|
|
148
|
-
.FormItem .Removable--android .Removable__action,
|
|
149
|
-
.FormItem .Removable--vkcom .Removable__action,
|
|
150
|
-
.FormLayoutGroup .Removable--android .Removable__action,
|
|
151
|
-
.FormLayoutGroup .Removable--vkcom .Removable__action {
|
|
152
|
-
margin-top: -2px;
|
|
153
|
-
margin-right: -16px;
|
|
154
|
-
margin-bottom: -2px;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
.FormItem--sizeY-compact .Removable--android .Removable__action,
|
|
158
|
-
.FormItem--sizeY-compact .Removable--vkcom .Removable__action,
|
|
159
|
-
.FormLayoutGroup--sizeY-compact .Removable--android .Removable__action,
|
|
160
|
-
.FormLayoutGroup--sizeY-compact .Removable--vkcom .Removable__action {
|
|
161
|
-
margin-left: 2px;
|
|
162
|
-
margin-top: -4px;
|
|
163
|
-
margin-right: -14px;
|
|
164
|
-
margin-bottom: -4px;
|
|
165
|
-
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { HasRootRef } from '../../types';
|
|
2
3
|
import { classNames } from '../../lib/classNames';
|
|
3
|
-
import { getTitleFromChildren } from '../../lib/utils';
|
|
4
|
+
import { getTitleFromChildren, noop } from '../../lib/utils';
|
|
5
|
+
import { useExternRef } from '../../hooks/useExternRef';
|
|
4
6
|
import { usePlatform } from '../../hooks/usePlatform';
|
|
5
7
|
import { getClassName } from '../../helpers/getClassName';
|
|
6
8
|
import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
@@ -23,65 +25,104 @@ export interface RemovableProps {
|
|
|
23
25
|
onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement) => void;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
interface
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
*/
|
|
30
|
-
align?: 'start' | 'center';
|
|
28
|
+
interface RemovableIosOwnProps extends Pick<RemovableProps, 'removePlaceholder'> {
|
|
29
|
+
onRemoveClick?: (e: React.MouseEvent, rootEl?: HTMLElement) => void;
|
|
30
|
+
removePlaceholderString?: string;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
const RemovableIos: React.FC<RemovableIosOwnProps> = ({
|
|
34
|
+
onRemoveClick,
|
|
35
|
+
removePlaceholder,
|
|
36
|
+
removePlaceholderString,
|
|
34
37
|
children,
|
|
35
|
-
|
|
36
|
-
removePlaceholder = 'Удалить',
|
|
37
|
-
align = 'center',
|
|
38
|
-
...restProps
|
|
39
|
-
}: RemovableOwnProps) => {
|
|
40
|
-
const platform = usePlatform();
|
|
41
|
-
const { sizeY } = useAdaptivity();
|
|
38
|
+
}) => {
|
|
42
39
|
const { document } = useDOM();
|
|
43
40
|
|
|
44
41
|
const removeButtonRef = React.useRef(null);
|
|
45
|
-
|
|
46
|
-
const [isRemoveActivated, setRemoveActivated] = React.useState(false);
|
|
47
42
|
const [removeOffset, updateRemoveOffset] = React.useState(0);
|
|
48
43
|
|
|
49
|
-
useGlobalEventListener(document, 'click',
|
|
50
|
-
setRemoveActivated(false);
|
|
44
|
+
useGlobalEventListener(document, 'click', removeOffset > 0 && (() => {
|
|
51
45
|
updateRemoveOffset(0);
|
|
52
46
|
}));
|
|
53
47
|
|
|
54
48
|
const onRemoveTransitionEnd = () => {
|
|
55
|
-
if (
|
|
49
|
+
if (removeOffset > 0) {
|
|
56
50
|
removeButtonRef?.current?.focus();
|
|
57
51
|
}
|
|
58
52
|
};
|
|
59
53
|
|
|
60
|
-
const onRemoveActivateClick = (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
setRemoveActivated(true);
|
|
54
|
+
const onRemoveActivateClick = () => {
|
|
55
|
+
const { offsetWidth = 0 } = removeButtonRef?.current;
|
|
56
|
+
updateRemoveOffset(offsetWidth);
|
|
64
57
|
};
|
|
65
58
|
|
|
59
|
+
return (
|
|
60
|
+
<div
|
|
61
|
+
vkuiClass="Removable__content"
|
|
62
|
+
style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}
|
|
63
|
+
onTransitionEnd={onRemoveTransitionEnd}
|
|
64
|
+
>
|
|
65
|
+
<IconButton
|
|
66
|
+
hasActive={false}
|
|
67
|
+
hasHover={false}
|
|
68
|
+
aria-label={removePlaceholderString}
|
|
69
|
+
vkuiClass="Removable__action Removable__toggle"
|
|
70
|
+
onClick={onRemoveActivateClick}
|
|
71
|
+
disabled={removeOffset > 0}
|
|
72
|
+
>
|
|
73
|
+
<i vkuiClass="Removable__toggle-in" role="presentation" />
|
|
74
|
+
</IconButton>
|
|
75
|
+
{children}
|
|
76
|
+
|
|
77
|
+
<span vkuiClass="Removable__offset" aria-hidden="true"></span>
|
|
78
|
+
|
|
79
|
+
<Tappable
|
|
80
|
+
Component="button"
|
|
81
|
+
hasActive={false}
|
|
82
|
+
hasHover={false}
|
|
83
|
+
disabled={removeOffset === 0}
|
|
84
|
+
getRootRef={removeButtonRef}
|
|
85
|
+
vkuiClass="Removable__remove"
|
|
86
|
+
onClick={onRemoveClick}
|
|
87
|
+
onTransitionEnd={onRemoveTransitionEnd}
|
|
88
|
+
>
|
|
89
|
+
<span vkuiClass="Removable__remove-in">{removePlaceholder}</span>
|
|
90
|
+
</Tappable>
|
|
91
|
+
</div>
|
|
92
|
+
);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
interface RemovableOwnProps extends React.AllHTMLAttributes<HTMLElement>, RemovableProps, HasRootRef<HTMLDivElement> {
|
|
96
|
+
/**
|
|
97
|
+
* Расположение кнопки удаления.
|
|
98
|
+
*/
|
|
99
|
+
align?: 'start' | 'center';
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const Removable: React.FC<RemovableOwnProps> = ({
|
|
103
|
+
getRootRef,
|
|
104
|
+
children,
|
|
105
|
+
onRemove = noop,
|
|
106
|
+
removePlaceholder = 'Удалить',
|
|
107
|
+
align = 'center',
|
|
108
|
+
...restProps
|
|
109
|
+
}: RemovableOwnProps) => {
|
|
110
|
+
const platform = usePlatform();
|
|
111
|
+
const { sizeY } = useAdaptivity();
|
|
112
|
+
|
|
113
|
+
const ref = useExternRef(getRootRef);
|
|
114
|
+
|
|
66
115
|
const onRemoveClick = (e: React.MouseEvent) => {
|
|
67
|
-
e.nativeEvent.stopImmediatePropagation();
|
|
68
116
|
e.preventDefault();
|
|
69
|
-
onRemove
|
|
117
|
+
onRemove(e);
|
|
70
118
|
};
|
|
71
119
|
|
|
72
|
-
React.useEffect(() => {
|
|
73
|
-
const removeButton = removeButtonRef?.current;
|
|
74
|
-
|
|
75
|
-
if (isRemoveActivated && removeButton) {
|
|
76
|
-
updateRemoveOffset(removeButton.offsetWidth);
|
|
77
|
-
}
|
|
78
|
-
}, [isRemoveActivated]);
|
|
79
|
-
|
|
80
120
|
const removePlaceholderString: string = getTitleFromChildren(removePlaceholder);
|
|
81
121
|
|
|
82
122
|
return (
|
|
83
123
|
<div
|
|
84
124
|
{...restProps}
|
|
125
|
+
ref={ref}
|
|
85
126
|
vkuiClass={classNames(
|
|
86
127
|
getClassName('Removable', platform),
|
|
87
128
|
`Removable--${align}`,
|
|
@@ -93,9 +134,11 @@ export const Removable: React.FC<RemovableOwnProps> = ({
|
|
|
93
134
|
{children}
|
|
94
135
|
|
|
95
136
|
<IconButton
|
|
96
|
-
|
|
137
|
+
activeMode="opacity"
|
|
138
|
+
hoverMode="opacity"
|
|
97
139
|
vkuiClass="Removable__action"
|
|
98
140
|
onClick={onRemoveClick}
|
|
141
|
+
aria-label={removePlaceholderString}
|
|
99
142
|
>
|
|
100
143
|
<Icon24Cancel role="presentation" />
|
|
101
144
|
</IconButton>
|
|
@@ -103,36 +146,13 @@ export const Removable: React.FC<RemovableOwnProps> = ({
|
|
|
103
146
|
)}
|
|
104
147
|
|
|
105
148
|
{platform === IOS && (
|
|
106
|
-
<
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
onClick={onRemoveActivateClick}
|
|
114
|
-
>
|
|
115
|
-
<i vkuiClass="Removable__toggle-in" role="presentation" />
|
|
116
|
-
</IconButton>
|
|
117
|
-
{children}
|
|
118
|
-
|
|
119
|
-
<span vkuiClass="Removable__offset" aria-hidden="true"></span>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<Tappable
|
|
123
|
-
Component="button"
|
|
124
|
-
hasActive={false}
|
|
125
|
-
hasHover={false}
|
|
126
|
-
disabled={!isRemoveActivated}
|
|
127
|
-
getRootRef={removeButtonRef}
|
|
128
|
-
vkuiClass="Removable__remove"
|
|
129
|
-
onClick={onRemoveClick}
|
|
130
|
-
onTransitionEnd={onRemoveTransitionEnd}
|
|
131
|
-
style={{ transform: `translateX(-${removeOffset}px)` }}
|
|
132
|
-
>
|
|
133
|
-
<span vkuiClass="Removable__remove-in">{removePlaceholder}</span>
|
|
134
|
-
</Tappable>
|
|
135
|
-
</React.Fragment>
|
|
149
|
+
<RemovableIos
|
|
150
|
+
onRemoveClick={onRemoveClick}
|
|
151
|
+
removePlaceholder={removePlaceholder}
|
|
152
|
+
removePlaceholderString={removePlaceholderString}
|
|
153
|
+
>
|
|
154
|
+
{children}
|
|
155
|
+
</RemovableIos>
|
|
136
156
|
)}
|
|
137
157
|
</div>
|
|
138
158
|
);
|
|
@@ -133,7 +133,10 @@ const Root: React.FC<RootProps> = ({
|
|
|
133
133
|
})}
|
|
134
134
|
>
|
|
135
135
|
<NavTransitionProvider entering={transition && viewId === activeView}>
|
|
136
|
-
<div
|
|
136
|
+
<div
|
|
137
|
+
vkuiClass="Root__scrollCompensation"
|
|
138
|
+
style={{ marginTop: compensateScroll ? -scrolls[viewId] : null }}
|
|
139
|
+
>
|
|
137
140
|
{view}
|
|
138
141
|
</div>
|
|
139
142
|
</NavTransitionProvider>
|