@wordpress/components 25.13.0 → 25.15.1-next.79a6196f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +57 -115
- package/LICENSE.md +1 -1
- package/build/base-control/index.js +17 -13
- package/build/base-control/index.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +4 -2
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +3 -2
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/border-control/border-control-style-picker/component.js +1 -1
- package/build/border-control/border-control-style-picker/component.js.map +1 -1
- package/build/border-control/styles.js +17 -17
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/index.js +1 -1
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/linked-button.js +1 -1
- package/build/box-control/linked-button.js.map +1 -1
- package/build/button/index.js +1 -1
- package/build/button/index.js.map +1 -1
- package/build/checkbox-control/index.js +1 -1
- package/build/checkbox-control/index.js.map +1 -1
- package/build/checkbox-control/types.js.map +1 -1
- package/build/color-palette/index.native.js +11 -7
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/color-copy-button.js +1 -1
- package/build/color-picker/color-copy-button.js.map +1 -1
- package/build/context/wordpress-component.js.map +1 -1
- package/build/custom-select-control-v2/index.js +11 -10
- package/build/custom-select-control-v2/index.js.map +1 -1
- package/build/date-time/date/styles.js +8 -8
- package/build/date-time/date/styles.js.map +1 -1
- package/build/date-time/time/timezone.js +11 -2
- package/build/date-time/time/timezone.js.map +1 -1
- package/build/dimension-control/index.js +2 -0
- package/build/dimension-control/index.js.map +1 -1
- package/build/dimension-control/types.js.map +1 -1
- package/build/dropdown-menu-v2/index.js +205 -159
- package/build/dropdown-menu-v2/index.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js +86 -77
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/dropdown-menu-v2/types.js.map +1 -1
- package/build/duotone-picker/duotone-picker.js +4 -3
- package/build/duotone-picker/duotone-picker.js.map +1 -1
- package/build/focal-point-picker/controls.js +5 -1
- package/build/focal-point-picker/controls.js.map +1 -1
- package/build/focal-point-picker/index.js +2 -0
- package/build/focal-point-picker/index.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-picker-style.js +15 -15
- package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build/focal-point-picker/types.js.map +1 -1
- package/build/font-size-picker/font-size-picker-select.js +2 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build/font-size-picker/font-size-picker-toggle-group.js +2 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
- package/build/font-size-picker/index.js +10 -3
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/index.native.js +6 -3
- package/build/font-size-picker/index.native.js.map +1 -1
- package/build/font-size-picker/types.js.map +1 -1
- package/build/form-token-field/index.js +10 -5
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/token.js +1 -0
- package/build/form-token-field/token.js.map +1 -1
- package/build/gradient-picker/index.js +3 -2
- package/build/gradient-picker/index.js.map +1 -1
- package/build/index.native.js +20 -19
- package/build/index.native.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +32 -29
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/input-control/types.js.map +1 -1
- package/build/lock-unlock.js +18 -0
- package/build/lock-unlock.js.map +1 -0
- package/build/mobile/bottom-sheet/index.native.js +8 -0
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/color-settings/palette.screen.native.js +8 -4
- package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +39 -13
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/mobile/image/constants.js +12 -0
- package/build/mobile/image/constants.js.map +1 -0
- package/build/mobile/image/index.native.js +26 -18
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
- package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
- package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
- package/build/modal/index.js +18 -13
- package/build/modal/index.js.map +1 -1
- package/build/navigation/menu/menu-title.js +1 -1
- package/build/navigation/menu/menu-title.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +13 -15
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +23 -63
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/navigator/styles.js +52 -0
- package/build/navigator/styles.js.map +1 -0
- package/build/number-control/index.js +4 -8
- package/build/number-control/index.js.map +1 -1
- package/build/number-control/types.js.map +1 -1
- package/build/palette-edit/index.js +15 -34
- package/build/palette-edit/index.js.map +1 -1
- package/build/private-apis.js +11 -26
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +21 -0
- package/build/private-apis.native.js.map +1 -0
- package/build/query-controls/author-select.js +3 -1
- package/build/query-controls/author-select.js.map +1 -1
- package/build/query-controls/category-select.js +3 -1
- package/build/query-controls/category-select.js.map +1 -1
- package/build/query-controls/index.js +6 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/types.js.map +1 -1
- package/build/radio-control/index.js +1 -0
- package/build/radio-control/index.js.map +1 -1
- package/build/range-control/index.js +1 -1
- package/build/range-control/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +15 -25
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/slot-fill/index.js +3 -2
- package/build/slot-fill/index.js.map +1 -1
- package/build/slot-fill/types.js.map +1 -1
- package/build/snackbar/types.js.map +1 -1
- package/build/tabs/index.js +18 -1
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +3 -3
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tab.js +2 -2
- package/build/tabs/tab.js.map +1 -1
- package/build/tabs/tabpanel.js +11 -8
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/tabs/types.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +4 -4
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/utils.js +17 -17
- package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +3 -1
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +9 -8
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +11 -11
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/tools-panel/types.js.map +1 -1
- package/build/tooltip/index.js +34 -10
- package/build/tooltip/index.js.map +1 -1
- package/build/tooltip/types.js.map +1 -1
- package/build/truncate/hook.js +10 -4
- package/build/truncate/hook.js.map +1 -1
- package/build/truncate/types.js.map +1 -1
- package/build/unit-control/index.js +1 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/utils/strings.js +34 -3
- package/build/utils/strings.js.map +1 -1
- package/build-module/base-control/index.js +16 -12
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +4 -2
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +3 -2
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/border-control/border-control-style-picker/component.js +1 -1
- package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
- package/build-module/border-control/styles.js +17 -17
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/index.js +1 -1
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/linked-button.js +1 -1
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/button/index.js +1 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/checkbox-control/index.js +1 -1
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/checkbox-control/types.js.map +1 -1
- package/build-module/color-palette/index.native.js +11 -7
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/color-copy-button.js +1 -1
- package/build-module/color-picker/color-copy-button.js.map +1 -1
- package/build-module/context/wordpress-component.js.map +1 -1
- package/build-module/custom-select-control-v2/index.js +11 -10
- package/build-module/custom-select-control-v2/index.js.map +1 -1
- package/build-module/date-time/date/styles.js +8 -8
- package/build-module/date-time/date/styles.js.map +1 -1
- package/build-module/date-time/time/timezone.js +11 -2
- package/build-module/date-time/time/timezone.js.map +1 -1
- package/build-module/dimension-control/index.js +2 -0
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/dimension-control/types.js.map +1 -1
- package/build-module/dropdown-menu-v2/index.js +201 -154
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js +68 -61
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2/types.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +4 -3
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/focal-point-picker/controls.js +5 -1
- package/build-module/focal-point-picker/controls.js.map +1 -1
- package/build-module/focal-point-picker/index.js +2 -0
- package/build-module/focal-point-picker/index.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js +15 -15
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build-module/focal-point-picker/types.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-select.js +2 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-toggle-group.js +2 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
- package/build-module/font-size-picker/index.js +10 -3
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/index.native.js +5 -2
- package/build-module/font-size-picker/index.native.js.map +1 -1
- package/build-module/font-size-picker/types.js.map +1 -1
- package/build-module/form-token-field/index.js +10 -5
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/token.js +1 -0
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/gradient-picker/index.js +3 -2
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/index.native.js +6 -3
- package/build-module/index.native.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +31 -29
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/input-control/types.js.map +1 -1
- package/build-module/lock-unlock.js +9 -0
- package/build-module/lock-unlock.js.map +1 -0
- package/build-module/mobile/bottom-sheet/index.native.js +9 -1
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +8 -4
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +38 -13
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/mobile/image/constants.js +5 -0
- package/build-module/mobile/image/constants.js.map +1 -0
- package/build-module/mobile/image/index.native.js +25 -16
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
- package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
- package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
- package/build-module/modal/index.js +18 -13
- package/build-module/modal/index.js.map +1 -1
- package/build-module/navigation/menu/menu-title.js +1 -1
- package/build-module/navigation/menu/menu-title.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +3 -16
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +16 -70
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/navigator/styles.js +47 -0
- package/build-module/navigator/styles.js.map +1 -0
- package/build-module/number-control/index.js +4 -8
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/number-control/types.js.map +1 -1
- package/build-module/palette-edit/index.js +14 -33
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/private-apis.js +10 -23
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +14 -0
- package/build-module/private-apis.native.js.map +1 -0
- package/build-module/query-controls/author-select.js +3 -1
- package/build-module/query-controls/author-select.js.map +1 -1
- package/build-module/query-controls/category-select.js +3 -1
- package/build-module/query-controls/category-select.js.map +1 -1
- package/build-module/query-controls/index.js +6 -1
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/query-controls/types.js.map +1 -1
- package/build-module/radio-control/index.js +1 -0
- package/build-module/radio-control/index.js.map +1 -1
- package/build-module/range-control/index.js +1 -1
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +15 -25
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/slot-fill/index.js +3 -2
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/slot-fill/types.js.map +1 -1
- package/build-module/snackbar/types.js.map +1 -1
- package/build-module/tabs/index.js +18 -1
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/styles.js +3 -3
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tab.js +2 -2
- package/build-module/tabs/tab.js.map +1 -1
- package/build-module/tabs/tabpanel.js +11 -8
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/tabs/types.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/utils.js +17 -17
- package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +3 -1
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +9 -8
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +11 -11
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/tools-panel/types.js.map +1 -1
- package/build-module/tooltip/index.js +34 -12
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/types.js.map +1 -1
- package/build-module/truncate/hook.js +10 -4
- package/build-module/truncate/hook.js.map +1 -1
- package/build-module/truncate/types.js.map +1 -1
- package/build-module/unit-control/index.js +1 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/utils/strings.js +32 -2
- package/build-module/utils/strings.js.map +1 -1
- package/build-style/style-rtl.css +30 -6
- package/build-style/style.css +30 -6
- package/build-types/base-control/index.d.ts +3 -27
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.story.d.ts +4 -1
- package/build-types/base-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +4 -4
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +6 -6
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -4
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +4 -4
- package/build-types/border-box-control/stories/index.story.d.ts +1 -1
- package/build-types/border-control/border-control/hook.d.ts +4 -4
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +5 -4
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-style-picker/hook.d.ts +4 -4
- package/build-types/border-control/stories/index.story.d.ts +6 -6
- package/build-types/border-control/styles.d.ts +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/box-control/stories/index.story.d.ts +42 -42
- package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
- package/build-types/button/deprecated.d.ts +3 -3
- package/build-types/card/card/hook.d.ts +4 -4
- package/build-types/card/card-body/hook.d.ts +4 -4
- package/build-types/card/card-divider/hook.d.ts +4 -4
- package/build-types/card/card-footer/hook.d.ts +4 -4
- package/build-types/card/card-header/hook.d.ts +4 -4
- package/build-types/card/card-media/hook.d.ts +4 -4
- package/build-types/checkbox-control/index.d.ts.map +1 -1
- package/build-types/checkbox-control/types.d.ts +3 -2
- package/build-types/checkbox-control/types.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +2 -2
- package/build-types/color-picker/component.d.ts +2 -2
- package/build-types/color-picker/stories/index.story.d.ts +1 -1
- package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -3
- package/build-types/composite/test/index.d.ts.map +1 -0
- package/build-types/context/wordpress-component.d.ts +3 -3
- package/build-types/context/wordpress-component.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/index.d.ts +3 -2
- package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
- package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/date-time/date-time/styles.d.ts +1 -1
- package/build-types/date-time/time/styles.d.ts +4 -4
- package/build-types/date-time/time/timezone.d.ts.map +1 -1
- package/build-types/dimension-control/index.d.ts.map +1 -1
- package/build-types/dimension-control/types.d.ts +6 -0
- package/build-types/dimension-control/types.d.ts.map +1 -1
- package/build-types/dropdown/index.d.ts +1 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts +3 -3
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts +1 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
- package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/index.d.ts +18 -15
- package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/types.d.ts +89 -173
- package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
- package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
- package/build-types/elevation/hook.d.ts +4 -4
- package/build-types/flex/flex/hook.d.ts +4 -4
- package/build-types/flex/flex-block/hook.d.ts +4 -4
- package/build-types/flex/flex-item/hook.d.ts +4 -4
- package/build-types/focal-point-picker/controls.d.ts +1 -1
- package/build-types/focal-point-picker/controls.d.ts.map +1 -1
- package/build-types/focal-point-picker/index.d.ts +1 -1
- package/build-types/focal-point-picker/index.d.ts.map +1 -1
- package/build-types/focal-point-picker/stories/index.story.d.ts +8 -4
- package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/types.d.ts +7 -0
- package/build-types/focal-point-picker/types.d.ts.map +1 -1
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -1
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/styles.d.ts +1 -1
- package/build-types/font-size-picker/types.d.ts +8 -1
- package/build-types/font-size-picker/types.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/token.d.ts.map +1 -1
- package/build-types/grid/hook.d.ts +4 -4
- package/build-types/h-stack/hook.d.ts +4 -4
- package/build-types/heading/component.d.ts +1 -1
- package/build-types/heading/hook.d.ts +4 -4
- package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +1 -1
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +4 -4
- package/build-types/item-group/item-group/hook.d.ts +4 -4
- package/build-types/lock-unlock.d.ts +3 -0
- package/build-types/lock-unlock.d.ts.map +1 -0
- package/build-types/menu-item/index.d.ts +1 -1
- package/build-types/menu-item/stories/index.story.d.ts +4 -4
- package/build-types/mobile/image/constants.d.ts +5 -0
- package/build-types/mobile/image/constants.d.ts.map +1 -0
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +3 -3
- package/build-types/navigator/navigator-back-button/hook.d.ts +6 -6
- package/build-types/navigator/navigator-button/hook.d.ts +6 -6
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +1 -7
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/styles.d.ts +9 -0
- package/build-types/navigator/styles.d.ts.map +1 -0
- package/build-types/number-control/index.d.ts +1 -1
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +1 -1
- package/build-types/number-control/types.d.ts +1 -1
- package/build-types/palette-edit/index.d.ts +2 -2
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +3 -3
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
- package/build-types/private-apis.d.ts +0 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/query-controls/author-select.d.ts +1 -1
- package/build-types/query-controls/author-select.d.ts.map +1 -1
- package/build-types/query-controls/category-select.d.ts +1 -1
- package/build-types/query-controls/category-select.d.ts.map +1 -1
- package/build-types/query-controls/index.d.ts +1 -1
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/query-controls/types.d.ts +9 -0
- package/build-types/query-controls/types.d.ts.map +1 -1
- package/build-types/radio-control/index.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/stories/index.story.d.ts +2 -2
- package/build-types/scrollable/hook.d.ts +4 -4
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.story.d.ts +2 -2
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/slot-fill/index.d.ts +1 -1
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/slot-fill/types.d.ts +4 -0
- package/build-types/slot-fill/types.d.ts.map +1 -1
- package/build-types/snackbar/index.d.ts +2 -2
- package/build-types/snackbar/stories/index.story.d.ts +0 -3
- package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
- package/build-types/snackbar/types.d.ts +1 -1
- package/build-types/snackbar/types.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +4 -4
- package/build-types/surface/hook.d.ts +4 -4
- package/build-types/tabs/index.d.ts +2 -2
- package/build-types/tabs/index.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tab.d.ts +2 -1
- package/build-types/tabs/tab.d.ts.map +1 -1
- package/build-types/tabs/tabpanel.d.ts +3 -2
- package/build-types/tabs/tabpanel.d.ts.map +1 -1
- package/build-types/tabs/types.d.ts +8 -3
- package/build-types/tabs/types.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +4 -4
- package/build-types/text-control/index.d.ts +1 -1
- package/build-types/textarea-control/index.d.ts +1 -1
- package/build-types/toggle-control/stories/index.story.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +3 -3
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +5 -4
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +5 -4
- package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +4 -4
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +9 -0
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/stories/index.story.d.ts +10 -1
- package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
- package/build-types/tooltip/types.d.ts +3 -0
- package/build-types/tooltip/types.d.ts.map +1 -1
- package/build-types/truncate/hook.d.ts +5 -5
- package/build-types/truncate/hook.d.ts.map +1 -1
- package/build-types/truncate/types.d.ts +4 -0
- package/build-types/truncate/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
- package/build-types/utils/strings.d.ts +14 -2
- package/build-types/utils/strings.d.ts.map +1 -1
- package/build-types/v-stack/hook.d.ts +4 -4
- package/build-types/v-stack/stories/index.story.d.ts +1 -1
- package/package.json +20 -21
- package/src/alignment-matrix-control/test/index.tsx +10 -16
- package/src/base-control/index.tsx +21 -16
- package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
- package/src/border-control/border-control-dropdown/component.tsx +3 -1
- package/src/border-control/border-control-dropdown/hook.ts +3 -2
- package/src/border-control/border-control-style-picker/component.tsx +1 -1
- package/src/border-control/styles.ts +2 -9
- package/src/box-control/index.tsx +1 -1
- package/src/box-control/linked-button.tsx +1 -1
- package/src/button/README.md +32 -6
- package/src/button/index.tsx +1 -1
- package/src/button-group/README.md +0 -6
- package/src/card/card/README.md +1 -1
- package/src/checkbox-control/README.md +3 -10
- package/src/checkbox-control/index.tsx +8 -6
- package/src/checkbox-control/test/__snapshots__/index.tsx.snap +3 -8
- package/src/checkbox-control/test/index.tsx +7 -0
- package/src/checkbox-control/types.ts +3 -2
- package/src/color-palette/index.native.js +18 -7
- package/src/color-picker/color-copy-button.tsx +1 -1
- package/src/combobox-control/README.md +0 -6
- package/src/composite/test/index.tsx +576 -0
- package/src/context/wordpress-component.ts +11 -6
- package/src/custom-select-control/README.md +0 -6
- package/src/custom-select-control/test/index.js +367 -35
- package/src/custom-select-control-v2/index.tsx +13 -12
- package/src/date-time/date/styles.ts +3 -3
- package/src/date-time/time/timezone.tsx +15 -3
- package/src/dimension-control/index.tsx +2 -0
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +2 -2
- package/src/dimension-control/types.ts +6 -0
- package/src/dropdown-menu/README.md +0 -5
- package/src/dropdown-menu-v2/README.md +75 -136
- package/src/dropdown-menu-v2/index.tsx +321 -231
- package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
- package/src/dropdown-menu-v2/styles.ts +226 -151
- package/src/dropdown-menu-v2/test/index.tsx +480 -188
- package/src/dropdown-menu-v2/types.ts +98 -184
- package/src/duotone-picker/duotone-picker.tsx +7 -3
- package/src/focal-point-picker/controls.tsx +4 -0
- package/src/focal-point-picker/index.tsx +2 -0
- package/src/focal-point-picker/styles/focal-point-picker-style.ts +1 -1
- package/src/focal-point-picker/types.ts +7 -0
- package/src/font-size-picker/font-size-picker-select.tsx +2 -0
- package/src/font-size-picker/font-size-picker-toggle-group.tsx +9 -1
- package/src/font-size-picker/index.native.js +8 -2
- package/src/font-size-picker/index.tsx +15 -5
- package/src/font-size-picker/types.ts +8 -1
- package/src/form-toggle/README.md +0 -6
- package/src/form-toggle/style.scss +4 -2
- package/src/form-token-field/index.tsx +11 -7
- package/src/form-token-field/test/index.tsx +97 -0
- package/src/form-token-field/token.tsx +1 -0
- package/src/gradient-picker/index.tsx +2 -2
- package/src/index.native.js +6 -3
- package/src/input-control/styles/input-control-styles.tsx +10 -8
- package/src/input-control/types.ts +1 -1
- package/src/lock-unlock.js +10 -0
- package/src/menu-group/README.md +0 -8
- package/src/menu-items-choice/README.md +0 -7
- package/src/mobile/bottom-sheet/index.native.js +15 -1
- package/src/mobile/color-settings/palette.screen.native.js +7 -5
- package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
- package/src/mobile/global-styles-context/test/utils.native.js +22 -0
- package/src/mobile/global-styles-context/utils.native.js +42 -19
- package/src/mobile/image/constants.js +1 -0
- package/src/mobile/image/index.native.js +55 -18
- package/src/mobile/image/style.native.scss +35 -9
- package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
- package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
- package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
- package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
- package/src/mobile/link-settings/style.native.scss +0 -17
- package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
- package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
- package/src/modal/README.md +0 -6
- package/src/modal/index.tsx +18 -16
- package/src/modal/test/index.tsx +90 -1
- package/src/navigation/menu/menu-title.tsx +1 -1
- package/src/navigator/navigator-provider/component.tsx +3 -4
- package/src/navigator/navigator-screen/component.tsx +15 -93
- package/src/navigator/styles.ts +71 -0
- package/src/navigator/test/index.tsx +0 -64
- package/src/notice/README.md +0 -6
- package/src/number-control/README.md +2 -2
- package/src/number-control/index.tsx +4 -8
- package/src/number-control/types.ts +1 -1
- package/src/palette-edit/index.tsx +14 -43
- package/src/palette-edit/style.scss +2 -2
- package/src/panel/README.md +0 -6
- package/src/private-apis.native.js +13 -0
- package/src/private-apis.ts +12 -37
- package/src/query-controls/author-select.tsx +2 -0
- package/src/query-controls/category-select.tsx +2 -0
- package/src/query-controls/index.tsx +6 -1
- package/src/query-controls/types.ts +9 -0
- package/src/radio-control/README.md +0 -6
- package/src/radio-control/index.tsx +4 -1
- package/src/radio-control/style.scss +29 -2
- package/src/radio-group/README.md +0 -6
- package/src/range-control/README.md +1 -9
- package/src/range-control/index.tsx +1 -1
- package/src/search-control/README.md +1 -5
- package/src/select-control/README.md +0 -6
- package/src/select-control/styles/select-control-styles.ts +10 -28
- package/src/slot-fill/index.tsx +5 -2
- package/src/slot-fill/types.ts +5 -0
- package/src/snackbar/README.md +0 -6
- package/src/snackbar/stories/index.story.tsx +7 -5
- package/src/snackbar/style.scss +4 -3
- package/src/snackbar/types.ts +2 -1
- package/src/spacer/README.md +0 -2
- package/src/spinner/README.md +2 -0
- package/src/tab-panel/README.md +0 -5
- package/src/tab-panel/test/index.tsx +39 -56
- package/src/tabs/README.md +4 -4
- package/src/tabs/index.tsx +22 -1
- package/src/tabs/stories/index.story.tsx +48 -48
- package/src/tabs/styles.ts +7 -1
- package/src/tabs/tab.tsx +3 -3
- package/src/tabs/tabpanel.tsx +13 -8
- package/src/tabs/test/index.tsx +236 -106
- package/src/tabs/types.ts +8 -3
- package/src/text-control/README.md +0 -6
- package/src/textarea-control/README.md +0 -6
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
- package/src/toggle-group-control/test/index.tsx +107 -41
- package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
- package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
- package/src/toggle-group-control/toggle-group-control/utils.ts +15 -20
- package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
- package/src/toolbar/toolbar/README.md +0 -6
- package/src/tools-panel/test/index.tsx +12 -20
- package/src/tools-panel/tools-panel/README.md +7 -0
- package/src/tools-panel/tools-panel/component.tsx +2 -0
- package/src/tools-panel/tools-panel-header/README.md +7 -0
- package/src/tools-panel/tools-panel-header/component.tsx +20 -13
- package/src/tools-panel/tools-panel-item/hook.ts +10 -21
- package/src/tools-panel/types.ts +9 -0
- package/src/tooltip/README.md +4 -0
- package/src/tooltip/index.tsx +48 -10
- package/src/tooltip/stories/index.story.tsx +18 -1
- package/src/tooltip/test/index.tsx +404 -254
- package/src/tooltip/types.ts +4 -0
- package/src/tree-grid/README.md +0 -4
- package/src/truncate/README.md +8 -0
- package/src/truncate/hook.ts +17 -10
- package/src/truncate/test/index.tsx +54 -27
- package/src/truncate/types.ts +4 -0
- package/src/unit-control/index.tsx +1 -1
- package/src/utils/strings.ts +30 -2
- package/src/utils/test/strings.js +96 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dropdown-menu-v2-ariakit/index.js +0 -256
- package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
- package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
- package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
- package/build/dropdown-menu-v2-ariakit/types.js +0 -6
- package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
- package/build/mobile/inserter-button/index.native.js +0 -98
- package/build/mobile/inserter-button/index.native.js.map +0 -1
- package/build/mobile/inserter-button/sparkles.js +0 -23
- package/build/mobile/inserter-button/sparkles.js.map +0 -1
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build/mobile/link-settings/image-link-destinations-screen.native.js +0 -119
- package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
- package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
- package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
- package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
- package/build-module/mobile/inserter-button/index.native.js +0 -89
- package/build-module/mobile/inserter-button/index.native.js.map +0 -1
- package/build-module/mobile/inserter-button/sparkles.js +0 -15
- package/build-module/mobile/inserter-button/sparkles.js.map +0 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build-module/mobile/link-settings/image-link-destinations-screen.native.js +0 -110
- package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
- package/build-types/mobile/inserter-button/sparkles.d.ts +0 -3
- package/build-types/mobile/inserter-button/sparkles.d.ts.map +0 -1
- package/src/dropdown-menu-v2-ariakit/README.md +0 -331
- package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
- package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
- package/src/dropdown-menu-v2-ariakit/styles.ts +0 -333
- package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
- package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
- package/src/mobile/inserter-button/README.md +0 -62
- package/src/mobile/inserter-button/index.native.js +0 -116
- package/src/mobile/inserter-button/sparkles.js +0 -15
- package/src/mobile/inserter-button/style.native.scss +0 -72
- package/src/mobile/link-settings/image-link-destinations-screen.native.js +0 -152
- /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
|
@@ -9,7 +9,7 @@ import FastImage from 'react-native-fast-image';
|
|
|
9
9
|
*/
|
|
10
10
|
import { __ } from '@wordpress/i18n';
|
|
11
11
|
import { Icon } from '@wordpress/components';
|
|
12
|
-
import { image
|
|
12
|
+
import { image, offline } from '@wordpress/icons';
|
|
13
13
|
import { usePreferredColorSchemeStyle } from '@wordpress/compose';
|
|
14
14
|
import { useEffect, useState, Platform } from '@wordpress/element';
|
|
15
15
|
|
|
@@ -22,13 +22,12 @@ import SvgIconRetry from './icon-retry';
|
|
|
22
22
|
import ImageEditingButton from './image-editing-button';
|
|
23
23
|
|
|
24
24
|
const ICON_TYPE = {
|
|
25
|
+
OFFLINE: 'offline',
|
|
25
26
|
PLACEHOLDER: 'placeholder',
|
|
26
27
|
RETRY: 'retry',
|
|
27
28
|
UPLOAD: 'upload',
|
|
28
29
|
};
|
|
29
30
|
|
|
30
|
-
export const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };
|
|
31
|
-
|
|
32
31
|
const ImageComponent = ( {
|
|
33
32
|
align,
|
|
34
33
|
alt,
|
|
@@ -39,6 +38,7 @@ const ImageComponent = ( {
|
|
|
39
38
|
isSelected,
|
|
40
39
|
shouldUseFastImage,
|
|
41
40
|
isUploadFailed,
|
|
41
|
+
isUploadPaused,
|
|
42
42
|
isUploadInProgress,
|
|
43
43
|
mediaPickerOptions,
|
|
44
44
|
onImageDataLoad,
|
|
@@ -101,19 +101,23 @@ const ImageComponent = ( {
|
|
|
101
101
|
};
|
|
102
102
|
|
|
103
103
|
const getIcon = ( iconType ) => {
|
|
104
|
+
let icon;
|
|
104
105
|
let iconStyle;
|
|
105
106
|
switch ( iconType ) {
|
|
106
107
|
case ICON_TYPE.RETRY:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
icon = retryIcon || SvgIconRetry;
|
|
109
|
+
iconStyle = iconRetryStyles;
|
|
110
|
+
break;
|
|
111
|
+
case ICON_TYPE.OFFLINE:
|
|
112
|
+
icon = offline;
|
|
113
|
+
iconStyle = iconOfflineStyles;
|
|
114
|
+
break;
|
|
113
115
|
case ICON_TYPE.PLACEHOLDER:
|
|
116
|
+
icon = image;
|
|
114
117
|
iconStyle = iconPlaceholderStyles;
|
|
115
118
|
break;
|
|
116
119
|
case ICON_TYPE.UPLOAD:
|
|
120
|
+
icon = image;
|
|
117
121
|
iconStyle = iconUploadStyles;
|
|
118
122
|
break;
|
|
119
123
|
}
|
|
@@ -130,6 +134,31 @@ const ImageComponent = ( {
|
|
|
130
134
|
styles.iconUploadDark
|
|
131
135
|
);
|
|
132
136
|
|
|
137
|
+
const iconOfflineStyles = usePreferredColorSchemeStyle(
|
|
138
|
+
styles.iconOffline,
|
|
139
|
+
styles.iconOfflineDark
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
const retryIconStyles = usePreferredColorSchemeStyle(
|
|
143
|
+
styles.retryIcon,
|
|
144
|
+
styles.retryIconDark
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
const iconRetryStyles = usePreferredColorSchemeStyle(
|
|
148
|
+
styles.iconRetry,
|
|
149
|
+
styles.iconRetryDark
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
const retryContainerStyles = usePreferredColorSchemeStyle(
|
|
153
|
+
styles.retryContainer,
|
|
154
|
+
styles.retryContainerDark
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
const uploadFailedTextStyles = usePreferredColorSchemeStyle(
|
|
158
|
+
styles.uploadFailedText,
|
|
159
|
+
styles.uploadFailedTextDark
|
|
160
|
+
);
|
|
161
|
+
|
|
133
162
|
const placeholderStyles = [
|
|
134
163
|
usePreferredColorSchemeStyle(
|
|
135
164
|
styles.imageContainerUpload,
|
|
@@ -216,9 +245,11 @@ const ImageComponent = ( {
|
|
|
216
245
|
>
|
|
217
246
|
{ isSelected &&
|
|
218
247
|
highlightSelected &&
|
|
219
|
-
! (
|
|
220
|
-
|
|
221
|
-
|
|
248
|
+
! (
|
|
249
|
+
isUploadInProgress ||
|
|
250
|
+
isUploadFailed ||
|
|
251
|
+
isUploadPaused
|
|
252
|
+
) && <View style={ imageSelectedStyles } /> }
|
|
222
253
|
|
|
223
254
|
{ ! imageData ? (
|
|
224
255
|
<View style={ placeholderStyles }>
|
|
@@ -239,22 +270,24 @@ const ImageComponent = ( {
|
|
|
239
270
|
</View>
|
|
240
271
|
) }
|
|
241
272
|
|
|
242
|
-
{ isUploadFailed && retryMessage && (
|
|
273
|
+
{ ( isUploadFailed || isUploadPaused ) && retryMessage && (
|
|
243
274
|
<View
|
|
244
275
|
style={ [
|
|
245
276
|
styles.imageContainer,
|
|
246
|
-
|
|
277
|
+
retryContainerStyles,
|
|
247
278
|
] }
|
|
248
279
|
>
|
|
249
280
|
<View
|
|
250
281
|
style={ [
|
|
251
|
-
|
|
282
|
+
retryIconStyles,
|
|
252
283
|
retryIcon && styles.customRetryIcon,
|
|
253
284
|
] }
|
|
254
285
|
>
|
|
255
|
-
{
|
|
286
|
+
{ isUploadPaused
|
|
287
|
+
? getIcon( ICON_TYPE.OFFLINE )
|
|
288
|
+
: getIcon( ICON_TYPE.RETRY ) }
|
|
256
289
|
</View>
|
|
257
|
-
<Text style={
|
|
290
|
+
<Text style={ uploadFailedTextStyles }>
|
|
258
291
|
{ retryMessage }
|
|
259
292
|
</Text>
|
|
260
293
|
</View>
|
|
@@ -265,7 +298,11 @@ const ImageComponent = ( {
|
|
|
265
298
|
<ImageEditingButton
|
|
266
299
|
onSelectMediaUploadOption={ onSelectMediaUploadOption }
|
|
267
300
|
openMediaOptions={ openMediaOptions }
|
|
268
|
-
url={
|
|
301
|
+
url={
|
|
302
|
+
! ( isUploadFailed || isUploadPaused ) &&
|
|
303
|
+
imageData &&
|
|
304
|
+
url
|
|
305
|
+
}
|
|
269
306
|
pickerOptions={ mediaPickerOptions }
|
|
270
307
|
/>
|
|
271
308
|
) }
|
|
@@ -21,10 +21,23 @@
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.retryIcon {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
background-color: $black;
|
|
25
|
+
border-radius: 200px;
|
|
26
|
+
padding: 8px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.retryIconDark {
|
|
30
|
+
background-color: $white;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.iconOffline {
|
|
34
|
+
fill: $white;
|
|
35
|
+
width: 24px;
|
|
36
|
+
height: 24px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.iconOfflineDark {
|
|
40
|
+
fill: $black;
|
|
28
41
|
}
|
|
29
42
|
|
|
30
43
|
.customRetryIcon {
|
|
@@ -33,9 +46,13 @@
|
|
|
33
46
|
}
|
|
34
47
|
|
|
35
48
|
.iconRetry {
|
|
36
|
-
fill:
|
|
37
|
-
width:
|
|
38
|
-
height:
|
|
49
|
+
fill: $white;
|
|
50
|
+
width: 24px;
|
|
51
|
+
height: 24px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.iconRetryDark {
|
|
55
|
+
fill: $black;
|
|
39
56
|
}
|
|
40
57
|
|
|
41
58
|
.iconPlaceholder {
|
|
@@ -90,12 +107,17 @@
|
|
|
90
107
|
}
|
|
91
108
|
|
|
92
109
|
.uploadFailedText {
|
|
93
|
-
color:
|
|
110
|
+
color: $black;
|
|
111
|
+
font-weight: bold;
|
|
94
112
|
font-size: 14;
|
|
95
113
|
margin-top: 5;
|
|
96
114
|
text-align: center;
|
|
97
115
|
}
|
|
98
116
|
|
|
117
|
+
.uploadFailedTextDark {
|
|
118
|
+
color: $white;
|
|
119
|
+
}
|
|
120
|
+
|
|
99
121
|
.editContainer {
|
|
100
122
|
width: 44px;
|
|
101
123
|
height: 44px;
|
|
@@ -116,7 +138,7 @@
|
|
|
116
138
|
}
|
|
117
139
|
|
|
118
140
|
.iconCustomise {
|
|
119
|
-
fill:
|
|
141
|
+
fill: $white;
|
|
120
142
|
position: absolute;
|
|
121
143
|
top: 7px;
|
|
122
144
|
left: 7px;
|
|
@@ -124,6 +146,10 @@
|
|
|
124
146
|
|
|
125
147
|
.retryContainer {
|
|
126
148
|
flex: 1;
|
|
149
|
+
background-color: "rgba(255, 255, 255, 0.8)";
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.retryContainerDark {
|
|
127
153
|
background-color: "rgba(0, 0, 0, 0.5)";
|
|
128
154
|
}
|
|
129
155
|
|
|
@@ -2,26 +2,71 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { FlatList } from 'react-native';
|
|
5
|
-
import Animated
|
|
5
|
+
import Animated from 'react-native-reanimated';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import {
|
|
11
|
+
forwardRef,
|
|
12
|
+
useCallback,
|
|
13
|
+
useImperativeHandle,
|
|
14
|
+
} from '@wordpress/element';
|
|
6
15
|
|
|
7
16
|
/**
|
|
8
17
|
* Internal dependencies
|
|
9
18
|
*/
|
|
19
|
+
import useScroll from './use-scroll';
|
|
10
20
|
import KeyboardAvoidingView from '../keyboard-avoiding-view';
|
|
11
21
|
|
|
12
22
|
const AnimatedFlatList = Animated.createAnimatedComponent( FlatList );
|
|
13
23
|
|
|
14
|
-
export const KeyboardAwareFlatList = ( {
|
|
15
|
-
const
|
|
24
|
+
export const KeyboardAwareFlatList = ( { onScroll, ...props }, ref ) => {
|
|
25
|
+
const { extraScrollHeight, scrollEnabled, shouldPreventAutomaticScroll } =
|
|
26
|
+
props;
|
|
27
|
+
|
|
28
|
+
const {
|
|
29
|
+
scrollViewRef,
|
|
30
|
+
scrollHandler,
|
|
31
|
+
scrollToSection,
|
|
32
|
+
scrollToElement,
|
|
33
|
+
onContentSizeChange,
|
|
34
|
+
lastScrollTo,
|
|
35
|
+
} = useScroll( {
|
|
36
|
+
scrollEnabled,
|
|
37
|
+
shouldPreventAutomaticScroll,
|
|
38
|
+
extraScrollHeight,
|
|
39
|
+
onScroll,
|
|
40
|
+
} );
|
|
41
|
+
|
|
42
|
+
const getFlatListRef = useCallback(
|
|
43
|
+
( flatListRef ) => {
|
|
44
|
+
// On Android, we get the ref of the associated scroll
|
|
45
|
+
// view to the FlatList.
|
|
46
|
+
scrollViewRef.current = flatListRef?.getNativeScrollRef();
|
|
47
|
+
},
|
|
48
|
+
[ scrollViewRef ]
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
useImperativeHandle( ref, () => {
|
|
52
|
+
return {
|
|
53
|
+
scrollViewRef: scrollViewRef.current,
|
|
54
|
+
scrollToSection,
|
|
55
|
+
scrollToElement,
|
|
56
|
+
lastScrollTo,
|
|
57
|
+
};
|
|
58
|
+
} );
|
|
59
|
+
|
|
16
60
|
return (
|
|
17
61
|
<KeyboardAvoidingView style={ { flex: 1 } }>
|
|
18
62
|
<AnimatedFlatList
|
|
19
|
-
ref={
|
|
63
|
+
ref={ getFlatListRef }
|
|
20
64
|
onScroll={ scrollHandler }
|
|
65
|
+
onContentSizeChange={ onContentSizeChange }
|
|
21
66
|
{ ...props }
|
|
22
67
|
/>
|
|
23
68
|
</KeyboardAvoidingView>
|
|
24
69
|
);
|
|
25
70
|
};
|
|
26
71
|
|
|
27
|
-
export default KeyboardAwareFlatList;
|
|
72
|
+
export default forwardRef( KeyboardAwareFlatList );
|
|
@@ -2,139 +2,104 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import { ScrollView, FlatList
|
|
6
|
-
import Animated
|
|
7
|
-
useAnimatedScrollHandler,
|
|
8
|
-
useSharedValue,
|
|
9
|
-
} from 'react-native-reanimated';
|
|
5
|
+
import { ScrollView, FlatList } from 'react-native';
|
|
6
|
+
import Animated from 'react-native-reanimated';
|
|
10
7
|
|
|
11
8
|
/**
|
|
12
9
|
* WordPress dependencies
|
|
13
10
|
*/
|
|
14
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
useCallback,
|
|
13
|
+
useEffect,
|
|
14
|
+
forwardRef,
|
|
15
|
+
useImperativeHandle,
|
|
16
|
+
} from '@wordpress/element';
|
|
15
17
|
import { useThrottle } from '@wordpress/compose';
|
|
16
18
|
|
|
17
19
|
/**
|
|
18
20
|
* Internal dependencies
|
|
19
21
|
*/
|
|
22
|
+
import useScroll from './use-scroll';
|
|
20
23
|
import useTextInputOffset from './use-text-input-offset';
|
|
21
|
-
import useKeyboardOffset from './use-keyboard-offset';
|
|
22
|
-
import useScrollToTextInput from './use-scroll-to-text-input';
|
|
23
24
|
import useTextInputCaretPosition from './use-text-input-caret-position';
|
|
24
25
|
|
|
26
|
+
const DEFAULT_FONT_SIZE = 16;
|
|
25
27
|
const AnimatedScrollView = Animated.createAnimatedComponent( ScrollView );
|
|
26
28
|
|
|
29
|
+
/** @typedef {import('@wordpress/element').RefObject} RefObject */
|
|
27
30
|
/**
|
|
28
31
|
* React component that provides a FlatList that is aware of the keyboard state and can scroll
|
|
29
32
|
* to the currently focused TextInput.
|
|
30
33
|
*
|
|
31
|
-
* @param {Object}
|
|
32
|
-
* @param {number}
|
|
33
|
-
* @param {Function}
|
|
34
|
-
* @param {
|
|
35
|
-
* @param {
|
|
36
|
-
* @param {
|
|
37
|
-
* @param {
|
|
38
|
-
* @param {
|
|
34
|
+
* @param {Object} props Component props.
|
|
35
|
+
* @param {number} props.extraScrollHeight Extra scroll height for the content.
|
|
36
|
+
* @param {Function} props.onScroll Function to be called when the list is scrolled.
|
|
37
|
+
* @param {boolean} props.scrollEnabled Whether the list can be scrolled.
|
|
38
|
+
* @param {Object} props.scrollViewStyle Additional style for the ScrollView component.
|
|
39
|
+
* @param {boolean} props.shouldPreventAutomaticScroll Whether to prevent scrolling when there's a Keyboard offset set.
|
|
40
|
+
* @param {Object} props... Other props to pass to the FlatList component.
|
|
41
|
+
* @param {RefObject} ref
|
|
39
42
|
* @return {Component} KeyboardAwareFlatList component.
|
|
40
43
|
*/
|
|
41
|
-
export const KeyboardAwareFlatList = (
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
scrollEnabled,
|
|
46
|
-
scrollViewStyle,
|
|
47
|
-
shouldPreventAutomaticScroll,
|
|
48
|
-
...props
|
|
49
|
-
} ) => {
|
|
50
|
-
const scrollViewRef = useRef();
|
|
51
|
-
const scrollViewMeasurements = useRef();
|
|
52
|
-
const scrollViewYOffset = useSharedValue( -1 );
|
|
53
|
-
|
|
54
|
-
const { height: windowHeight, width: windowWidth } = useWindowDimensions();
|
|
55
|
-
const isLandscape = windowWidth >= windowHeight;
|
|
56
|
-
|
|
57
|
-
const [ keyboardOffset ] = useKeyboardOffset(
|
|
44
|
+
export const KeyboardAwareFlatList = (
|
|
45
|
+
{
|
|
46
|
+
extraScrollHeight,
|
|
47
|
+
onScroll,
|
|
58
48
|
scrollEnabled,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
scrollViewStyle,
|
|
50
|
+
shouldPreventAutomaticScroll,
|
|
51
|
+
...props
|
|
52
|
+
},
|
|
53
|
+
ref
|
|
54
|
+
) => {
|
|
55
|
+
const {
|
|
56
|
+
scrollViewRef,
|
|
57
|
+
scrollHandler,
|
|
58
|
+
keyboardOffset,
|
|
59
|
+
scrollToSection,
|
|
60
|
+
scrollToElement,
|
|
61
|
+
onContentSizeChange,
|
|
62
|
+
lastScrollTo,
|
|
63
|
+
} = useScroll( {
|
|
64
|
+
scrollEnabled,
|
|
65
|
+
shouldPreventAutomaticScroll,
|
|
66
|
+
extraScrollHeight,
|
|
67
|
+
onScroll,
|
|
68
|
+
onSizeChange,
|
|
69
|
+
} );
|
|
63
70
|
|
|
64
71
|
const [ getTextInputOffset ] = useTextInputOffset(
|
|
65
72
|
scrollEnabled,
|
|
66
73
|
scrollViewRef
|
|
67
74
|
);
|
|
68
75
|
|
|
69
|
-
const [ scrollToTextInputOffset ] = useScrollToTextInput(
|
|
70
|
-
extraScrollHeight,
|
|
71
|
-
keyboardOffset,
|
|
72
|
-
scrollEnabled,
|
|
73
|
-
scrollViewMeasurements,
|
|
74
|
-
scrollViewRef,
|
|
75
|
-
scrollViewYOffset
|
|
76
|
-
);
|
|
77
|
-
|
|
78
76
|
const onScrollToTextInput = useThrottle(
|
|
79
77
|
useCallback(
|
|
80
78
|
async ( caret ) => {
|
|
79
|
+
const { caretHeight = DEFAULT_FONT_SIZE } = caret ?? {};
|
|
81
80
|
const textInputOffset = await getTextInputOffset( caret );
|
|
82
81
|
const hasTextInputOffset = textInputOffset !== null;
|
|
83
82
|
|
|
84
83
|
if ( hasTextInputOffset ) {
|
|
85
|
-
|
|
84
|
+
scrollToSection( textInputOffset, caretHeight );
|
|
86
85
|
}
|
|
87
86
|
},
|
|
88
|
-
[ getTextInputOffset,
|
|
87
|
+
[ getTextInputOffset, scrollToSection ]
|
|
89
88
|
),
|
|
90
89
|
200,
|
|
91
90
|
{ leading: false }
|
|
92
91
|
);
|
|
93
92
|
|
|
94
|
-
|
|
95
|
-
onScrollToTextInput( currentCaretData );
|
|
96
|
-
}, [ currentCaretData, onScrollToTextInput ] );
|
|
97
|
-
|
|
98
|
-
// When the orientation changes, the ScrollView measurements
|
|
99
|
-
// need to be re-calculated.
|
|
100
|
-
useEffect( () => {
|
|
101
|
-
scrollViewMeasurements.current = null;
|
|
102
|
-
}, [ isLandscape ] );
|
|
103
|
-
|
|
104
|
-
const scrollHandler = useAnimatedScrollHandler( {
|
|
105
|
-
onScroll: ( event ) => {
|
|
106
|
-
const { contentOffset } = event;
|
|
107
|
-
scrollViewYOffset.value = contentOffset.y;
|
|
108
|
-
onScroll( event );
|
|
109
|
-
},
|
|
110
|
-
} );
|
|
111
|
-
|
|
112
|
-
const measureScrollView = useCallback( () => {
|
|
113
|
-
if ( scrollViewRef.current ) {
|
|
114
|
-
const scrollRef = scrollViewRef.current.getNativeScrollRef();
|
|
93
|
+
const [ currentCaretData ] = useTextInputCaretPosition( scrollEnabled );
|
|
115
94
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}, [] );
|
|
95
|
+
const onSizeChange = useCallback(
|
|
96
|
+
() => onScrollToTextInput( currentCaretData ),
|
|
97
|
+
[ currentCaretData, onScrollToTextInput ]
|
|
98
|
+
);
|
|
121
99
|
|
|
122
|
-
|
|
100
|
+
useEffect( () => {
|
|
123
101
|
onScrollToTextInput( currentCaretData );
|
|
124
|
-
|
|
125
|
-
// Sets the first values when the content size changes.
|
|
126
|
-
if ( ! scrollViewMeasurements.current ) {
|
|
127
|
-
measureScrollView();
|
|
128
|
-
}
|
|
129
|
-
}, [ measureScrollView, onScrollToTextInput, currentCaretData ] );
|
|
130
|
-
|
|
131
|
-
const getRef = useCallback(
|
|
132
|
-
( ref ) => {
|
|
133
|
-
scrollViewRef.current = ref;
|
|
134
|
-
innerRef( ref );
|
|
135
|
-
},
|
|
136
|
-
[ innerRef ]
|
|
137
|
-
);
|
|
102
|
+
}, [ currentCaretData, onScrollToTextInput ] );
|
|
138
103
|
|
|
139
104
|
// Adds content insets when the keyboard is opened to have
|
|
140
105
|
// extra padding at the bottom.
|
|
@@ -142,6 +107,15 @@ export const KeyboardAwareFlatList = ( {
|
|
|
142
107
|
|
|
143
108
|
const style = [ { flex: 1 }, scrollViewStyle ];
|
|
144
109
|
|
|
110
|
+
useImperativeHandle( ref, () => {
|
|
111
|
+
return {
|
|
112
|
+
scrollViewRef: scrollViewRef.current,
|
|
113
|
+
scrollToSection,
|
|
114
|
+
scrollToElement,
|
|
115
|
+
lastScrollTo,
|
|
116
|
+
};
|
|
117
|
+
} );
|
|
118
|
+
|
|
145
119
|
return (
|
|
146
120
|
<AnimatedScrollView
|
|
147
121
|
automaticallyAdjustContentInsets={ false }
|
|
@@ -149,7 +123,7 @@ export const KeyboardAwareFlatList = ( {
|
|
|
149
123
|
keyboardShouldPersistTaps="handled"
|
|
150
124
|
onContentSizeChange={ onContentSizeChange }
|
|
151
125
|
onScroll={ scrollHandler }
|
|
152
|
-
ref={
|
|
126
|
+
ref={ scrollViewRef }
|
|
153
127
|
scrollEnabled={ scrollEnabled }
|
|
154
128
|
scrollEventThrottle={ 16 }
|
|
155
129
|
style={ style }
|
|
@@ -159,4 +133,4 @@ export const KeyboardAwareFlatList = ( {
|
|
|
159
133
|
);
|
|
160
134
|
};
|
|
161
135
|
|
|
162
|
-
export default KeyboardAwareFlatList;
|
|
136
|
+
export default forwardRef( KeyboardAwareFlatList );
|
|
@@ -7,22 +7,23 @@ import { renderHook } from '@testing-library/react-native';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import useScrollToSection from '../use-scroll-to-section';
|
|
11
11
|
|
|
12
|
-
describe( '
|
|
13
|
-
it( 'scrolls up to the
|
|
12
|
+
describe( 'useScrollToSection', () => {
|
|
13
|
+
it( 'scrolls up to the section', () => {
|
|
14
14
|
// Arrange
|
|
15
|
-
const
|
|
15
|
+
const sectionY = 50;
|
|
16
|
+
const sectionHeight = 10;
|
|
17
|
+
|
|
16
18
|
const extraScrollHeight = 50;
|
|
17
19
|
const keyboardOffset = 100;
|
|
18
20
|
const scrollEnabled = true;
|
|
19
21
|
const scrollViewRef = { current: { scrollTo: jest.fn() } };
|
|
20
22
|
const scrollViewMeasurements = { current: { height: 600 } };
|
|
21
23
|
const scrollViewYOffset = { value: 150 };
|
|
22
|
-
const textInputOffset = 50;
|
|
23
24
|
|
|
24
25
|
const { result } = renderHook( () =>
|
|
25
|
-
|
|
26
|
+
useScrollToSection(
|
|
26
27
|
extraScrollHeight,
|
|
27
28
|
keyboardOffset,
|
|
28
29
|
scrollEnabled,
|
|
@@ -33,28 +34,29 @@ describe( 'useScrollToTextInput', () => {
|
|
|
33
34
|
);
|
|
34
35
|
|
|
35
36
|
// Act
|
|
36
|
-
result.current[ 0 ](
|
|
37
|
+
result.current[ 0 ]( sectionY, sectionHeight );
|
|
37
38
|
|
|
38
39
|
// Assert
|
|
39
40
|
expect( scrollViewRef.current.scrollTo ).toHaveBeenCalledWith( {
|
|
40
|
-
y:
|
|
41
|
+
y: sectionY,
|
|
41
42
|
animated: true,
|
|
42
43
|
} );
|
|
43
44
|
} );
|
|
44
45
|
|
|
45
|
-
it( 'scrolls down to the
|
|
46
|
+
it( 'scrolls down to the section', () => {
|
|
46
47
|
// Arrange
|
|
47
|
-
const
|
|
48
|
+
const sectionY = 750;
|
|
49
|
+
const sectionHeight = 10;
|
|
50
|
+
|
|
48
51
|
const extraScrollHeight = 50;
|
|
49
52
|
const keyboardOffset = 100;
|
|
50
53
|
const scrollEnabled = true;
|
|
51
54
|
const scrollViewRef = { current: { scrollTo: jest.fn() } };
|
|
52
55
|
const scrollViewMeasurements = { current: { height: 600 } };
|
|
53
56
|
const scrollViewYOffset = { value: 250 };
|
|
54
|
-
const textInputOffset = 750;
|
|
55
57
|
|
|
56
58
|
const { result } = renderHook( () =>
|
|
57
|
-
|
|
59
|
+
useScrollToSection(
|
|
58
60
|
extraScrollHeight,
|
|
59
61
|
keyboardOffset,
|
|
60
62
|
scrollEnabled,
|
|
@@ -65,15 +67,13 @@ describe( 'useScrollToTextInput', () => {
|
|
|
65
67
|
);
|
|
66
68
|
|
|
67
69
|
// Act
|
|
68
|
-
result.current[ 0 ](
|
|
70
|
+
result.current[ 0 ]( sectionY, sectionHeight );
|
|
69
71
|
|
|
70
72
|
// Assert
|
|
71
73
|
const expectedYOffset =
|
|
72
|
-
|
|
74
|
+
sectionY -
|
|
73
75
|
( scrollViewMeasurements.current.height -
|
|
74
|
-
( keyboardOffset +
|
|
75
|
-
extraScrollHeight +
|
|
76
|
-
currentCaretData.caretHeight ) );
|
|
76
|
+
( keyboardOffset + extraScrollHeight + sectionHeight ) );
|
|
77
77
|
expect( scrollViewRef.current.scrollTo ).toHaveBeenCalledWith( {
|
|
78
78
|
y: expectedYOffset,
|
|
79
79
|
animated: true,
|
|
@@ -82,17 +82,18 @@ describe( 'useScrollToTextInput', () => {
|
|
|
82
82
|
|
|
83
83
|
it( 'does not scroll when the ScrollView ref is not available', () => {
|
|
84
84
|
// Arrange
|
|
85
|
-
const
|
|
85
|
+
const sectionY = 50;
|
|
86
|
+
const sectionHeight = 10;
|
|
87
|
+
|
|
86
88
|
const extraScrollHeight = 50;
|
|
87
89
|
const keyboardOffset = 100;
|
|
88
90
|
const scrollEnabled = true;
|
|
89
91
|
const scrollViewRef = { current: null };
|
|
90
92
|
const scrollViewMeasurements = { current: { height: 600 } };
|
|
91
93
|
const scrollViewYOffset = { value: 0 };
|
|
92
|
-
const textInputOffset = 50;
|
|
93
94
|
|
|
94
95
|
const { result } = renderHook( () =>
|
|
95
|
-
|
|
96
|
+
useScrollToSection(
|
|
96
97
|
extraScrollHeight,
|
|
97
98
|
keyboardOffset,
|
|
98
99
|
scrollEnabled,
|
|
@@ -103,7 +104,7 @@ describe( 'useScrollToTextInput', () => {
|
|
|
103
104
|
);
|
|
104
105
|
|
|
105
106
|
// Act
|
|
106
|
-
result.current[ 0 ](
|
|
107
|
+
result.current[ 0 ]( sectionY, sectionHeight );
|
|
107
108
|
|
|
108
109
|
// Assert
|
|
109
110
|
expect( scrollViewRef.current ).toBeNull();
|
|
@@ -111,17 +112,18 @@ describe( 'useScrollToTextInput', () => {
|
|
|
111
112
|
|
|
112
113
|
it( 'does not scroll when the scroll is not enabled', () => {
|
|
113
114
|
// Arrange
|
|
114
|
-
const
|
|
115
|
+
const sectionY = 50;
|
|
116
|
+
const sectionHeight = 10;
|
|
117
|
+
|
|
115
118
|
const extraScrollHeight = 50;
|
|
116
119
|
const keyboardOffset = 100;
|
|
117
120
|
const scrollEnabled = false;
|
|
118
121
|
const scrollViewRef = { current: { scrollTo: jest.fn() } };
|
|
119
122
|
const scrollViewMeasurements = { current: { height: 600 } };
|
|
120
123
|
const scrollViewYOffset = { value: 0 };
|
|
121
|
-
const textInputOffset = 50;
|
|
122
124
|
|
|
123
125
|
const { result } = renderHook( () =>
|
|
124
|
-
|
|
126
|
+
useScrollToSection(
|
|
125
127
|
extraScrollHeight,
|
|
126
128
|
keyboardOffset,
|
|
127
129
|
scrollEnabled,
|
|
@@ -132,7 +134,7 @@ describe( 'useScrollToTextInput', () => {
|
|
|
132
134
|
);
|
|
133
135
|
|
|
134
136
|
// Act
|
|
135
|
-
result.current[ 0 ](
|
|
137
|
+
result.current[ 0 ]( sectionY, sectionHeight );
|
|
136
138
|
|
|
137
139
|
// Assert
|
|
138
140
|
expect( scrollViewRef.current.scrollTo ).not.toHaveBeenCalled();
|