@wordpress/components 21.1.0 → 21.1.2-next.4d3b314fd5.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.
Files changed (168) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/draggable/index.js +3 -6
  3. package/build/draggable/index.js.map +1 -1
  4. package/build/index.js +6 -0
  5. package/build/index.js.map +1 -1
  6. package/build/menu-item/index.js +4 -3
  7. package/build/menu-item/index.js.map +1 -1
  8. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +10 -3
  9. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  10. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +12 -3
  11. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  12. package/build/mobile/bottom-sheet/sub-sheet/index.native.js +4 -1
  13. package/build/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
  14. package/build/mobile/color-settings/index.native.js +3 -1
  15. package/build/mobile/color-settings/index.native.js.map +1 -1
  16. package/build/mobile/color-settings/picker-screen.native.js +3 -1
  17. package/build/mobile/color-settings/picker-screen.native.js.map +1 -1
  18. package/build/mobile/image/index.native.js +3 -1
  19. package/build/mobile/image/index.native.js.map +1 -1
  20. package/build/mobile/keyboard-avoiding-view/index.ios.js +3 -1
  21. package/build/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
  22. package/build/mobile/link-picker/index.native.js +3 -1
  23. package/build/mobile/link-picker/index.native.js.map +1 -1
  24. package/build/mobile/link-picker/link-picker-results.native.js +3 -1
  25. package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
  26. package/build/mobile/link-picker/link-picker-screen.native.js +3 -1
  27. package/build/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  28. package/build/mobile/link-settings/index.native.js +24 -6
  29. package/build/mobile/link-settings/index.native.js.map +1 -1
  30. package/build/mobile/link-settings/link-settings-screen.native.js +3 -1
  31. package/build/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  32. package/build/mobile/segmented-control/index.native.js +6 -2
  33. package/build/mobile/segmented-control/index.native.js.map +1 -1
  34. package/build/mobile/utils/use-unit-converter-to-mobile.native.js +6 -2
  35. package/build/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  36. package/build/notice/index.native.js +15 -19
  37. package/build/notice/index.native.js.map +1 -1
  38. package/build/notice/list.native.js +2 -3
  39. package/build/notice/list.native.js.map +1 -1
  40. package/build/palette-edit/index.js +1 -1
  41. package/build/palette-edit/index.js.map +1 -1
  42. package/build/popover/index.js +29 -32
  43. package/build/popover/index.js.map +1 -1
  44. package/build/popover/limit-shift.js +145 -0
  45. package/build/popover/limit-shift.js.map +1 -0
  46. package/build/popover/utils.js +55 -15
  47. package/build/popover/utils.js.map +1 -1
  48. package/build/tools-panel/styles.js +27 -12
  49. package/build/tools-panel/styles.js.map +1 -1
  50. package/build/tools-panel/tools-panel-header/component.js +19 -6
  51. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  52. package/build/tools-panel/tools-panel-header/hook.js +4 -0
  53. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  54. package/build-module/draggable/index.js +2 -5
  55. package/build-module/draggable/index.js.map +1 -1
  56. package/build-module/index.js +1 -1
  57. package/build-module/index.js.map +1 -1
  58. package/build-module/menu-item/index.js +4 -3
  59. package/build-module/menu-item/index.js.map +1 -1
  60. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +10 -3
  61. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  62. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +12 -3
  63. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  64. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js +4 -1
  65. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
  66. package/build-module/mobile/color-settings/index.native.js +3 -1
  67. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  68. package/build-module/mobile/color-settings/picker-screen.native.js +3 -1
  69. package/build-module/mobile/color-settings/picker-screen.native.js.map +1 -1
  70. package/build-module/mobile/image/index.native.js +3 -1
  71. package/build-module/mobile/image/index.native.js.map +1 -1
  72. package/build-module/mobile/keyboard-avoiding-view/index.ios.js +3 -1
  73. package/build-module/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
  74. package/build-module/mobile/link-picker/index.native.js +3 -1
  75. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  76. package/build-module/mobile/link-picker/link-picker-results.native.js +3 -1
  77. package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
  78. package/build-module/mobile/link-picker/link-picker-screen.native.js +3 -1
  79. package/build-module/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  80. package/build-module/mobile/link-settings/index.native.js +24 -6
  81. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  82. package/build-module/mobile/link-settings/link-settings-screen.native.js +3 -1
  83. package/build-module/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  84. package/build-module/mobile/segmented-control/index.native.js +6 -2
  85. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  86. package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js +6 -2
  87. package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  88. package/build-module/notice/index.native.js +16 -21
  89. package/build-module/notice/index.native.js.map +1 -1
  90. package/build-module/notice/list.native.js +3 -3
  91. package/build-module/notice/list.native.js.map +1 -1
  92. package/build-module/palette-edit/index.js +1 -1
  93. package/build-module/palette-edit/index.js.map +1 -1
  94. package/build-module/popover/index.js +31 -35
  95. package/build-module/popover/index.js.map +1 -1
  96. package/build-module/popover/limit-shift.js +136 -0
  97. package/build-module/popover/limit-shift.js.map +1 -0
  98. package/build-module/popover/utils.js +55 -15
  99. package/build-module/popover/utils.js.map +1 -1
  100. package/build-module/tools-panel/styles.js +23 -12
  101. package/build-module/tools-panel/styles.js.map +1 -1
  102. package/build-module/tools-panel/tools-panel-header/component.js +19 -7
  103. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  104. package/build-module/tools-panel/tools-panel-header/hook.js +4 -0
  105. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  106. package/build-style/style-rtl.css +13 -2
  107. package/build-style/style.css +13 -2
  108. package/build-types/draggable/index.d.ts.map +1 -1
  109. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  110. package/build-types/focal-point-picker/styles/focal-point-style.d.ts +3 -3
  111. package/build-types/menu-item/index.d.ts.map +1 -1
  112. package/build-types/popover/index.d.ts.map +1 -1
  113. package/build-types/popover/limit-shift.d.ts +87 -0
  114. package/build-types/popover/limit-shift.d.ts.map +1 -0
  115. package/build-types/popover/test/index.d.ts +2 -0
  116. package/build-types/popover/test/index.d.ts.map +1 -0
  117. package/build-types/popover/types.d.ts +1 -1
  118. package/build-types/popover/types.d.ts.map +1 -1
  119. package/build-types/popover/utils.d.ts.map +1 -1
  120. package/build-types/range-control/types.d.ts +0 -32
  121. package/build-types/range-control/types.d.ts.map +1 -1
  122. package/build-types/spinner/index.d.ts +1 -1
  123. package/build-types/tools-panel/styles.d.ts +6 -0
  124. package/build-types/tools-panel/styles.d.ts.map +1 -1
  125. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  126. package/build-types/tools-panel/tools-panel-header/hook.d.ts +1 -0
  127. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  128. package/build-types/tools-panel/types.d.ts +1 -0
  129. package/build-types/tools-panel/types.d.ts.map +1 -1
  130. package/package.json +17 -17
  131. package/src/draggable/index.js +2 -5
  132. package/src/index.js +1 -1
  133. package/src/menu-item/README.md +7 -0
  134. package/src/menu-item/index.js +11 -5
  135. package/src/menu-item/style.scss +1 -0
  136. package/src/menu-item/test/index.js +36 -0
  137. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +9 -0
  138. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +11 -0
  139. package/src/mobile/bottom-sheet/sub-sheet/index.native.js +3 -0
  140. package/src/mobile/color-settings/index.native.js +3 -0
  141. package/src/mobile/color-settings/picker-screen.native.js +3 -0
  142. package/src/mobile/image/index.native.js +3 -0
  143. package/src/mobile/keyboard-avoiding-view/index.ios.js +3 -0
  144. package/src/mobile/link-picker/index.native.js +3 -0
  145. package/src/mobile/link-picker/link-picker-results.native.js +3 -0
  146. package/src/mobile/link-picker/link-picker-screen.native.js +3 -0
  147. package/src/mobile/link-settings/index.native.js +18 -0
  148. package/src/mobile/link-settings/link-settings-screen.native.js +3 -0
  149. package/src/mobile/segmented-control/index.native.js +6 -0
  150. package/src/mobile/utils/use-unit-converter-to-mobile.native.js +6 -0
  151. package/src/notice/index.native.js +17 -20
  152. package/src/notice/list.native.js +7 -3
  153. package/src/palette-edit/index.js +1 -1
  154. package/src/placeholder/style.scss +1 -1
  155. package/src/popover/index.tsx +26 -42
  156. package/src/popover/limit-shift.ts +205 -0
  157. package/src/popover/test/index.tsx +230 -0
  158. package/src/popover/types.ts +1 -0
  159. package/src/popover/utils.ts +58 -16
  160. package/src/range-control/types.ts +0 -33
  161. package/src/tools-panel/stories/index.js +27 -0
  162. package/src/tools-panel/styles.ts +28 -1
  163. package/src/tools-panel/tools-panel-header/component.tsx +12 -5
  164. package/src/tools-panel/tools-panel-header/hook.ts +5 -0
  165. package/src/tools-panel/types.ts +1 -0
  166. package/tsconfig.tsbuildinfo +1 -1
  167. package/src/popover/test/__snapshots__/index.js.snap +0 -34
  168. package/src/popover/test/index.js +0 -164
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/image/index.native.js"],"names":["Image","RNImage","Text","View","FastImage","__","Icon","image","icon","usePreferredColorSchemeStyle","useEffect","useState","Platform","getImageWithFocalPointStyles","styles","SvgIconRetry","ImageEditingButton","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","IMAGE_DEFAULT_FOCAL_POINT","x","y","ImageComponent","align","alt","editButton","focalPoint","height","imageHeight","highlightSelected","isSelected","shouldUseFastImage","isUploadFailed","isUploadInProgress","mediaPickerOptions","onImageDataLoad","onSelectMediaUploadOption","openMediaOptions","resizeMode","retryMessage","retryIcon","url","shapeStyle","style","width","imageWidth","imageData","setImageData","containerSize","setContainerSize","isAndroid","imageResizeMode","isCurrent","getSize","imgWidth","imgHeight","metaData","aspectRatio","onContainerLayout","event","nativeEvent","layout","getIcon","iconType","iconStyle","iconRetry","iconPlaceholderStyles","iconUploadStyles","iconPlaceholder","iconPlaceholderDark","iconUpload","iconUploadDark","placeholderStyles","imageContainerUpload","imageContainerUploadDark","imageContainerUploadWithFocalpoint","customWidth","wide","imageContainerStyles","imageContent","focalPointContainer","imageStyles","opacity","undefined","container","alignItems","imageBorder","imageUploadingIconContainer","focalPointContent","uri","resizeMethod","imageContainer","retryContainer","customRetryIcon","uploadFailedText"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Image as RNImage, Text, View } from 'react-native';\nimport FastImage from 'react-native-fast-image';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon } from '@wordpress/components';\nimport { image as icon } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useEffect, useState, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getImageWithFocalPointStyles } from './utils';\nimport styles from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport ImageEditingButton from './image-editing-button';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nexport const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };\n\nconst ImageComponent = ( {\n\talign,\n\talt,\n\teditButton = true,\n\tfocalPoint,\n\theight: imageHeight,\n\thighlightSelected = true,\n\tisSelected,\n\tshouldUseFastImage,\n\tisUploadFailed,\n\tisUploadInProgress,\n\tmediaPickerOptions,\n\tonImageDataLoad,\n\tonSelectMediaUploadOption,\n\topenMediaOptions,\n\tresizeMode,\n\tretryMessage,\n\tretryIcon,\n\turl,\n\tshapeStyle,\n\tstyle,\n\twidth: imageWidth,\n} ) => {\n\tconst [ imageData, setImageData ] = useState( null );\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\n\t// Disabled for Android due to https://github.com/WordPress/gutenberg/issues/43149\n\tconst Image =\n\t\t! shouldUseFastImage || Platform.isAndroid ? RNImage : FastImage;\n\tconst imageResizeMode =\n\t\t! shouldUseFastImage || Platform.isAndroid\n\t\t\t? resizeMode\n\t\t\t: FastImage.resizeMode[ resizeMode ];\n\n\tuseEffect( () => {\n\t\tlet isCurrent = true;\n\t\tif ( url ) {\n\t\t\tRNImage.getSize( url, ( imgWidth, imgHeight ) => {\n\t\t\t\tif ( ! isCurrent ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst metaData = {\n\t\t\t\t\taspectRatio: imgWidth / imgHeight,\n\t\t\t\t\twidth: imgWidth,\n\t\t\t\t\theight: imgHeight,\n\t\t\t\t};\n\t\t\t\tsetImageData( metaData );\n\t\t\t\tif ( onImageDataLoad ) {\n\t\t\t\t\tonImageDataLoad( metaData );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => ( isCurrent = false );\n\t}, [ url ] );\n\n\tconst onContainerLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\n\tconst getIcon = ( iconType ) => {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ retryIcon || SvgIconRetry }\n\t\t\t\t\t\t{ ...styles.iconRetry }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = iconPlaceholderStyles;\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = iconUploadStyles;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn <Icon icon={ icon } { ...iconStyle } />;\n\t};\n\n\tconst iconPlaceholderStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconPlaceholder,\n\t\tstyles.iconPlaceholderDark\n\t);\n\n\tconst iconUploadStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconUpload,\n\t\tstyles.iconUploadDark\n\t);\n\n\tconst placeholderStyles = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.imageContainerUpload,\n\t\t\tstyles.imageContainerUploadDark\n\t\t),\n\t\tfocalPoint && styles.imageContainerUploadWithFocalpoint,\n\t\timageHeight && { height: imageHeight },\n\t];\n\n\tconst customWidth =\n\t\timageData?.width < containerSize?.width\n\t\t\t? imageData?.width\n\t\t\t: styles.wide?.width;\n\n\tconst imageContainerStyles = [\n\t\tstyles.imageContent,\n\t\t{\n\t\t\twidth:\n\t\t\t\timageWidth === styles.wide?.width ||\n\t\t\t\t( imageData &&\n\t\t\t\t\timageWidth > 0 &&\n\t\t\t\t\timageWidth < containerSize?.width )\n\t\t\t\t\t? imageWidth\n\t\t\t\t\t: customWidth,\n\t\t},\n\t\tresizeMode && { width: styles.wide?.width },\n\t\tfocalPoint && styles.focalPointContainer,\n\t];\n\n\tconst imageStyles = [\n\t\t{\n\t\t\topacity: isUploadInProgress ? 0.3 : 1,\n\t\t\theight: containerSize?.height,\n\t\t},\n\t\t! resizeMode && {\n\t\t\taspectRatio: imageData?.aspectRatio,\n\t\t},\n\t\tfocalPoint && styles.focalPoint,\n\t\tfocalPoint &&\n\t\t\tgetImageWithFocalPointStyles(\n\t\t\t\tfocalPoint,\n\t\t\t\tcontainerSize,\n\t\t\t\timageData\n\t\t\t),\n\t\t! focalPoint &&\n\t\t\timageData &&\n\t\t\tcontainerSize && {\n\t\t\t\theight:\n\t\t\t\t\timageData?.width > containerSize?.width\n\t\t\t\t\t\t? containerSize?.width / imageData?.aspectRatio\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\timageHeight && { height: imageHeight },\n\t\tshapeStyle,\n\t];\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tstyles.container,\n\t\t\t\t// Only set alignItems if an image exists because alignItems causes the placeholder\n\t\t\t\t// to disappear when an aligned image can't be downloaded\n\t\t\t\t// https://github.com/wordpress-mobile/gutenberg-mobile/issues/1592\n\t\t\t\timageData && align && { alignItems: align },\n\t\t\t\tstyle,\n\t\t\t] }\n\t\t\tonLayout={ onContainerLayout }\n\t\t>\n\t\t\t<View\n\t\t\t\taccessible\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ alt }\n\t\t\t\taccessibilityHint={ __( 'Double tap and hold to edit' ) }\n\t\t\t\taccessibilityRole={ 'imagebutton' }\n\t\t\t\tkey={ url }\n\t\t\t\tstyle={ imageContainerStyles }\n\t\t\t>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\thighlightSelected &&\n\t\t\t\t\t! ( isUploadInProgress || isUploadFailed ) && (\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.imageBorder,\n\t\t\t\t\t\t\t\t{ height: containerSize?.height },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t{ ! imageData ? (\n\t\t\t\t\t<View style={ placeholderStyles }>\n\t\t\t\t\t\t<View style={ styles.imageUploadingIconContainer }>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.UPLOAD ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) : (\n\t\t\t\t\t<View style={ focalPoint && styles.focalPointContent }>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t{ ...( ! focalPoint && {\n\t\t\t\t\t\t\t\tresizeMethod: 'scale',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tresizeMode={ imageResizeMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ isUploadFailed && retryMessage && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\tstyles.retryContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.retryIcon,\n\t\t\t\t\t\t\t\tretryIcon && styles.customRetryIcon,\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.RETRY ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<Text style={ styles.uploadFailedText }>\n\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\n\t\t\t{ editButton && isSelected && ! isUploadInProgress && (\n\t\t\t\t<ImageEditingButton\n\t\t\t\t\tonSelectMediaUploadOption={ onSelectMediaUploadOption }\n\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\turl={ ! isUploadFailed && imageData && url }\n\t\t\t\t\tpickerOptions={ mediaPickerOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default ImageComponent;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/image/index.native.js"],"names":["Image","RNImage","Text","View","FastImage","__","Icon","image","icon","usePreferredColorSchemeStyle","useEffect","useState","Platform","getImageWithFocalPointStyles","styles","SvgIconRetry","ImageEditingButton","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","IMAGE_DEFAULT_FOCAL_POINT","x","y","ImageComponent","align","alt","editButton","focalPoint","height","imageHeight","highlightSelected","isSelected","shouldUseFastImage","isUploadFailed","isUploadInProgress","mediaPickerOptions","onImageDataLoad","onSelectMediaUploadOption","openMediaOptions","resizeMode","retryMessage","retryIcon","url","shapeStyle","style","width","imageWidth","imageData","setImageData","containerSize","setContainerSize","isAndroid","imageResizeMode","isCurrent","getSize","imgWidth","imgHeight","metaData","aspectRatio","onContainerLayout","event","nativeEvent","layout","getIcon","iconType","iconStyle","iconRetry","iconPlaceholderStyles","iconUploadStyles","iconPlaceholder","iconPlaceholderDark","iconUpload","iconUploadDark","placeholderStyles","imageContainerUpload","imageContainerUploadDark","imageContainerUploadWithFocalpoint","customWidth","wide","imageContainerStyles","imageContent","focalPointContainer","imageStyles","opacity","undefined","container","alignItems","imageBorder","imageUploadingIconContainer","focalPointContent","uri","resizeMethod","imageContainer","retryContainer","customRetryIcon","uploadFailedText"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,OAAlB,EAA2BC,IAA3B,EAAiCC,IAAjC,QAA6C,cAA7C;AACA,OAAOC,SAAP,MAAsB,yBAAtB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AACA,SAASC,SAAT,EAAoBC,QAApB,EAA8BC,QAA9B,QAA8C,oBAA9C;AAEA;AACA;AACA;;AACA,SAASC,4BAAT,QAA6C,SAA7C;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,YAAP,MAAyB,cAAzB;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AAEA,MAAMC,SAAS,GAAG;AACjBC,EAAAA,WAAW,EAAE,aADI;AAEjBC,EAAAA,KAAK,EAAE,OAFU;AAGjBC,EAAAA,MAAM,EAAE;AAHS,CAAlB;AAMA,OAAO,MAAMC,yBAAyB,GAAG;AAAEC,EAAAA,CAAC,EAAE,GAAL;AAAUC,EAAAA,CAAC,EAAE;AAAb,CAAlC;;AAEP,MAAMC,cAAc,GAAG,QAsBhB;AAAA;;AAAA,MAtBkB;AACxBC,IAAAA,KADwB;AAExBC,IAAAA,GAFwB;AAGxBC,IAAAA,UAAU,GAAG,IAHW;AAIxBC,IAAAA,UAJwB;AAKxBC,IAAAA,MAAM,EAAEC,WALgB;AAMxBC,IAAAA,iBAAiB,GAAG,IANI;AAOxBC,IAAAA,UAPwB;AAQxBC,IAAAA,kBARwB;AASxBC,IAAAA,cATwB;AAUxBC,IAAAA,kBAVwB;AAWxBC,IAAAA,kBAXwB;AAYxBC,IAAAA,eAZwB;AAaxBC,IAAAA,yBAbwB;AAcxBC,IAAAA,gBAdwB;AAexBC,IAAAA,UAfwB;AAgBxBC,IAAAA,YAhBwB;AAiBxBC,IAAAA,SAjBwB;AAkBxBC,IAAAA,GAlBwB;AAmBxBC,IAAAA,UAnBwB;AAoBxBC,IAAAA,KApBwB;AAqBxBC,IAAAA,KAAK,EAAEC;AArBiB,GAsBlB;AACN,QAAM,CAAEC,SAAF,EAAaC,YAAb,IAA8BtC,QAAQ,CAAE,IAAF,CAA5C;AACA,QAAM,CAAEuC,aAAF,EAAiBC,gBAAjB,IAAsCxC,QAAQ,CAAE,IAAF,CAApD,CAFM,CAIN;;AACA,QAAMX,KAAK,GACV,CAAEiC,kBAAF,IAAwBrB,QAAQ,CAACwC,SAAjC,GAA6CnD,OAA7C,GAAuDG,SADxD;AAEA,QAAMiD,eAAe,GACpB,CAAEpB,kBAAF,IAAwBrB,QAAQ,CAACwC,SAAjC,GACGZ,UADH,GAEGpC,SAAS,CAACoC,UAAV,CAAsBA,UAAtB,CAHJ;AAKA9B,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAI4C,SAAS,GAAG,IAAhB;;AACA,QAAKX,GAAL,EAAW;AACV1C,MAAAA,OAAO,CAACsD,OAAR,CAAiBZ,GAAjB,EAAsB,CAAEa,QAAF,EAAYC,SAAZ,KAA2B;AAChD,YAAK,CAAEH,SAAP,EAAmB;AAClB;AACA;;AACD,cAAMI,QAAQ,GAAG;AAChBC,UAAAA,WAAW,EAAEH,QAAQ,GAAGC,SADR;AAEhBX,UAAAA,KAAK,EAAEU,QAFS;AAGhB3B,UAAAA,MAAM,EAAE4B;AAHQ,SAAjB;AAKAR,QAAAA,YAAY,CAAES,QAAF,CAAZ;;AACA,YAAKrB,eAAL,EAAuB;AACtBA,UAAAA,eAAe,CAAEqB,QAAF,CAAf;AACA;AACD,OAbD;AAcA;;AACD,WAAO,MAAQJ,SAAS,GAAG,KAA3B,CAlBgB,CAmBhB;AACA;AACA;AACA,GAtBQ,EAsBN,CAAEX,GAAF,CAtBM,CAAT;;AAwBA,QAAMiB,iBAAiB,GAAKC,KAAF,IAAa;AACtC,UAAM;AAAEhC,MAAAA,MAAF;AAAUiB,MAAAA;AAAV,QAAoBe,KAAK,CAACC,WAAN,CAAkBC,MAA5C;;AAEA,QACCjB,KAAK,KAAK,CAAV,IACAjB,MAAM,KAAK,CADX,KAEE,CAAAqB,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEJ,KAAf,MAAyBA,KAAzB,IACD,CAAAI,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAErB,MAAf,MAA0BA,MAH3B,CADD,EAKE;AACDsB,MAAAA,gBAAgB,CAAE;AAAEL,QAAAA,KAAF;AAASjB,QAAAA;AAAT,OAAF,CAAhB;AACA;AACD,GAXD;;AAaA,QAAMmC,OAAO,GAAKC,QAAF,IAAgB;AAC/B,QAAIC,SAAJ;;AACA,YAASD,QAAT;AACC,WAAKhD,SAAS,CAACE,KAAf;AACC,eACC,cAAC,IAAD;AACC,UAAA,IAAI,EAAGuB,SAAS,IAAI3B;AADrB,WAEMD,MAAM,CAACqD,SAFb,EADD;;AAMD,WAAKlD,SAAS,CAACC,WAAf;AACCgD,QAAAA,SAAS,GAAGE,qBAAZ;AACA;;AACD,WAAKnD,SAAS,CAACG,MAAf;AACC8C,QAAAA,SAAS,GAAGG,gBAAZ;AACA;AAbF;;AAeA,WAAO,cAAC,IAAD;AAAM,MAAA,IAAI,EAAG7D;AAAb,OAAyB0D,SAAzB,EAAP;AACA,GAlBD;;AAoBA,QAAME,qBAAqB,GAAG3D,4BAA4B,CACzDK,MAAM,CAACwD,eADkD,EAEzDxD,MAAM,CAACyD,mBAFkD,CAA1D;AAKA,QAAMF,gBAAgB,GAAG5D,4BAA4B,CACpDK,MAAM,CAAC0D,UAD6C,EAEpD1D,MAAM,CAAC2D,cAF6C,CAArD;AAKA,QAAMC,iBAAiB,GAAG,CACzBjE,4BAA4B,CAC3BK,MAAM,CAAC6D,oBADoB,EAE3B7D,MAAM,CAAC8D,wBAFoB,CADH,EAKzBhD,UAAU,IAAId,MAAM,CAAC+D,kCALI,EAMzB/C,WAAW,IAAI;AAAED,IAAAA,MAAM,EAAEC;AAAV,GANU,CAA1B;AASA,QAAMgD,WAAW,GAChB,CAAA9B,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEF,KAAX,KAAmBI,aAAnB,aAAmBA,aAAnB,uBAAmBA,aAAa,CAAEJ,KAAlC,IACGE,SADH,aACGA,SADH,uBACGA,SAAS,CAAEF,KADd,mBAEGhC,MAAM,CAACiE,IAFV,iDAEG,aAAajC,KAHjB;AAKA,QAAMkC,oBAAoB,GAAG,CAC5BlE,MAAM,CAACmE,YADqB,EAE5B;AACCnC,IAAAA,KAAK,EACJC,UAAU,uBAAKjC,MAAM,CAACiE,IAAZ,kDAAK,cAAajC,KAAlB,CAAV,IACEE,SAAS,IACVD,UAAU,GAAG,CADZ,IAEDA,UAAU,IAAGG,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEJ,KAAlB,CAHX,GAIGC,UAJH,GAKG+B;AAPL,GAF4B,EAW5BtC,UAAU,IAAI;AAAEM,IAAAA,KAAK,mBAAEhC,MAAM,CAACiE,IAAT,kDAAE,cAAajC;AAAtB,GAXc,EAY5BlB,UAAU,IAAId,MAAM,CAACoE,mBAZO,CAA7B;AAeA,QAAMC,WAAW,GAAG,CACnB;AACCC,IAAAA,OAAO,EAAEjD,kBAAkB,GAAG,GAAH,GAAS,CADrC;AAECN,IAAAA,MAAM,EAAEqB,aAAF,aAAEA,aAAF,uBAAEA,aAAa,CAAErB;AAFxB,GADmB,EAKnB,CAAEW,UAAF,IAAgB;AACfmB,IAAAA,WAAW,EAAEX,SAAF,aAAEA,SAAF,uBAAEA,SAAS,CAAEW;AADT,GALG,EAQnB/B,UAAU,IAAId,MAAM,CAACc,UARF,EASnBA,UAAU,IACTf,4BAA4B,CAC3Be,UAD2B,EAE3BsB,aAF2B,EAG3BF,SAH2B,CAVV,EAenB,CAAEpB,UAAF,IACCoB,SADD,IAECE,aAFD,IAEkB;AAChBrB,IAAAA,MAAM,EACL,CAAAmB,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEF,KAAX,KAAmBI,aAAnB,aAAmBA,aAAnB,uBAAmBA,aAAa,CAAEJ,KAAlC,IACG,CAAAI,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEJ,KAAf,KAAuBE,SAAvB,aAAuBA,SAAvB,uBAAuBA,SAAS,CAAEW,WAAlC,CADH,GAEG0B;AAJY,GAjBC,EAuBnBvD,WAAW,IAAI;AAAED,IAAAA,MAAM,EAAEC;AAAV,GAvBI,EAwBnBc,UAxBmB,CAApB;AA2BA,SACC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACP9B,MAAM,CAACwE,SADA,EAEP;AACA;AACA;AACAtC,IAAAA,SAAS,IAAIvB,KAAb,IAAsB;AAAE8D,MAAAA,UAAU,EAAE9D;AAAd,KALf,EAMPoB,KANO,CADT;AASC,IAAA,QAAQ,EAAGe;AATZ,KAWC,cAAC,IAAD;AACC,IAAA,UAAU,MADX;AAEC,IAAA,QAAQ,EAAG,CAAE5B,UAFd;AAGC,IAAA,kBAAkB,EAAGN,GAHtB;AAIC,IAAA,iBAAiB,EAAGrB,EAAE,CAAE,6BAAF,CAJvB;AAKC,IAAA,iBAAiB,EAAG,aALrB;AAMC,IAAA,GAAG,EAAGsC,GANP;AAOC,IAAA,KAAK,EAAGqC;AAPT,KASGhD,UAAU,IACXD,iBADC,IAED,EAAII,kBAAkB,IAAID,cAA1B,CAFC,IAGA,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACPpB,MAAM,CAAC0E,WADA,EAEP;AAAE3D,MAAAA,MAAM,EAAEqB,aAAF,aAAEA,aAAF,uBAAEA,aAAa,CAAErB;AAAzB,KAFO;AADT,IAZH,EAoBG,CAAEmB,SAAF,GACD,cAAC,IAAD;AAAM,IAAA,KAAK,EAAG0B;AAAd,KACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAG5D,MAAM,CAAC2E;AAArB,KACGzB,OAAO,CAAE/C,SAAS,CAACG,MAAZ,CADV,CADD,CADC,GAOD,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGQ,UAAU,IAAId,MAAM,CAAC4E;AAAnC,KACC,cAAC,KAAD;AACC,IAAA,KAAK,EAAGP,WADT;AAEC,IAAA,MAAM,EAAG;AAAEQ,MAAAA,GAAG,EAAEhD;AAAP;AAFV,KAGQ,CAAEf,UAAF,IAAgB;AACtBgE,IAAAA,YAAY,EAAE;AADQ,GAHxB;AAMC,IAAA,UAAU,EAAGvC;AANd,KADD,CA3BF,EAuCGnB,cAAc,IAAIO,YAAlB,IACD,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACP3B,MAAM,CAAC+E,cADA,EAEP/E,MAAM,CAACgF,cAFA;AADT,KAMC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACPhF,MAAM,CAAC4B,SADA,EAEPA,SAAS,IAAI5B,MAAM,CAACiF,eAFb;AADT,KAMG/B,OAAO,CAAE/C,SAAS,CAACE,KAAZ,CANV,CAND,EAcC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGL,MAAM,CAACkF;AAArB,KACGvD,YADH,CAdD,CAxCF,CAXD,EAwEGd,UAAU,IAAIK,UAAd,IAA4B,CAAEG,kBAA9B,IACD,cAAC,kBAAD;AACC,IAAA,yBAAyB,EAAGG,yBAD7B;AAEC,IAAA,gBAAgB,EAAGC,gBAFpB;AAGC,IAAA,GAAG,EAAG,CAAEL,cAAF,IAAoBc,SAApB,IAAiCL,GAHxC;AAIC,IAAA,aAAa,EAAGP;AAJjB,IAzEF,CADD;AAmFA,CAhPD;;AAkPA,eAAeZ,cAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Image as RNImage, Text, View } from 'react-native';\nimport FastImage from 'react-native-fast-image';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon } from '@wordpress/components';\nimport { image as icon } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useEffect, useState, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getImageWithFocalPointStyles } from './utils';\nimport styles from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport ImageEditingButton from './image-editing-button';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nexport const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };\n\nconst ImageComponent = ( {\n\talign,\n\talt,\n\teditButton = true,\n\tfocalPoint,\n\theight: imageHeight,\n\thighlightSelected = true,\n\tisSelected,\n\tshouldUseFastImage,\n\tisUploadFailed,\n\tisUploadInProgress,\n\tmediaPickerOptions,\n\tonImageDataLoad,\n\tonSelectMediaUploadOption,\n\topenMediaOptions,\n\tresizeMode,\n\tretryMessage,\n\tretryIcon,\n\turl,\n\tshapeStyle,\n\tstyle,\n\twidth: imageWidth,\n} ) => {\n\tconst [ imageData, setImageData ] = useState( null );\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\n\t// Disabled for Android due to https://github.com/WordPress/gutenberg/issues/43149\n\tconst Image =\n\t\t! shouldUseFastImage || Platform.isAndroid ? RNImage : FastImage;\n\tconst imageResizeMode =\n\t\t! shouldUseFastImage || Platform.isAndroid\n\t\t\t? resizeMode\n\t\t\t: FastImage.resizeMode[ resizeMode ];\n\n\tuseEffect( () => {\n\t\tlet isCurrent = true;\n\t\tif ( url ) {\n\t\t\tRNImage.getSize( url, ( imgWidth, imgHeight ) => {\n\t\t\t\tif ( ! isCurrent ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst metaData = {\n\t\t\t\t\taspectRatio: imgWidth / imgHeight,\n\t\t\t\t\twidth: imgWidth,\n\t\t\t\t\theight: imgHeight,\n\t\t\t\t};\n\t\t\t\tsetImageData( metaData );\n\t\t\t\tif ( onImageDataLoad ) {\n\t\t\t\t\tonImageDataLoad( metaData );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => ( isCurrent = false );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ url ] );\n\n\tconst onContainerLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\n\tconst getIcon = ( iconType ) => {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ retryIcon || SvgIconRetry }\n\t\t\t\t\t\t{ ...styles.iconRetry }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = iconPlaceholderStyles;\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = iconUploadStyles;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn <Icon icon={ icon } { ...iconStyle } />;\n\t};\n\n\tconst iconPlaceholderStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconPlaceholder,\n\t\tstyles.iconPlaceholderDark\n\t);\n\n\tconst iconUploadStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconUpload,\n\t\tstyles.iconUploadDark\n\t);\n\n\tconst placeholderStyles = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.imageContainerUpload,\n\t\t\tstyles.imageContainerUploadDark\n\t\t),\n\t\tfocalPoint && styles.imageContainerUploadWithFocalpoint,\n\t\timageHeight && { height: imageHeight },\n\t];\n\n\tconst customWidth =\n\t\timageData?.width < containerSize?.width\n\t\t\t? imageData?.width\n\t\t\t: styles.wide?.width;\n\n\tconst imageContainerStyles = [\n\t\tstyles.imageContent,\n\t\t{\n\t\t\twidth:\n\t\t\t\timageWidth === styles.wide?.width ||\n\t\t\t\t( imageData &&\n\t\t\t\t\timageWidth > 0 &&\n\t\t\t\t\timageWidth < containerSize?.width )\n\t\t\t\t\t? imageWidth\n\t\t\t\t\t: customWidth,\n\t\t},\n\t\tresizeMode && { width: styles.wide?.width },\n\t\tfocalPoint && styles.focalPointContainer,\n\t];\n\n\tconst imageStyles = [\n\t\t{\n\t\t\topacity: isUploadInProgress ? 0.3 : 1,\n\t\t\theight: containerSize?.height,\n\t\t},\n\t\t! resizeMode && {\n\t\t\taspectRatio: imageData?.aspectRatio,\n\t\t},\n\t\tfocalPoint && styles.focalPoint,\n\t\tfocalPoint &&\n\t\t\tgetImageWithFocalPointStyles(\n\t\t\t\tfocalPoint,\n\t\t\t\tcontainerSize,\n\t\t\t\timageData\n\t\t\t),\n\t\t! focalPoint &&\n\t\t\timageData &&\n\t\t\tcontainerSize && {\n\t\t\t\theight:\n\t\t\t\t\timageData?.width > containerSize?.width\n\t\t\t\t\t\t? containerSize?.width / imageData?.aspectRatio\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\timageHeight && { height: imageHeight },\n\t\tshapeStyle,\n\t];\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tstyles.container,\n\t\t\t\t// Only set alignItems if an image exists because alignItems causes the placeholder\n\t\t\t\t// to disappear when an aligned image can't be downloaded\n\t\t\t\t// https://github.com/wordpress-mobile/gutenberg-mobile/issues/1592\n\t\t\t\timageData && align && { alignItems: align },\n\t\t\t\tstyle,\n\t\t\t] }\n\t\t\tonLayout={ onContainerLayout }\n\t\t>\n\t\t\t<View\n\t\t\t\taccessible\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ alt }\n\t\t\t\taccessibilityHint={ __( 'Double tap and hold to edit' ) }\n\t\t\t\taccessibilityRole={ 'imagebutton' }\n\t\t\t\tkey={ url }\n\t\t\t\tstyle={ imageContainerStyles }\n\t\t\t>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\thighlightSelected &&\n\t\t\t\t\t! ( isUploadInProgress || isUploadFailed ) && (\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.imageBorder,\n\t\t\t\t\t\t\t\t{ height: containerSize?.height },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t{ ! imageData ? (\n\t\t\t\t\t<View style={ placeholderStyles }>\n\t\t\t\t\t\t<View style={ styles.imageUploadingIconContainer }>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.UPLOAD ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) : (\n\t\t\t\t\t<View style={ focalPoint && styles.focalPointContent }>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t{ ...( ! focalPoint && {\n\t\t\t\t\t\t\t\tresizeMethod: 'scale',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tresizeMode={ imageResizeMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ isUploadFailed && retryMessage && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\tstyles.retryContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.retryIcon,\n\t\t\t\t\t\t\t\tretryIcon && styles.customRetryIcon,\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.RETRY ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<Text style={ styles.uploadFailedText }>\n\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\n\t\t\t{ editButton && isSelected && ! isUploadInProgress && (\n\t\t\t\t<ImageEditingButton\n\t\t\t\t\tonSelectMediaUploadOption={ onSelectMediaUploadOption }\n\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\turl={ ! isUploadFailed && imageData && url }\n\t\t\t\t\tpickerOptions={ mediaPickerOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default ImageComponent;\n"]}
@@ -53,7 +53,9 @@ export const KeyboardAvoidingView = _ref => {
53
53
  safeAreaSubscription.remove();
54
54
  keyboardShowSubscription.remove();
55
55
  keyboardHideSubscription.remove();
56
- };
56
+ }; // Disable reason: deferring this refactor to the native team.
57
+ // see https://github.com/WordPress/gutenberg/pull/41166
58
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
59
  }, []);
58
60
 
59
61
  function onSafeAreaInsetsUpdate(_ref3) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/keyboard-avoiding-view/index.ios.js"],"names":["KeyboardAvoidingView","IOSKeyboardAvoidingView","Animated","Keyboard","Dimensions","View","SafeArea","useEffect","useRef","useState","useResizeObserver","useIsFloatingKeyboard","styles","AnimatedKeyboardAvoidingView","createAnimatedComponent","MIN_HEIGHT","parentHeight","style","withAnimatedHeight","otherProps","resizeObserver","sizes","isKeyboardOpen","setIsKeyboardOpen","safeAreaBottomInset","setSafeAreaBottomInset","height","floatingKeyboard","animatedHeight","Value","current","fullHeight","get","keyboardVerticalOffset","getSafeAreaInsetsForRootView","then","safeAreaInsets","bottom","safeAreaSubscription","addEventListener","onSafeAreaInsetsUpdate","keyboardShowSubscription","addListener","onKeyboardWillShow","keyboardHideSubscription","onKeyboardWillHide","remove","endCoordinates","setValue","duration","startCoordinates","keyboardIsOpenBreakpoint","animatedListenerId","value","timing","toValue","useNativeDriver","start","removeListener","marginBottom","top","animatedChildStyle","defaultChildStyle","children"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,uBADzB,EAECC,QAFD,EAGCC,QAHD,EAICC,UAJD,EAKCC,IALD,QAMO,cANP;AAOA,OAAOC,QAAP,MAAqB,wBAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,MAApB,EAA4BC,QAA5B,QAA4C,oBAA5C;AACA,SAASC,iBAAT,QAAkC,oBAAlC;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,mCAAlC;AACA,OAAOC,MAAP,MAAmB,eAAnB;AAEA,MAAMC,4BAA4B,GAAGX,QAAQ,CAACY,uBAAT,CACpCb,uBADoC,CAArC;AAIA,MAAMc,UAAU,GAAG,EAAnB;AAEA,OAAO,MAAMf,oBAAoB,GAAG,QAK7B;AAAA,MAL+B;AACrCgB,IAAAA,YADqC;AAErCC,IAAAA,KAFqC;AAGrCC,IAAAA,kBAAkB,GAAG,KAHgB;AAIrC,OAAGC;AAJkC,GAK/B;AACN,QAAM,CAAEC,cAAF,EAAkBC,KAAlB,IAA4BX,iBAAiB,EAAnD;AACA,QAAM,CAAEY,cAAF,EAAkBC,iBAAlB,IAAwCd,QAAQ,CAAE,KAAF,CAAtD;AACA,QAAM,CAAEe,mBAAF,EAAuBC,sBAAvB,IAAkDhB,QAAQ,CAAE,CAAF,CAAhE;AACA,QAAM;AAAEiB,IAAAA,MAAM,GAAG;AAAX,MAAiBL,KAAK,IAAI,EAAhC;AACA,QAAMM,gBAAgB,GAAGhB,qBAAqB,EAA9C;AAEA,QAAMiB,cAAc,GAAGpB,MAAM,CAAE,IAAIN,QAAQ,CAAC2B,KAAb,CAAoBd,UAApB,CAAF,CAAN,CAA2Ce,OAAlE;AAEA,QAAM;AAAEJ,IAAAA,MAAM,EAAEK;AAAV,MAAyB3B,UAAU,CAAC4B,GAAX,CAAgB,QAAhB,CAA/B;AACA,QAAMC,sBAAsB,GAAGF,UAAU,GAAGf,YAA5C;AAEAT,EAAAA,SAAS,CAAE,MAAM;AAChBD,IAAAA,QAAQ,CAAC4B,4BAAT,GAAwCC,IAAxC,CACC,SAA0B;AAAA,UAAxB;AAAEC,QAAAA;AAAF,OAAwB;AACzBX,MAAAA,sBAAsB,CAAEW,cAAc,CAACC,MAAjB,CAAtB;AACA,KAHF;AAKA,UAAMC,oBAAoB,GAAGhC,QAAQ,CAACiC,gBAAT,CAC5B,oCAD4B,EAE5BC,sBAF4B,CAA7B;AAIA,UAAMC,wBAAwB,GAAGtC,QAAQ,CAACuC,WAAT,CAChC,kBADgC,EAEhCC,kBAFgC,CAAjC;AAIA,UAAMC,wBAAwB,GAAGzC,QAAQ,CAACuC,WAAT,CAChC,kBADgC,EAEhCG,kBAFgC,CAAjC;AAKA,WAAO,MAAM;AACZP,MAAAA,oBAAoB,CAACQ,MAArB;AACAL,MAAAA,wBAAwB,CAACK,MAAzB;AACAF,MAAAA,wBAAwB,CAACE,MAAzB;AACA,KAJD;AAKA,GAxBQ,EAwBN,EAxBM,CAAT;;AA0BA,WAASN,sBAAT,QAAsD;AAAA,QAArB;AAAEJ,MAAAA;AAAF,KAAqB;AACrDX,IAAAA,sBAAsB,CAAEW,cAAc,CAACC,MAAjB,CAAtB;AACA;;AAED,WAASM,kBAAT,QAAkD;AAAA,QAArB;AAAEI,MAAAA;AAAF,KAAqB;AACjDxB,IAAAA,iBAAiB,CAAE,IAAF,CAAjB;AACAK,IAAAA,cAAc,CAACoB,QAAf,CAAyBD,cAAc,CAACrB,MAAf,GAAwBX,UAAjD;AACA;;AAED,WAAS8B,kBAAT,QAA8D;AAAA,QAAjC;AAAEI,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,KAAiC;AAC7D;AACA;AACA;AACA,UAAMC,wBAAwB,GAC7BD,gBAAgB,CAACxB,MAAjB,GAA0B,GAA1B,GAAgCwB,gBAAgB,CAACxB,MAAjB,GAA0B,CAA1D,GAA8D,GAD/D;AAEA,UAAM0B,kBAAkB,GAAGxB,cAAc,CAACc,WAAf,CAC1B,SAAiB;AAAA,UAAf;AAAEW,QAAAA;AAAF,OAAe;;AAChB,UAAKA,KAAK,GAAGF,wBAAb,EAAwC;AACvC5B,QAAAA,iBAAiB,CAAE,KAAF,CAAjB;AACA;AACD,KALyB,CAA3B;AAQArB,IAAAA,QAAQ,CAACoD,MAAT,CAAiB1B,cAAjB,EAAiC;AAChC2B,MAAAA,OAAO,EAAExC,UADuB;AAEhCkC,MAAAA,QAFgC;AAGhCO,MAAAA,eAAe,EAAE;AAHe,KAAjC,EAIIC,KAJJ,CAIW,MAAM;AAChB7B,MAAAA,cAAc,CAAC8B,cAAf,CAA+BN,kBAA/B;AACA,KAND;AAOA;;AAED,SACC,cAAC,4BAAD,eACMjC,UADN;AAEC,IAAA,OAAO,EAAG,CAAEQ,gBAFb;AAGC,IAAA,QAAQ,EAAC,SAHV;AAIC,IAAA,sBAAsB,EAAGM,sBAJ1B;AAKC,IAAA,KAAK,EACJf,kBAAkB,GACf,CACAD,KADA,EAEA;AACCS,MAAAA,MAAM,EAAEE,cADT;AAEC+B,MAAAA,YAAY,EAAErC,cAAc,GACzB,CAACE,mBADwB,GAEzB;AAJJ,KAFA,CADe,GAUfP;AAhBL,MAmBC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACP;AACC2C,MAAAA,GAAG,EAAE,CAAClC,MAAD,GAAUX;AADhB,KADO,EAIPH,MAAM,CAACiD,kBAJA,EAKP,CAAE3C,kBAAF,IAAwBN,MAAM,CAACkD,iBALxB;AADT,KASG1C,cATH,EAUGD,UAAU,CAAC4C,QAVd,CAnBD,CADD;AAkCA,CA7GM;AA+GP,eAAe/D,oBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tKeyboardAvoidingView as IOSKeyboardAvoidingView,\n\tAnimated,\n\tKeyboard,\n\tDimensions,\n\tView,\n} from 'react-native';\nimport SafeArea from 'react-native-safe-area';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useIsFloatingKeyboard from '../utils/use-is-floating-keyboard';\nimport styles from './styles.scss';\n\nconst AnimatedKeyboardAvoidingView = Animated.createAnimatedComponent(\n\tIOSKeyboardAvoidingView\n);\n\nconst MIN_HEIGHT = 44;\n\nexport const KeyboardAvoidingView = ( {\n\tparentHeight,\n\tstyle,\n\twithAnimatedHeight = false,\n\t...otherProps\n} ) => {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ isKeyboardOpen, setIsKeyboardOpen ] = useState( false );\n\tconst [ safeAreaBottomInset, setSafeAreaBottomInset ] = useState( 0 );\n\tconst { height = 0 } = sizes || {};\n\tconst floatingKeyboard = useIsFloatingKeyboard();\n\n\tconst animatedHeight = useRef( new Animated.Value( MIN_HEIGHT ) ).current;\n\n\tconst { height: fullHeight } = Dimensions.get( 'screen' );\n\tconst keyboardVerticalOffset = fullHeight - parentHeight;\n\n\tuseEffect( () => {\n\t\tSafeArea.getSafeAreaInsetsForRootView().then(\n\t\t\t( { safeAreaInsets } ) => {\n\t\t\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t\t\t}\n\t\t);\n\t\tconst safeAreaSubscription = SafeArea.addEventListener(\n\t\t\t'safeAreaInsetsForRootViewDidChange',\n\t\t\tonSafeAreaInsetsUpdate\n\t\t);\n\t\tconst keyboardShowSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillShow',\n\t\t\tonKeyboardWillShow\n\t\t);\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillHide',\n\t\t\tonKeyboardWillHide\n\t\t);\n\n\t\treturn () => {\n\t\t\tsafeAreaSubscription.remove();\n\t\t\tkeyboardShowSubscription.remove();\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction onSafeAreaInsetsUpdate( { safeAreaInsets } ) {\n\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t}\n\n\tfunction onKeyboardWillShow( { endCoordinates } ) {\n\t\tsetIsKeyboardOpen( true );\n\t\tanimatedHeight.setValue( endCoordinates.height + MIN_HEIGHT );\n\t}\n\n\tfunction onKeyboardWillHide( { duration, startCoordinates } ) {\n\t\t// The startCoordinates.height is set to wrong value when we use cmd + k for hide the keyboard (Have no idea why).\n\t\t// Because of that the `setIsKeyboardOpened` is not invoked and the state of keyboard is wrong.\n\t\t// The keyboardIsOpenBreakpoint use 100 as a fallback if the startCoordinates.height is too small (cmd + k case)\n\t\tconst keyboardIsOpenBreakpoint =\n\t\t\tstartCoordinates.height > 100 ? startCoordinates.height / 3 : 100;\n\t\tconst animatedListenerId = animatedHeight.addListener(\n\t\t\t( { value } ) => {\n\t\t\t\tif ( value < keyboardIsOpenBreakpoint ) {\n\t\t\t\t\tsetIsKeyboardOpen( false );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tAnimated.timing( animatedHeight, {\n\t\t\ttoValue: MIN_HEIGHT,\n\t\t\tduration,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start( () => {\n\t\t\tanimatedHeight.removeListener( animatedListenerId );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<AnimatedKeyboardAvoidingView\n\t\t\t{ ...otherProps }\n\t\t\tenabled={ ! floatingKeyboard }\n\t\t\tbehavior=\"padding\"\n\t\t\tkeyboardVerticalOffset={ keyboardVerticalOffset }\n\t\t\tstyle={\n\t\t\t\twithAnimatedHeight\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\theight: animatedHeight,\n\t\t\t\t\t\t\t\tmarginBottom: isKeyboardOpen\n\t\t\t\t\t\t\t\t\t? -safeAreaBottomInset\n\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: style\n\t\t\t}\n\t\t>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttop: -height + MIN_HEIGHT,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.animatedChildStyle,\n\t\t\t\t\t! withAnimatedHeight && styles.defaultChildStyle,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ otherProps.children }\n\t\t\t</View>\n\t\t</AnimatedKeyboardAvoidingView>\n\t);\n};\n\nexport default KeyboardAvoidingView;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/keyboard-avoiding-view/index.ios.js"],"names":["KeyboardAvoidingView","IOSKeyboardAvoidingView","Animated","Keyboard","Dimensions","View","SafeArea","useEffect","useRef","useState","useResizeObserver","useIsFloatingKeyboard","styles","AnimatedKeyboardAvoidingView","createAnimatedComponent","MIN_HEIGHT","parentHeight","style","withAnimatedHeight","otherProps","resizeObserver","sizes","isKeyboardOpen","setIsKeyboardOpen","safeAreaBottomInset","setSafeAreaBottomInset","height","floatingKeyboard","animatedHeight","Value","current","fullHeight","get","keyboardVerticalOffset","getSafeAreaInsetsForRootView","then","safeAreaInsets","bottom","safeAreaSubscription","addEventListener","onSafeAreaInsetsUpdate","keyboardShowSubscription","addListener","onKeyboardWillShow","keyboardHideSubscription","onKeyboardWillHide","remove","endCoordinates","setValue","duration","startCoordinates","keyboardIsOpenBreakpoint","animatedListenerId","value","timing","toValue","useNativeDriver","start","removeListener","marginBottom","top","animatedChildStyle","defaultChildStyle","children"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tKeyboardAvoidingView as IOSKeyboardAvoidingView,\n\tAnimated,\n\tKeyboard,\n\tDimensions,\n\tView,\n} from 'react-native';\nimport SafeArea from 'react-native-safe-area';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useIsFloatingKeyboard from '../utils/use-is-floating-keyboard';\nimport styles from './styles.scss';\n\nconst AnimatedKeyboardAvoidingView = Animated.createAnimatedComponent(\n\tIOSKeyboardAvoidingView\n);\n\nconst MIN_HEIGHT = 44;\n\nexport const KeyboardAvoidingView = ( {\n\tparentHeight,\n\tstyle,\n\twithAnimatedHeight = false,\n\t...otherProps\n} ) => {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ isKeyboardOpen, setIsKeyboardOpen ] = useState( false );\n\tconst [ safeAreaBottomInset, setSafeAreaBottomInset ] = useState( 0 );\n\tconst { height = 0 } = sizes || {};\n\tconst floatingKeyboard = useIsFloatingKeyboard();\n\n\tconst animatedHeight = useRef( new Animated.Value( MIN_HEIGHT ) ).current;\n\n\tconst { height: fullHeight } = Dimensions.get( 'screen' );\n\tconst keyboardVerticalOffset = fullHeight - parentHeight;\n\n\tuseEffect( () => {\n\t\tSafeArea.getSafeAreaInsetsForRootView().then(\n\t\t\t( { safeAreaInsets } ) => {\n\t\t\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t\t\t}\n\t\t);\n\t\tconst safeAreaSubscription = SafeArea.addEventListener(\n\t\t\t'safeAreaInsetsForRootViewDidChange',\n\t\t\tonSafeAreaInsetsUpdate\n\t\t);\n\t\tconst keyboardShowSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillShow',\n\t\t\tonKeyboardWillShow\n\t\t);\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillHide',\n\t\t\tonKeyboardWillHide\n\t\t);\n\n\t\treturn () => {\n\t\t\tsafeAreaSubscription.remove();\n\t\t\tkeyboardShowSubscription.remove();\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSafeAreaInsetsUpdate( { safeAreaInsets } ) {\n\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t}\n\n\tfunction onKeyboardWillShow( { endCoordinates } ) {\n\t\tsetIsKeyboardOpen( true );\n\t\tanimatedHeight.setValue( endCoordinates.height + MIN_HEIGHT );\n\t}\n\n\tfunction onKeyboardWillHide( { duration, startCoordinates } ) {\n\t\t// The startCoordinates.height is set to wrong value when we use cmd + k for hide the keyboard (Have no idea why).\n\t\t// Because of that the `setIsKeyboardOpened` is not invoked and the state of keyboard is wrong.\n\t\t// The keyboardIsOpenBreakpoint use 100 as a fallback if the startCoordinates.height is too small (cmd + k case)\n\t\tconst keyboardIsOpenBreakpoint =\n\t\t\tstartCoordinates.height > 100 ? startCoordinates.height / 3 : 100;\n\t\tconst animatedListenerId = animatedHeight.addListener(\n\t\t\t( { value } ) => {\n\t\t\t\tif ( value < keyboardIsOpenBreakpoint ) {\n\t\t\t\t\tsetIsKeyboardOpen( false );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tAnimated.timing( animatedHeight, {\n\t\t\ttoValue: MIN_HEIGHT,\n\t\t\tduration,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start( () => {\n\t\t\tanimatedHeight.removeListener( animatedListenerId );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<AnimatedKeyboardAvoidingView\n\t\t\t{ ...otherProps }\n\t\t\tenabled={ ! floatingKeyboard }\n\t\t\tbehavior=\"padding\"\n\t\t\tkeyboardVerticalOffset={ keyboardVerticalOffset }\n\t\t\tstyle={\n\t\t\t\twithAnimatedHeight\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\theight: animatedHeight,\n\t\t\t\t\t\t\t\tmarginBottom: isKeyboardOpen\n\t\t\t\t\t\t\t\t\t? -safeAreaBottomInset\n\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: style\n\t\t\t}\n\t\t>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttop: -height + MIN_HEIGHT,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.animatedChildStyle,\n\t\t\t\t\t! withAnimatedHeight && styles.defaultChildStyle,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ otherProps.children }\n\t\t\t</View>\n\t\t</AnimatedKeyboardAvoidingView>\n\t);\n};\n\nexport default KeyboardAvoidingView;\n"]}
@@ -102,7 +102,9 @@ export const LinkPicker = _ref => {
102
102
  })).catch(() => setValue({
103
103
  value,
104
104
  clipboardUrl: ''
105
- }));
105
+ })); // Disable reason: deferring this refactor to the native team.
106
+ // see https://github.com/WordPress/gutenberg/pull/41166
107
+ // eslint-disable-next-line react-hooks/exhaustive-deps
106
108
  }, []); // TODO: Localize the accessibility label.
107
109
  // TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.
108
110
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/index.native.js"],"names":["SafeAreaView","TouchableOpacity","View","Clipboard","useEffect","useState","__","sprintf","BottomSheet","Icon","getProtocol","isURL","prependHTTP","link","cancelCircleFilled","usePreferredColorSchemeStyle","LinkPickerResults","NavBar","styles","createDirectEntry","value","type","protocol","toLowerCase","includes","startsWith","isDirectEntry","title","url","getURLFromClipboard","text","getString","LinkPicker","initialValue","onLinkPicked","onCancel","cancel","clipboardUrl","setValue","directEntry","pickLink","onSubmit","clear","omniCellStyle","omniCell","omniCellDark","iconStyle","icon","iconDark","then","catch","safeArea","contentContainer","omniInput","newValue","clearIcon","color"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,gBAAvB,EAAyCC,IAAzC,QAAqD,cAArD;AACA,OAAOC,SAAP,MAAsB,mCAAtB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,WAAT,EAAsBC,IAAtB,QAAkC,uBAAlC;AACA,SAASC,WAAT,EAAsBC,KAAtB,EAA6BC,WAA7B,QAAgD,gBAAhD;AACA,SAASC,IAAT,EAAeC,kBAAf,QAAyC,kBAAzC;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,MAAP,MAAmB,yBAAnB;AACA,OAAOC,MAAP,MAAmB,eAAnB,C,CAEA;;AACA,OAAO,MAAMC,iBAAiB,GAAKC,KAAF,IAAa;AAAA;;AAC7C,MAAIC,IAAI,GAAG,KAAX;AAEA,QAAMC,QAAQ,GAAG,iBAAAZ,WAAW,CAAEU,KAAF,CAAX,8DAAsBG,WAAtB,OAAuC,EAAxD;;AAEA,MAAKD,QAAQ,CAACE,QAAT,CAAmB,QAAnB,CAAL,EAAqC;AACpCH,IAAAA,IAAI,GAAG,QAAP;AACA;;AAED,MAAKC,QAAQ,CAACE,QAAT,CAAmB,KAAnB,CAAL,EAAkC;AACjCH,IAAAA,IAAI,GAAG,KAAP;AACA;;AAED,MAAKD,KAAL,aAAKA,KAAL,eAAKA,KAAK,CAAEK,UAAP,CAAmB,GAAnB,CAAL,EAAgC;AAC/BJ,IAAAA,IAAI,GAAG,UAAP;AACA;;AAED,SAAO;AACNK,IAAAA,aAAa,EAAE,IADT;AAENC,IAAAA,KAAK,EAAEP,KAFD;AAGNQ,IAAAA,GAAG,EAAEP,IAAI,KAAK,KAAT,GAAiBT,WAAW,CAAEQ,KAAF,CAA5B,GAAwCA,KAHvC;AAINC,IAAAA;AAJM,GAAP;AAMA,CAvBM;;AAyBP,MAAMQ,mBAAmB,GAAG,YAAY;AACvC,QAAMC,IAAI,GAAG,MAAM3B,SAAS,CAAC4B,SAAV,EAAnB;AACA,SAAO,CAAC,CAAED,IAAH,IAAWnB,KAAK,CAAEmB,IAAF,CAAhB,GAA2BA,IAA3B,GAAkC,EAAzC;AACA,CAHD;;AAKA,OAAO,MAAME,UAAU,GAAG,QAInB;AAAA,MAJqB;AAC3BZ,IAAAA,KAAK,EAAEa,YADoB;AAE3BC,IAAAA,YAF2B;AAG3BC,IAAAA,QAAQ,EAAEC;AAHiB,GAIrB;AACN,QAAM,CAAE;AAAEhB,IAAAA,KAAF;AAASiB,IAAAA;AAAT,GAAF,EAA2BC,QAA3B,IAAwCjC,QAAQ,CAAE;AACvDe,IAAAA,KAAK,EAAEa,YADgD;AAEvDI,IAAAA,YAAY,EAAE;AAFyC,GAAF,CAAtD;AAIA,QAAME,WAAW,GAAGpB,iBAAiB,CAAEC,KAAF,CAArC,CALM,CAON;AACA;;AACA,QAAMoB,QAAQ,GAAG,SAAqC;AAAA,QAAnC;AAAEb,MAAAA,KAAF;AAASC,MAAAA,GAAT;AAAcF,MAAAA;AAAd,KAAmC;AACrDQ,IAAAA,YAAY,CAAE;AAAEP,MAAAA,KAAK,EAAED,aAAa,GAAGE,GAAH,GAASD,KAA/B;AAAsCC,MAAAA;AAAtC,KAAF,CAAZ;AACA,GAFD;;AAIA,QAAMa,QAAQ,GAAG,MAAM;AACtBD,IAAAA,QAAQ,CAAED,WAAF,CAAR;AACA,GAFD;;AAIA,QAAMG,KAAK,GAAG,MAAM;AACnBJ,IAAAA,QAAQ,CAAE;AAAElB,MAAAA,KAAK,EAAE,EAAT;AAAaiB,MAAAA;AAAb,KAAF,CAAR;AACA,GAFD;;AAIA,QAAMM,aAAa,GAAG5B,4BAA4B,CACjDG,MAAM,CAAC0B,QAD0C,EAEjD1B,MAAM,CAAC2B,YAF0C,CAAlD;AAKA,QAAMC,SAAS,GAAG/B,4BAA4B,CAC7CG,MAAM,CAAC6B,IADsC,EAE7C7B,MAAM,CAAC8B,QAFsC,CAA9C;AAKA5C,EAAAA,SAAS,CAAE,MAAM;AAChByB,IAAAA,mBAAmB,GACjBoB,IADF,CACUrB,GAAF,IAAWU,QAAQ,CAAE;AAAElB,MAAAA,KAAF;AAASiB,MAAAA,YAAY,EAAET;AAAvB,KAAF,CAD3B,EAEEsB,KAFF,CAES,MAAMZ,QAAQ,CAAE;AAAElB,MAAAA,KAAF;AAASiB,MAAAA,YAAY,EAAE;AAAvB,KAAF,CAFvB;AAGA,GAJQ,EAIN,EAJM,CAAT,CA/BM,CAqCN;AACA;;AACA,SACC,cAAC,YAAD;AAAc,IAAA,KAAK,EAAGnB,MAAM,CAACiC;AAA7B,KACC,cAAC,MAAD,QACC,cAAC,MAAD,CAAQ,aAAR;AAAsB,IAAA,OAAO,EAAGf;AAAhC,IADD,EAEC,cAAC,MAAD,CAAQ,OAAR,QAAkB9B,EAAE,CAAE,SAAF,CAApB,CAFD,EAGC,cAAC,MAAD,CAAQ,WAAR;AAAoB,IAAA,OAAO,EAAGmC;AAA9B,IAHD,CADD,EAMC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGvB,MAAM,CAACkC;AAArB,KACC,cAAC,WAAD,CAAa,IAAb;AACC,IAAA,IAAI,EAAGvC,IADR;AAEC,IAAA,KAAK,EAAG8B,aAFT;AAGC,IAAA,UAAU,EAAGzB,MAAM,CAACmC,SAHrB;AAIC,IAAA,KAAK,EAAGjC,KAJT;AAKC,IAAA,WAAW,EAAGd,EAAE,CAAE,oBAAF,CALjB;AAMC,IAAA,cAAc,EAAC,MANhB;AAOC,IAAA,WAAW,EAAG,KAPf;AAQC,IAAA,YAAY,EAAC,KARd;AASC,IAAA,aAAa,EAAKgD,QAAF,IAAgB;AAC/BhB,MAAAA,QAAQ,CAAE;AAAElB,QAAAA,KAAK,EAAEkC,QAAT;AAAmBjB,QAAAA;AAAnB,OAAF,CAAR;AACA,KAXF;AAYC,IAAA,QAAQ,EAAGI;AACX;AAbD;AAcC,IAAA,SAAS,MAdV;AAeC,IAAA,aAAa,EAAC;AAff,KAiBGrB,KAAK,KAAK,EAAV,IACD,cAAC,gBAAD;AACC,IAAA,OAAO,EAAGsB,KADX;AAEC,IAAA,KAAK,EAAGxB,MAAM,CAACqC;AAFhB,KAIC,cAAC,IAAD;AACC,IAAA,IAAI,EAAGzC,kBADR;AAEC,IAAA,IAAI,EAAGgC,SAAS,CAACU,KAFlB;AAGC,IAAA,IAAI,EAAG;AAHR,IAJD,CAlBF,CADD,EA+BG,CAAC,CAAEnB,YAAH,IAAmBA,YAAY,KAAKjB,KAApC,IACD,cAAC,WAAD,CAAa,sBAAb;AACC,IAAA,UAAU,MADX;AAEC,IAAA,kBAAkB,EAAGb,OAAO;AAC3B;AACAD,IAAAA,EAAE,CAAE,iCAAF,CAFyB,EAG3B+B,YAH2B,CAF7B;AAOC,IAAA,UAAU,EAAG;AACZhB,MAAAA,IAAI,EAAE,WADM;AAEZO,MAAAA,GAAG,EAAES,YAFO;AAGZX,MAAAA,aAAa,EAAE;AAHH,KAPd;AAYC,IAAA,YAAY,EAAGc;AAZhB,IAhCF,EA+CG,CAAC,CAAEpB,KAAH,IACD,cAAC,iBAAD;AACC,IAAA,KAAK,EAAGA,KADT;AAEC,IAAA,YAAY,EAAGoB,QAFhB;AAGC,IAAA,WAAW,EAAGD;AAHf,IAhDF,CAND,CADD;AAgEA,CA3GM","sourcesContent":["/**\n * External dependencies\n */\nimport { SafeAreaView, TouchableOpacity, View } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BottomSheet, Icon } from '@wordpress/components';\nimport { getProtocol, isURL, prependHTTP } from '@wordpress/url';\nimport { link, cancelCircleFilled } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport LinkPickerResults from './link-picker-results';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport styles from './styles.scss';\n\n// This creates a search suggestion for adding a url directly.\nexport const createDirectEntry = ( value ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( value )?.toLowerCase() || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( value?.startsWith( '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn {\n\t\tisDirectEntry: true,\n\t\ttitle: value,\n\t\turl: type === 'URL' ? prependHTTP( value ) : value,\n\t\ttype,\n\t};\n};\n\nconst getURLFromClipboard = async () => {\n\tconst text = await Clipboard.getString();\n\treturn !! text && isURL( text ) ? text : '';\n};\n\nexport const LinkPicker = ( {\n\tvalue: initialValue,\n\tonLinkPicked,\n\tonCancel: cancel,\n} ) => {\n\tconst [ { value, clipboardUrl }, setValue ] = useState( {\n\t\tvalue: initialValue,\n\t\tclipboardUrl: '',\n\t} );\n\tconst directEntry = createDirectEntry( value );\n\n\t// The title of a direct entry is displayed as the raw input value, but if we\n\t// are replacing empty text, we want to use the generated url.\n\tconst pickLink = ( { title, url, isDirectEntry } ) => {\n\t\tonLinkPicked( { title: isDirectEntry ? url : title, url } );\n\t};\n\n\tconst onSubmit = () => {\n\t\tpickLink( directEntry );\n\t};\n\n\tconst clear = () => {\n\t\tsetValue( { value: '', clipboardUrl } );\n\t};\n\n\tconst omniCellStyle = usePreferredColorSchemeStyle(\n\t\tstyles.omniCell,\n\t\tstyles.omniCellDark\n\t);\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.icon,\n\t\tstyles.iconDark\n\t);\n\n\tuseEffect( () => {\n\t\tgetURLFromClipboard()\n\t\t\t.then( ( url ) => setValue( { value, clipboardUrl: url } ) )\n\t\t\t.catch( () => setValue( { value, clipboardUrl: '' } ) );\n\t}, [] );\n\n\t// TODO: Localize the accessibility label.\n\t// TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.\n\treturn (\n\t\t<SafeAreaView style={ styles.safeArea }>\n\t\t\t<NavBar>\n\t\t\t\t<NavBar.DismissButton onPress={ cancel } />\n\t\t\t\t<NavBar.Heading>{ __( 'Link to' ) }</NavBar.Heading>\n\t\t\t\t<NavBar.ApplyButton onPress={ onSubmit } />\n\t\t\t</NavBar>\n\t\t\t<View style={ styles.contentContainer }>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tstyle={ omniCellStyle }\n\t\t\t\t\tvalueStyle={ styles.omniInput }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ __( 'Search or type URL' ) }\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\tonChangeValue={ ( newValue ) => {\n\t\t\t\t\t\tsetValue( { value: newValue, clipboardUrl } );\n\t\t\t\t\t} }\n\t\t\t\t\tonSubmit={ onSubmit }\n\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-autofocus */\n\t\t\t\t\tautoFocus\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t>\n\t\t\t\t\t{ value !== '' && (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={ clear }\n\t\t\t\t\t\t\tstyle={ styles.clearIcon }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ cancelCircleFilled }\n\t\t\t\t\t\t\t\tfill={ iconStyle.color }\n\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) }\n\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t{ !! clipboardUrl && clipboardUrl !== value && (\n\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\taccessible\n\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: Copy URL from the clipboard, https://sample.url */\n\t\t\t\t\t\t\t__( 'Copy URL from the clipboard, %s' ),\n\t\t\t\t\t\t\tclipboardUrl\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsuggestion={ {\n\t\t\t\t\t\t\ttype: 'clipboard',\n\t\t\t\t\t\t\turl: clipboardUrl,\n\t\t\t\t\t\t\tisDirectEntry: true,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! value && (\n\t\t\t\t\t<LinkPickerResults\n\t\t\t\t\t\tquery={ value }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t\tdirectEntry={ directEntry }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</SafeAreaView>\n\t);\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/index.native.js"],"names":["SafeAreaView","TouchableOpacity","View","Clipboard","useEffect","useState","__","sprintf","BottomSheet","Icon","getProtocol","isURL","prependHTTP","link","cancelCircleFilled","usePreferredColorSchemeStyle","LinkPickerResults","NavBar","styles","createDirectEntry","value","type","protocol","toLowerCase","includes","startsWith","isDirectEntry","title","url","getURLFromClipboard","text","getString","LinkPicker","initialValue","onLinkPicked","onCancel","cancel","clipboardUrl","setValue","directEntry","pickLink","onSubmit","clear","omniCellStyle","omniCell","omniCellDark","iconStyle","icon","iconDark","then","catch","safeArea","contentContainer","omniInput","newValue","clearIcon","color"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,gBAAvB,EAAyCC,IAAzC,QAAqD,cAArD;AACA,OAAOC,SAAP,MAAsB,mCAAtB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,WAAT,EAAsBC,IAAtB,QAAkC,uBAAlC;AACA,SAASC,WAAT,EAAsBC,KAAtB,EAA6BC,WAA7B,QAAgD,gBAAhD;AACA,SAASC,IAAT,EAAeC,kBAAf,QAAyC,kBAAzC;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,MAAP,MAAmB,yBAAnB;AACA,OAAOC,MAAP,MAAmB,eAAnB,C,CAEA;;AACA,OAAO,MAAMC,iBAAiB,GAAKC,KAAF,IAAa;AAAA;;AAC7C,MAAIC,IAAI,GAAG,KAAX;AAEA,QAAMC,QAAQ,GAAG,iBAAAZ,WAAW,CAAEU,KAAF,CAAX,8DAAsBG,WAAtB,OAAuC,EAAxD;;AAEA,MAAKD,QAAQ,CAACE,QAAT,CAAmB,QAAnB,CAAL,EAAqC;AACpCH,IAAAA,IAAI,GAAG,QAAP;AACA;;AAED,MAAKC,QAAQ,CAACE,QAAT,CAAmB,KAAnB,CAAL,EAAkC;AACjCH,IAAAA,IAAI,GAAG,KAAP;AACA;;AAED,MAAKD,KAAL,aAAKA,KAAL,eAAKA,KAAK,CAAEK,UAAP,CAAmB,GAAnB,CAAL,EAAgC;AAC/BJ,IAAAA,IAAI,GAAG,UAAP;AACA;;AAED,SAAO;AACNK,IAAAA,aAAa,EAAE,IADT;AAENC,IAAAA,KAAK,EAAEP,KAFD;AAGNQ,IAAAA,GAAG,EAAEP,IAAI,KAAK,KAAT,GAAiBT,WAAW,CAAEQ,KAAF,CAA5B,GAAwCA,KAHvC;AAINC,IAAAA;AAJM,GAAP;AAMA,CAvBM;;AAyBP,MAAMQ,mBAAmB,GAAG,YAAY;AACvC,QAAMC,IAAI,GAAG,MAAM3B,SAAS,CAAC4B,SAAV,EAAnB;AACA,SAAO,CAAC,CAAED,IAAH,IAAWnB,KAAK,CAAEmB,IAAF,CAAhB,GAA2BA,IAA3B,GAAkC,EAAzC;AACA,CAHD;;AAKA,OAAO,MAAME,UAAU,GAAG,QAInB;AAAA,MAJqB;AAC3BZ,IAAAA,KAAK,EAAEa,YADoB;AAE3BC,IAAAA,YAF2B;AAG3BC,IAAAA,QAAQ,EAAEC;AAHiB,GAIrB;AACN,QAAM,CAAE;AAAEhB,IAAAA,KAAF;AAASiB,IAAAA;AAAT,GAAF,EAA2BC,QAA3B,IAAwCjC,QAAQ,CAAE;AACvDe,IAAAA,KAAK,EAAEa,YADgD;AAEvDI,IAAAA,YAAY,EAAE;AAFyC,GAAF,CAAtD;AAIA,QAAME,WAAW,GAAGpB,iBAAiB,CAAEC,KAAF,CAArC,CALM,CAON;AACA;;AACA,QAAMoB,QAAQ,GAAG,SAAqC;AAAA,QAAnC;AAAEb,MAAAA,KAAF;AAASC,MAAAA,GAAT;AAAcF,MAAAA;AAAd,KAAmC;AACrDQ,IAAAA,YAAY,CAAE;AAAEP,MAAAA,KAAK,EAAED,aAAa,GAAGE,GAAH,GAASD,KAA/B;AAAsCC,MAAAA;AAAtC,KAAF,CAAZ;AACA,GAFD;;AAIA,QAAMa,QAAQ,GAAG,MAAM;AACtBD,IAAAA,QAAQ,CAAED,WAAF,CAAR;AACA,GAFD;;AAIA,QAAMG,KAAK,GAAG,MAAM;AACnBJ,IAAAA,QAAQ,CAAE;AAAElB,MAAAA,KAAK,EAAE,EAAT;AAAaiB,MAAAA;AAAb,KAAF,CAAR;AACA,GAFD;;AAIA,QAAMM,aAAa,GAAG5B,4BAA4B,CACjDG,MAAM,CAAC0B,QAD0C,EAEjD1B,MAAM,CAAC2B,YAF0C,CAAlD;AAKA,QAAMC,SAAS,GAAG/B,4BAA4B,CAC7CG,MAAM,CAAC6B,IADsC,EAE7C7B,MAAM,CAAC8B,QAFsC,CAA9C;AAKA5C,EAAAA,SAAS,CAAE,MAAM;AAChByB,IAAAA,mBAAmB,GACjBoB,IADF,CACUrB,GAAF,IAAWU,QAAQ,CAAE;AAAElB,MAAAA,KAAF;AAASiB,MAAAA,YAAY,EAAET;AAAvB,KAAF,CAD3B,EAEEsB,KAFF,CAES,MAAMZ,QAAQ,CAAE;AAAElB,MAAAA,KAAF;AAASiB,MAAAA,YAAY,EAAE;AAAvB,KAAF,CAFvB,EADgB,CAIhB;AACA;AACA;AACA,GAPQ,EAON,EAPM,CAAT,CA/BM,CAwCN;AACA;;AACA,SACC,cAAC,YAAD;AAAc,IAAA,KAAK,EAAGnB,MAAM,CAACiC;AAA7B,KACC,cAAC,MAAD,QACC,cAAC,MAAD,CAAQ,aAAR;AAAsB,IAAA,OAAO,EAAGf;AAAhC,IADD,EAEC,cAAC,MAAD,CAAQ,OAAR,QAAkB9B,EAAE,CAAE,SAAF,CAApB,CAFD,EAGC,cAAC,MAAD,CAAQ,WAAR;AAAoB,IAAA,OAAO,EAAGmC;AAA9B,IAHD,CADD,EAMC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGvB,MAAM,CAACkC;AAArB,KACC,cAAC,WAAD,CAAa,IAAb;AACC,IAAA,IAAI,EAAGvC,IADR;AAEC,IAAA,KAAK,EAAG8B,aAFT;AAGC,IAAA,UAAU,EAAGzB,MAAM,CAACmC,SAHrB;AAIC,IAAA,KAAK,EAAGjC,KAJT;AAKC,IAAA,WAAW,EAAGd,EAAE,CAAE,oBAAF,CALjB;AAMC,IAAA,cAAc,EAAC,MANhB;AAOC,IAAA,WAAW,EAAG,KAPf;AAQC,IAAA,YAAY,EAAC,KARd;AASC,IAAA,aAAa,EAAKgD,QAAF,IAAgB;AAC/BhB,MAAAA,QAAQ,CAAE;AAAElB,QAAAA,KAAK,EAAEkC,QAAT;AAAmBjB,QAAAA;AAAnB,OAAF,CAAR;AACA,KAXF;AAYC,IAAA,QAAQ,EAAGI;AACX;AAbD;AAcC,IAAA,SAAS,MAdV;AAeC,IAAA,aAAa,EAAC;AAff,KAiBGrB,KAAK,KAAK,EAAV,IACD,cAAC,gBAAD;AACC,IAAA,OAAO,EAAGsB,KADX;AAEC,IAAA,KAAK,EAAGxB,MAAM,CAACqC;AAFhB,KAIC,cAAC,IAAD;AACC,IAAA,IAAI,EAAGzC,kBADR;AAEC,IAAA,IAAI,EAAGgC,SAAS,CAACU,KAFlB;AAGC,IAAA,IAAI,EAAG;AAHR,IAJD,CAlBF,CADD,EA+BG,CAAC,CAAEnB,YAAH,IAAmBA,YAAY,KAAKjB,KAApC,IACD,cAAC,WAAD,CAAa,sBAAb;AACC,IAAA,UAAU,MADX;AAEC,IAAA,kBAAkB,EAAGb,OAAO;AAC3B;AACAD,IAAAA,EAAE,CAAE,iCAAF,CAFyB,EAG3B+B,YAH2B,CAF7B;AAOC,IAAA,UAAU,EAAG;AACZhB,MAAAA,IAAI,EAAE,WADM;AAEZO,MAAAA,GAAG,EAAES,YAFO;AAGZX,MAAAA,aAAa,EAAE;AAHH,KAPd;AAYC,IAAA,YAAY,EAAGc;AAZhB,IAhCF,EA+CG,CAAC,CAAEpB,KAAH,IACD,cAAC,iBAAD;AACC,IAAA,KAAK,EAAGA,KADT;AAEC,IAAA,YAAY,EAAGoB,QAFhB;AAGC,IAAA,WAAW,EAAGD;AAHf,IAhDF,CAND,CADD;AAgEA,CA9GM","sourcesContent":["/**\n * External dependencies\n */\nimport { SafeAreaView, TouchableOpacity, View } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BottomSheet, Icon } from '@wordpress/components';\nimport { getProtocol, isURL, prependHTTP } from '@wordpress/url';\nimport { link, cancelCircleFilled } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport LinkPickerResults from './link-picker-results';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport styles from './styles.scss';\n\n// This creates a search suggestion for adding a url directly.\nexport const createDirectEntry = ( value ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( value )?.toLowerCase() || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( value?.startsWith( '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn {\n\t\tisDirectEntry: true,\n\t\ttitle: value,\n\t\turl: type === 'URL' ? prependHTTP( value ) : value,\n\t\ttype,\n\t};\n};\n\nconst getURLFromClipboard = async () => {\n\tconst text = await Clipboard.getString();\n\treturn !! text && isURL( text ) ? text : '';\n};\n\nexport const LinkPicker = ( {\n\tvalue: initialValue,\n\tonLinkPicked,\n\tonCancel: cancel,\n} ) => {\n\tconst [ { value, clipboardUrl }, setValue ] = useState( {\n\t\tvalue: initialValue,\n\t\tclipboardUrl: '',\n\t} );\n\tconst directEntry = createDirectEntry( value );\n\n\t// The title of a direct entry is displayed as the raw input value, but if we\n\t// are replacing empty text, we want to use the generated url.\n\tconst pickLink = ( { title, url, isDirectEntry } ) => {\n\t\tonLinkPicked( { title: isDirectEntry ? url : title, url } );\n\t};\n\n\tconst onSubmit = () => {\n\t\tpickLink( directEntry );\n\t};\n\n\tconst clear = () => {\n\t\tsetValue( { value: '', clipboardUrl } );\n\t};\n\n\tconst omniCellStyle = usePreferredColorSchemeStyle(\n\t\tstyles.omniCell,\n\t\tstyles.omniCellDark\n\t);\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.icon,\n\t\tstyles.iconDark\n\t);\n\n\tuseEffect( () => {\n\t\tgetURLFromClipboard()\n\t\t\t.then( ( url ) => setValue( { value, clipboardUrl: url } ) )\n\t\t\t.catch( () => setValue( { value, clipboardUrl: '' } ) );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// TODO: Localize the accessibility label.\n\t// TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.\n\treturn (\n\t\t<SafeAreaView style={ styles.safeArea }>\n\t\t\t<NavBar>\n\t\t\t\t<NavBar.DismissButton onPress={ cancel } />\n\t\t\t\t<NavBar.Heading>{ __( 'Link to' ) }</NavBar.Heading>\n\t\t\t\t<NavBar.ApplyButton onPress={ onSubmit } />\n\t\t\t</NavBar>\n\t\t\t<View style={ styles.contentContainer }>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tstyle={ omniCellStyle }\n\t\t\t\t\tvalueStyle={ styles.omniInput }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ __( 'Search or type URL' ) }\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\tonChangeValue={ ( newValue ) => {\n\t\t\t\t\t\tsetValue( { value: newValue, clipboardUrl } );\n\t\t\t\t\t} }\n\t\t\t\t\tonSubmit={ onSubmit }\n\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-autofocus */\n\t\t\t\t\tautoFocus\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t>\n\t\t\t\t\t{ value !== '' && (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={ clear }\n\t\t\t\t\t\t\tstyle={ styles.clearIcon }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ cancelCircleFilled }\n\t\t\t\t\t\t\t\tfill={ iconStyle.color }\n\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) }\n\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t{ !! clipboardUrl && clipboardUrl !== value && (\n\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\taccessible\n\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: Copy URL from the clipboard, https://sample.url */\n\t\t\t\t\t\t\t__( 'Copy URL from the clipboard, %s' ),\n\t\t\t\t\t\t\tclipboardUrl\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsuggestion={ {\n\t\t\t\t\t\t\ttype: 'clipboard',\n\t\t\t\t\t\t\turl: clipboardUrl,\n\t\t\t\t\t\t\tisDirectEntry: true,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! value && (\n\t\t\t\t\t<LinkPickerResults\n\t\t\t\t\t\tquery={ value }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t\tdirectEntry={ directEntry }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</SafeAreaView>\n\t);\n};\n"]}
@@ -108,7 +108,9 @@ export default function LinkPickerResults(_ref) {
108
108
  fetchMoreSuggestions({
109
109
  query,
110
110
  links: [directEntry]
111
- });
111
+ }); // Disable reason: deferring this refactor to the native team.
112
+ // see https://github.com/WordPress/gutenberg/pull/41166
113
+ // eslint-disable-next-line react-hooks/exhaustive-deps
112
114
  }, [query]);
113
115
 
114
116
  const onEndReached = () => fetchMoreSuggestions({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-results.native.js"],"names":["ActivityIndicator","FlatList","View","BottomSheet","BottomSheetConsumer","debounce","useState","useEffect","useRef","useSelect","styles","PER_PAGE","REQUEST_DEBOUNCE_DELAY","MINIMUM_QUERY_SIZE","meetsThreshold","query","length","LinkPickerResults","onLinkPicked","directEntry","links","setLinks","hasAllSuggestions","setHasAllSuggestions","nextPage","pendingRequest","clearRequest","current","fetchMoreSuggestions","select","getSettings","fetchLinkSuggestions","search","__experimentalFetchLinkSuggestions","page","type","perPage","fetchMore","currentSuggestions","request","suggestions","onEndReached","spinner","listProps","item","url","contentContainerStyle","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { ActivityIndicator, FlatList, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet, BottomSheetConsumer } from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nconst PER_PAGE = 20;\nconst REQUEST_DEBOUNCE_DELAY = 400;\nconst MINIMUM_QUERY_SIZE = 2;\nconst meetsThreshold = ( query ) => MINIMUM_QUERY_SIZE <= query.length;\n\nexport default function LinkPickerResults( {\n\tquery,\n\tonLinkPicked,\n\tdirectEntry,\n} ) {\n\tconst [ links, setLinks ] = useState( [ directEntry ] );\n\tconst [ hasAllSuggestions, setHasAllSuggestions ] = useState( false );\n\tconst nextPage = useRef( 1 );\n\tconst pendingRequest = useRef();\n\tconst clearRequest = () => {\n\t\tpendingRequest.current = null;\n\t};\n\n\t// A stable debounced function to fetch suggestions and append.\n\tconst { fetchMoreSuggestions } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( 'core/block-editor' );\n\t\tconst fetchLinkSuggestions = async ( { search } ) => {\n\t\t\tif ( meetsThreshold( search ) ) {\n\t\t\t\treturn await getSettings().__experimentalFetchLinkSuggestions(\n\t\t\t\t\tsearch,\n\t\t\t\t\t{ page: nextPage.current, type: 'post', perPage: PER_PAGE }\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tconst fetchMore = async ( {\n\t\t\tquery: search,\n\t\t\tlinks: currentSuggestions,\n\t\t} ) => {\n\t\t\t// Return early if we've already detected the end of data or we are\n\t\t\t// already awaiting a response.\n\t\t\tif ( hasAllSuggestions || pendingRequest.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst request = fetchLinkSuggestions( { search } );\n\t\t\tpendingRequest.current = request;\n\t\t\tconst suggestions = await request;\n\n\t\t\t// Only update links for the most recent request.\n\t\t\tif ( suggestions && request === pendingRequest.current ) {\n\t\t\t\t// Since we don't have the response header, we check if the results\n\t\t\t\t// are truncated to determine we've reached the end.\n\t\t\t\tif ( suggestions.length < PER_PAGE ) {\n\t\t\t\t\tsetHasAllSuggestions( true );\n\t\t\t\t}\n\t\t\t\tsetLinks( [ ...currentSuggestions, ...suggestions ] );\n\t\t\t\tnextPage.current++;\n\t\t\t}\n\n\t\t\tclearRequest();\n\t\t};\n\t\treturn {\n\t\t\tfetchMoreSuggestions: debounce( fetchMore, REQUEST_DEBOUNCE_DELAY ),\n\t\t};\n\t}, [] );\n\n\t// Prevent setting state when unmounted.\n\tuseEffect( () => clearRequest, [] );\n\n\t// Any time the query changes, we reset pagination.\n\tuseEffect( () => {\n\t\tclearRequest();\n\t\tnextPage.current = 1;\n\t\tsetHasAllSuggestions( false );\n\t\tsetLinks( [ directEntry ] );\n\t\tfetchMoreSuggestions( { query, links: [ directEntry ] } );\n\t}, [ query ] );\n\n\tconst onEndReached = () => fetchMoreSuggestions( { query, links } );\n\n\tconst spinner = ! hasAllSuggestions && meetsThreshold( query ) && (\n\t\t<View style={ styles.spinner }>\n\t\t\t<ActivityIndicator animating />\n\t\t</View>\n\t);\n\n\treturn (\n\t\t<BottomSheetConsumer>\n\t\t\t{ ( { listProps } ) => (\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ links }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\t\tsuggestion={ item }\n\t\t\t\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\tkeyExtractor={ ( { url, type } ) => `${ url }-${ type }` }\n\t\t\t\t\tonEndReached={ onEndReached }\n\t\t\t\t\tonEndReachedThreshold={ 0.1 }\n\t\t\t\t\tinitialNumToRender={ PER_PAGE }\n\t\t\t\t\tListFooterComponent={ spinner }\n\t\t\t\t\t{ ...listProps }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t...listProps.contentContainerStyle,\n\t\t\t\t\t\tstyles.list,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BottomSheetConsumer>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-results.native.js"],"names":["ActivityIndicator","FlatList","View","BottomSheet","BottomSheetConsumer","debounce","useState","useEffect","useRef","useSelect","styles","PER_PAGE","REQUEST_DEBOUNCE_DELAY","MINIMUM_QUERY_SIZE","meetsThreshold","query","length","LinkPickerResults","onLinkPicked","directEntry","links","setLinks","hasAllSuggestions","setHasAllSuggestions","nextPage","pendingRequest","clearRequest","current","fetchMoreSuggestions","select","getSettings","fetchLinkSuggestions","search","__experimentalFetchLinkSuggestions","page","type","perPage","fetchMore","currentSuggestions","request","suggestions","onEndReached","spinner","listProps","item","url","contentContainerStyle","list"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { ActivityIndicator, FlatList, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { BottomSheet, BottomSheetConsumer } from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nconst PER_PAGE = 20;\nconst REQUEST_DEBOUNCE_DELAY = 400;\nconst MINIMUM_QUERY_SIZE = 2;\nconst meetsThreshold = ( query ) => MINIMUM_QUERY_SIZE <= query.length;\n\nexport default function LinkPickerResults( {\n\tquery,\n\tonLinkPicked,\n\tdirectEntry,\n} ) {\n\tconst [ links, setLinks ] = useState( [ directEntry ] );\n\tconst [ hasAllSuggestions, setHasAllSuggestions ] = useState( false );\n\tconst nextPage = useRef( 1 );\n\tconst pendingRequest = useRef();\n\tconst clearRequest = () => {\n\t\tpendingRequest.current = null;\n\t};\n\n\t// A stable debounced function to fetch suggestions and append.\n\tconst { fetchMoreSuggestions } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( 'core/block-editor' );\n\t\tconst fetchLinkSuggestions = async ( { search } ) => {\n\t\t\tif ( meetsThreshold( search ) ) {\n\t\t\t\treturn await getSettings().__experimentalFetchLinkSuggestions(\n\t\t\t\t\tsearch,\n\t\t\t\t\t{ page: nextPage.current, type: 'post', perPage: PER_PAGE }\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tconst fetchMore = async ( {\n\t\t\tquery: search,\n\t\t\tlinks: currentSuggestions,\n\t\t} ) => {\n\t\t\t// Return early if we've already detected the end of data or we are\n\t\t\t// already awaiting a response.\n\t\t\tif ( hasAllSuggestions || pendingRequest.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst request = fetchLinkSuggestions( { search } );\n\t\t\tpendingRequest.current = request;\n\t\t\tconst suggestions = await request;\n\n\t\t\t// Only update links for the most recent request.\n\t\t\tif ( suggestions && request === pendingRequest.current ) {\n\t\t\t\t// Since we don't have the response header, we check if the results\n\t\t\t\t// are truncated to determine we've reached the end.\n\t\t\t\tif ( suggestions.length < PER_PAGE ) {\n\t\t\t\t\tsetHasAllSuggestions( true );\n\t\t\t\t}\n\t\t\t\tsetLinks( [ ...currentSuggestions, ...suggestions ] );\n\t\t\t\tnextPage.current++;\n\t\t\t}\n\n\t\t\tclearRequest();\n\t\t};\n\t\treturn {\n\t\t\tfetchMoreSuggestions: debounce( fetchMore, REQUEST_DEBOUNCE_DELAY ),\n\t\t};\n\t}, [] );\n\n\t// Prevent setting state when unmounted.\n\tuseEffect( () => clearRequest, [] );\n\n\t// Any time the query changes, we reset pagination.\n\tuseEffect( () => {\n\t\tclearRequest();\n\t\tnextPage.current = 1;\n\t\tsetHasAllSuggestions( false );\n\t\tsetLinks( [ directEntry ] );\n\t\tfetchMoreSuggestions( { query, links: [ directEntry ] } );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ query ] );\n\n\tconst onEndReached = () => fetchMoreSuggestions( { query, links } );\n\n\tconst spinner = ! hasAllSuggestions && meetsThreshold( query ) && (\n\t\t<View style={ styles.spinner }>\n\t\t\t<ActivityIndicator animating />\n\t\t</View>\n\t);\n\n\treturn (\n\t\t<BottomSheetConsumer>\n\t\t\t{ ( { listProps } ) => (\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ links }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\t\tsuggestion={ item }\n\t\t\t\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\tkeyExtractor={ ( { url, type } ) => `${ url }-${ type }` }\n\t\t\t\t\tonEndReached={ onEndReached }\n\t\t\t\t\tonEndReachedThreshold={ 0.1 }\n\t\t\t\t\tinitialNumToRender={ PER_PAGE }\n\t\t\t\t\tListFooterComponent={ spinner }\n\t\t\t\t\t{ ...listProps }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t...listProps.contentContainerStyle,\n\t\t\t\t\t\tstyles.list,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BottomSheetConsumer>\n\t);\n}\n"]}
@@ -60,7 +60,9 @@ const LinkPickerScreen = _ref => {
60
60
  value: inputValue,
61
61
  onLinkPicked: onLinkPicked,
62
62
  onCancel: onCancel
63
- });
63
+ }); // Disable reason: deferring this refactor to the native team.
64
+ // see https://github.com/WordPress/gutenberg/pull/41166
65
+ // eslint-disable-next-line react-hooks/exhaustive-deps
64
66
  }, [inputValue]);
65
67
  };
66
68
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-screen.native.js"],"names":["Keyboard","useNavigation","useRoute","useEffect","useMemo","useRef","LinkPicker","LinkPickerScreen","returnScreenName","navigation","route","navigateToLinkTimeoutRef","navigateBackTimeoutRef","onLinkPicked","url","title","dismiss","current","setTimeout","navigate","inputValue","text","onCancel","goBack","clearTimeout","params"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,cAAzB;AACA,SAASC,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,OAApB,EAA6BC,MAA7B,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,IAA3B;;AAEA,MAAMC,gBAAgB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA;AAAF,GAA0B;AACpD,QAAMC,UAAU,GAAGR,aAAa,EAAhC;AACA,QAAMS,KAAK,GAAGR,QAAQ,EAAtB;AACA,QAAMS,wBAAwB,GAAGN,MAAM,CAAE,IAAF,CAAvC;AACA,QAAMO,sBAAsB,GAAGP,MAAM,CAAE,IAAF,CAArC;;AAEA,QAAMQ,YAAY,GAAG,SAAsB;AAAA,QAApB;AAAEC,MAAAA,GAAF;AAAOC,MAAAA;AAAP,KAAoB;AAC1Cf,IAAAA,QAAQ,CAACgB,OAAT;AACAL,IAAAA,wBAAwB,CAACM,OAAzB,GAAmCC,UAAU,CAAE,MAAM;AACpDT,MAAAA,UAAU,CAACU,QAAX,CAAqBX,gBAArB,EAAuC;AACtCY,QAAAA,UAAU,EAAEN,GAD0B;AAEtCO,QAAAA,IAAI,EAAEN;AAFgC,OAAvC;AAIA,KAL4C,EAK1C,GAL0C,CAA7C;AAMA,GARD;;AAUA,QAAMO,QAAQ,GAAG,MAAM;AACtBtB,IAAAA,QAAQ,CAACgB,OAAT;AACAJ,IAAAA,sBAAsB,CAACK,OAAvB,GAAiCC,UAAU,CAAE,MAAM;AAClDT,MAAAA,UAAU,CAACc,MAAX;AACA,KAF0C,EAExC,GAFwC,CAA3C;AAGA,GALD;;AAOApB,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZqB,MAAAA,YAAY,CAAEb,wBAAwB,CAACM,OAA3B,CAAZ;AACAO,MAAAA,YAAY,CAAEZ,sBAAsB,CAACK,OAAzB,CAAZ;AACA,KAHD;AAIA,GALQ,EAKN,EALM,CAAT;AAOA,QAAM;AAAEG,IAAAA;AAAF,MAAiBV,KAAK,CAACe,MAA7B;AACA,SAAOrB,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,UAAD;AACC,MAAA,KAAK,EAAGgB,UADT;AAEC,MAAA,YAAY,EAAGP,YAFhB;AAGC,MAAA,QAAQ,EAAGS;AAHZ,MADD;AAOA,GARa,EAQX,CAAEF,UAAF,CARW,CAAd;AASA,CAxCD;;AA0CA,eAAeb,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { LinkPicker } from './';\n\nconst LinkPickerScreen = ( { returnScreenName } ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( returnScreenName, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-screen.native.js"],"names":["Keyboard","useNavigation","useRoute","useEffect","useMemo","useRef","LinkPicker","LinkPickerScreen","returnScreenName","navigation","route","navigateToLinkTimeoutRef","navigateBackTimeoutRef","onLinkPicked","url","title","dismiss","current","setTimeout","navigate","inputValue","text","onCancel","goBack","clearTimeout","params"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,cAAzB;AACA,SAASC,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,OAApB,EAA6BC,MAA7B,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,IAA3B;;AAEA,MAAMC,gBAAgB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA;AAAF,GAA0B;AACpD,QAAMC,UAAU,GAAGR,aAAa,EAAhC;AACA,QAAMS,KAAK,GAAGR,QAAQ,EAAtB;AACA,QAAMS,wBAAwB,GAAGN,MAAM,CAAE,IAAF,CAAvC;AACA,QAAMO,sBAAsB,GAAGP,MAAM,CAAE,IAAF,CAArC;;AAEA,QAAMQ,YAAY,GAAG,SAAsB;AAAA,QAApB;AAAEC,MAAAA,GAAF;AAAOC,MAAAA;AAAP,KAAoB;AAC1Cf,IAAAA,QAAQ,CAACgB,OAAT;AACAL,IAAAA,wBAAwB,CAACM,OAAzB,GAAmCC,UAAU,CAAE,MAAM;AACpDT,MAAAA,UAAU,CAACU,QAAX,CAAqBX,gBAArB,EAAuC;AACtCY,QAAAA,UAAU,EAAEN,GAD0B;AAEtCO,QAAAA,IAAI,EAAEN;AAFgC,OAAvC;AAIA,KAL4C,EAK1C,GAL0C,CAA7C;AAMA,GARD;;AAUA,QAAMO,QAAQ,GAAG,MAAM;AACtBtB,IAAAA,QAAQ,CAACgB,OAAT;AACAJ,IAAAA,sBAAsB,CAACK,OAAvB,GAAiCC,UAAU,CAAE,MAAM;AAClDT,MAAAA,UAAU,CAACc,MAAX;AACA,KAF0C,EAExC,GAFwC,CAA3C;AAGA,GALD;;AAOApB,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZqB,MAAAA,YAAY,CAAEb,wBAAwB,CAACM,OAA3B,CAAZ;AACAO,MAAAA,YAAY,CAAEZ,sBAAsB,CAACK,OAAzB,CAAZ;AACA,KAHD;AAIA,GALQ,EAKN,EALM,CAAT;AAOA,QAAM;AAAEG,IAAAA;AAAF,MAAiBV,KAAK,CAACe,MAA7B;AACA,SAAOrB,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,UAAD;AACC,MAAA,KAAK,EAAGgB,UADT;AAEC,MAAA,YAAY,EAAGP,YAFhB;AAGC,MAAA,QAAQ,EAAGS;AAHZ,MADD,CADqB,CAQrB;AACA;AACA;AACA,GAXa,EAWX,CAAEF,UAAF,CAXW,CAAd;AAYA,CA3CD;;AA6CA,eAAeb,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { LinkPicker } from './';\n\nconst LinkPickerScreen = ( { returnScreenName } ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( returnScreenName, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"]}
@@ -98,7 +98,10 @@ function LinkSettings(_ref) {
98
98
  useEffect(() => {
99
99
  if (onHandleClosingBottomSheet) {
100
100
  onHandleClosingBottomSheet(onCloseSettingsSheet);
101
- }
101
+ } // Disable reason: deferring this refactor to the native team.
102
+ // see https://github.com/WordPress/gutenberg/pull/41166
103
+ // eslint-disable-next-line react-hooks/exhaustive-deps
104
+
102
105
  }, [urlInputValue, labelInputValue, linkRelInputValue]);
103
106
  useEffect(() => {
104
107
  prevEditorSidebarOpenedRef.current = editorSidebarOpened;
@@ -107,7 +110,10 @@ function LinkSettings(_ref) {
107
110
  useEffect(() => {
108
111
  if (url !== urlInputValue) {
109
112
  setUrlInputValue(url || '');
110
- }
113
+ } // Disable reason: deferring this refactor to the native team.
114
+ // see https://github.com/WordPress/gutenberg/pull/41166
115
+ // eslint-disable-next-line react-hooks/exhaustive-deps
116
+
111
117
  }, [url]);
112
118
  useEffect(() => {
113
119
  setLabelInputValue(label || '');
@@ -128,7 +134,10 @@ function LinkSettings(_ref) {
128
134
 
129
135
  if (prevEditorSidebarOpened && !editorSidebarOpened) {
130
136
  onSetAttributes();
131
- }
137
+ } // Disable reason: deferring this refactor to the native team.
138
+ // see https://github.com/WordPress/gutenberg/pull/41166
139
+ // eslint-disable-next-line react-hooks/exhaustive-deps
140
+
132
141
  }, [editorSidebarOpened, isVisible]);
133
142
  useEffect(() => {
134
143
  if (!urlValue && onEmptyURL) {
@@ -139,7 +148,10 @@ function LinkSettings(_ref) {
139
148
  setAttributes({
140
149
  url: prependHTTP(urlValue)
141
150
  });
142
- }
151
+ } // Disable reason: deferring this refactor to the native team.
152
+ // see https://github.com/WordPress/gutenberg/pull/41166
153
+ // eslint-disable-next-line react-hooks/exhaustive-deps
154
+
143
155
  }, [urlValue]);
144
156
  const onChangeURL = useCallback(value => {
145
157
  if (!value && onEmptyURL) {
@@ -160,7 +172,10 @@ function LinkSettings(_ref) {
160
172
  label: labelInputValue,
161
173
  rel: linkRelInputValue
162
174
  });
163
- }
175
+ } // Disable reason: deferring this refactor to the native team.
176
+ // see https://github.com/WordPress/gutenberg/pull/41166
177
+ // eslint-disable-next-line react-hooks/exhaustive-deps
178
+
164
179
  }, [urlInputValue, labelInputValue, linkRelInputValue, setAttributes]);
165
180
  const onCloseSettingsSheet = useCallback(() => {
166
181
  if (onCloseSettingsSheetConsumed.current) {
@@ -188,7 +203,10 @@ function LinkSettings(_ref) {
188
203
  linkTarget: newLinkTarget,
189
204
  rel: updatedRel
190
205
  });
191
- }, [linkRelInputValue]);
206
+ }, // Disable reason: deferring this refactor to the native team.
207
+ // see https://github.com/WordPress/gutenberg/pull/41166
208
+ // eslint-disable-next-line react-hooks/exhaustive-deps
209
+ [linkRelInputValue]);
192
210
  const onChangeLinkRel = useCallback(value => {
193
211
  setLinkRelInputValue(value);
194
212
  }, []);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["Platform","Clipboard","compose","withSelect","isURL","prependHTTP","useEffect","useState","useRef","useContext","useCallback","link","external","BottomSheet","BottomSheetContext","PanelBody","TextControl","ToggleControl","FooterMessageControl","PanelActions","LinkRelIcon","styles","NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","onCloseSettingsSheetConsumed","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","getString","getSettings","valueMask","placeholder","OS","autoFocus","linkLabel","openInNewTab","linkRel","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst onCloseSettingsSheetConsumed = useRef( false );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( isSettingSheetOpen ) {\n\t\t\tonCloseSettingsSheetConsumed.current = false;\n\t\t}\n\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tif ( onCloseSettingsSheetConsumed.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCloseSettingsSheetConsumed.current = true;\n\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL.\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["Platform","Clipboard","compose","withSelect","isURL","prependHTTP","useEffect","useState","useRef","useContext","useCallback","link","external","BottomSheet","BottomSheetContext","PanelBody","TextControl","ToggleControl","FooterMessageControl","PanelActions","LinkRelIcon","styles","NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","onCloseSettingsSheetConsumed","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","getString","getSettings","valueMask","placeholder","OS","autoFocus","linkLabel","openInNewTab","linkRel","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,cAAzB;AACA,OAAOC,SAAP,MAAsB,mCAAtB;AACA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAT,EAAgBC,WAAhB,QAAmC,gBAAnC;AACA,SACCC,SADD,EAECC,QAFD,EAGCC,MAHD,EAICC,UAJD,EAKCC,WALD,QAMO,oBANP;AAOA,SAASC,IAAT,EAAeC,QAAf,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,SAASC,kBAAT,QAAmC,sCAAnC;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AACA,OAAOC,WAAP,MAAwB,oBAAxB;AACA,OAAOC,aAAP,MAA0B,sBAA1B;AACA,OAAOC,oBAAP,MAAiC,8BAAjC;AACA,OAAOC,YAAP,MAAyB,qBAAzB;AACA,OAAOC,WAAP,MAAwB,YAAxB;AAEA,OAAOC,MAAP,MAAmB,cAAnB;AAEA,MAAMC,WAAW,GAAG,qBAApB;;AACA,SAASC,YAAT,OAwDI;AAAA,MAxDmB;AACtB;AACAC,IAAAA,SAFsB;AAGtB;AACAC,IAAAA,OAJsB;AAKtB;AACAC,IAAAA,aANsB;AAOtB;AACAC,IAAAA,UARsB;AAStB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OA9BsB;AA+BtB;AACAC,IAAAA,eAhCsB;AAiCtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OA5CsB;AA6CtB;AACAC,IAAAA,mBA9CsB;AA+CtB;AACAC,IAAAA,QAhDsB;AAiDtBC,IAAAA,iBAjDsB;AAkDtBC,IAAAA,QAlDsB;AAmDtB;AACAC,IAAAA,GApDsB;AAqDtBC,IAAAA,KAAK,GAAG,EArDc;AAsDtBC,IAAAA,UAtDsB;AAuDtBC,IAAAA,GAAG,GAAG;AAvDgB,GAwDnB;AACH,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsCjC,QAAQ,CAAE,EAAF,CAApD;AACA,QAAM,CAAEkC,eAAF,EAAmBC,kBAAnB,IAA0CnC,QAAQ,CAAE,EAAF,CAAxD;AACA,QAAM,CAAEoC,iBAAF,EAAqBC,oBAArB,IAA8CrC,QAAQ,CAAE,EAAF,CAA5D;AACA,QAAMsC,4BAA4B,GAAGrC,MAAM,CAAE,KAAF,CAA3C;AACA,QAAMsC,0BAA0B,GAAGtC,MAAM,EAAzC;AAEA,QAAM;AAAEuC,IAAAA;AAAF,MAAiCtC,UAAU,CAAEK,kBAAF,CAAjD;AACAR,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKyC,0BAAL,EAAkC;AACjCA,MAAAA,0BAA0B,CAAEC,oBAAF,CAA1B;AACA,KAHe,CAIhB;AACA;AACA;;AACA,GAPQ,EAON,CAAET,aAAF,EAAiBE,eAAjB,EAAkCE,iBAAlC,CAPM,CAAT;AASArC,EAAAA,SAAS,CAAE,MAAM;AAChBwC,IAAAA,0BAA0B,CAACG,OAA3B,GAAqClB,mBAArC;AACA,GAFQ,CAAT;AAGA,QAAMmB,uBAAuB,GAAGJ,0BAA0B,CAACG,OAA3D;AAEA3C,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK6B,GAAG,KAAKI,aAAb,EAA6B;AAC5BC,MAAAA,gBAAgB,CAAEL,GAAG,IAAI,EAAT,CAAhB;AACA,KAHe,CAIhB;AACA;AACA;;AACA,GAPQ,EAON,CAAEA,GAAF,CAPM,CAAT;AASA7B,EAAAA,SAAS,CAAE,MAAM;AAChBoC,IAAAA,kBAAkB,CAAEN,KAAK,IAAI,EAAX,CAAlB;AACA,GAFQ,EAEN,CAAEA,KAAF,CAFM,CAAT;AAIA9B,EAAAA,SAAS,CAAE,MAAM;AAChBsC,IAAAA,oBAAoB,CAAEN,GAAG,IAAI,EAAT,CAApB;AACA,GAFQ,EAEN,CAAEA,GAAF,CAFM,CAAT;AAIAhC,EAAAA,SAAS,CAAE,MAAM;AAChB,UAAM6C,kBAAkB,GAAG3B,SAAS,IAAIO,mBAAxC;;AACA,QAAKoB,kBAAL,EAA0B;AACzBN,MAAAA,4BAA4B,CAACI,OAA7B,GAAuC,KAAvC;AACA;;AAED,QAAKrB,OAAO,CAACO,GAAR,CAAYiB,QAAZ,IAAwBD,kBAAxB,IAA8C,CAAEhB,GAArD,EAA2D;AAC1DkB,MAAAA,mBAAmB;AACnB;;AAED,QAAKH,uBAAuB,IAAI,CAAEnB,mBAAlC,EAAwD;AACvDuB,MAAAA,eAAe;AACf,KAZe,CAahB;AACA;AACA;;AACA,GAhBQ,EAgBN,CAAEvB,mBAAF,EAAuBP,SAAvB,CAhBM,CAAT;AAkBAlB,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE4B,QAAF,IAAcP,UAAnB,EAAgC;AAC/BA,MAAAA,UAAU;AACV;;AAED,QAAKtB,WAAW,CAAE6B,QAAF,CAAX,KAA4BC,GAAjC,EAAuC;AACtCT,MAAAA,aAAa,CAAE;AACdS,QAAAA,GAAG,EAAE9B,WAAW,CAAE6B,QAAF;AADF,OAAF,CAAb;AAGA,KATe,CAUhB;AACA;AACA;;AACA,GAbQ,EAaN,CAAEA,QAAF,CAbM,CAAT;AAeA,QAAMqB,WAAW,GAAG7C,WAAW,CAC5B8C,KAAF,IAAa;AACZ,QAAK,CAAEA,KAAF,IAAW7B,UAAhB,EAA6B;AAC5BA,MAAAA,UAAU;AACV;;AACDa,IAAAA,gBAAgB,CAAEgB,KAAF,CAAhB;AACA,GAN6B,EAO9B,CAAE7B,UAAF,CAP8B,CAA/B;AAUA,QAAM8B,aAAa,GAAG/C,WAAW,CAAI8C,KAAF,IAAa;AAC/Cd,IAAAA,kBAAkB,CAAEc,KAAF,CAAlB;AACA,GAFgC,EAE9B,EAF8B,CAAjC;AAIA,QAAMF,eAAe,GAAG5C,WAAW,CAAE,MAAM;AAC1C,UAAMgD,MAAM,GAAGrD,WAAW,CAAEkC,aAAF,CAA1B;;AACA,QACCJ,GAAG,KAAKuB,MAAR,IACAjB,eAAe,KAAKL,KADpB,IAEAO,iBAAiB,KAAKL,GAHvB,EAIE;AACDZ,MAAAA,aAAa,CAAE;AACdS,QAAAA,GAAG,EAAEuB,MADS;AAEdtB,QAAAA,KAAK,EAAEK,eAFO;AAGdH,QAAAA,GAAG,EAAEK;AAHS,OAAF,CAAb;AAKA,KAZyC,CAa1C;AACA;AACA;;AACA,GAhBkC,EAgBhC,CAAEJ,aAAF,EAAiBE,eAAjB,EAAkCE,iBAAlC,EAAqDjB,aAArD,CAhBgC,CAAnC;AAkBA,QAAMsB,oBAAoB,GAAGtC,WAAW,CAAE,MAAM;AAC/C,QAAKmC,4BAA4B,CAACI,OAAlC,EAA4C;AAC3C;AACA;;AAEDJ,IAAAA,4BAA4B,CAACI,OAA7B,GAAuC,IAAvC;AAEAK,IAAAA,eAAe;;AAEf,QAAK7B,OAAL,EAAe;AACdA,MAAAA,OAAO;AACP;AACD,GAZuC,EAYrC,CAAEA,OAAF,EAAW6B,eAAX,CAZqC,CAAxC;AAcA,QAAMK,oBAAoB,GAAGjD,WAAW,CACrC8C,KAAF,IAAa;AACZ,UAAMI,aAAa,GAAGJ,KAAK,GAAG,QAAH,GAAcK,SAAzC;AAEA,QAAIC,UAAU,GAAGnB,iBAAjB;;AACA,QAAKiB,aAAa,IAAI,CAAEjB,iBAAxB,EAA4C;AAC3CmB,MAAAA,UAAU,GAAGxC,WAAb;AACA,KAFD,MAEO,IAAK,CAAEsC,aAAF,IAAmBjB,iBAAiB,KAAKrB,WAA9C,EAA4D;AAClEwC,MAAAA,UAAU,GAAGD,SAAb;AACA;;AAEDnC,IAAAA,aAAa,CAAE;AACdW,MAAAA,UAAU,EAAEuB,aADE;AAEdtB,MAAAA,GAAG,EAAEwB;AAFS,KAAF,CAAb;AAIA,GAfsC,EAgBvC;AACA;AACA;AACA,GAAEnB,iBAAF,CAnBuC,CAAxC;AAsBA,QAAMoB,eAAe,GAAGrD,WAAW,CAAI8C,KAAF,IAAa;AACjDZ,IAAAA,oBAAoB,CAAEY,KAAF,CAApB;AACA,GAFkC,EAEhC,EAFgC,CAAnC;;AAIA,iBAAeH,mBAAf,GAAqC;AACpC,UAAMW,aAAa,GAAG,MAAM/D,SAAS,CAACgE,SAAV,EAA5B;;AAEA,QAAK,CAAED,aAAP,EAAuB;AACtB;AACA,KALmC,CAMpC;;;AACA,QAAK,CAAE5D,KAAK,CAAE4D,aAAF,CAAZ,EAAgC;AAC/B;AACA;;AAEDtC,IAAAA,aAAa,CAAE;AAAES,MAAAA,GAAG,EAAE6B;AAAP,KAAF,CAAb;AACA;;AAED,WAASE,WAAT,GAAuB;AACtB,WACC,8BACGtC,OAAO,CAACO,GAAR,KACCF,iBAAiB,GAClB,cAAC,WAAD,CAAa,QAAb;AACC,MAAA,QAAQ,EAAGD,QADZ;AAEC,MAAA,KAAK,EAAGG,GAFT;AAGC,MAAA,SAAS,EAAGP,OAAO,CAACO,GAAR,CAAYgC,SAHzB;AAIC,MAAA,OAAO,EAAGlC;AAJX,MADkB,GAQlB,cAAC,WAAD;AACC,MAAA,IAAI,EAAGD,QAAQ,IAAIrB,IADpB;AAEC,MAAA,KAAK,EAAGiB,OAAO,CAACO,GAAR,CAAYC,KAFrB;AAGC,MAAA,KAAK,EAAGG,aAHT;AAIC,MAAA,gBAAgB,EAAGX,OAAO,CAACO,GAAR,CAAYiC,WAJhC;AAKC,MAAA,QAAQ,EAAGb,WALZ;AAMC,MAAA,QAAQ,EAAGP,oBANZ;AAOC,MAAA,cAAc,EAAC,MAPhB;AAQC,MAAA,WAAW,EAAG,KARf,CASC;AATD;AAUC,MAAA,SAAS,EACRhD,QAAQ,CAACqE,EAAT,KAAgB,KAAhB,IAAyBzC,OAAO,CAACO,GAAR,CAAYmC,SAXvC;AAaC,MAAA,YAAY,EAAC;AAbd,MATA,CADH,EA0BG1C,OAAO,CAAC2C,SAAR,IACD,cAAC,WAAD;AACC,MAAA,KAAK,EAAG3C,OAAO,CAAC2C,SAAR,CAAkBnC,KAD3B;AAEC,MAAA,KAAK,EAAGK,eAFT;AAGC,MAAA,gBAAgB,EAAGb,OAAO,CAAC2C,SAAR,CAAkBH,WAHtC;AAIC,MAAA,QAAQ,EAAGX;AAJZ,MA3BF,EAkCG,CAAC,CAAElB,aAAH,IACD,8BACGX,OAAO,CAAC4C,YAAR,IACD,cAAC,aAAD;AACC,MAAA,IAAI,EAAGxC,QAAQ,IAAIpB,QADpB;AAEC,MAAA,KAAK,EAAGgB,OAAO,CAAC4C,YAAR,CAAqBpC,KAF9B;AAGC,MAAA,OAAO,EAAGC,UAAU,KAAK,QAH1B;AAIC,MAAA,QAAQ,EAAGsB;AAJZ,MAFF,EASG/B,OAAO,CAAC6C,OAAR,IACD,cAAC,WAAD;AACC,MAAA,IAAI,EAAGzC,QAAQ,IAAIZ,WADpB;AAEC,MAAA,KAAK,EAAGQ,OAAO,CAAC6C,OAAR,CAAgBrC,KAFzB;AAGC,MAAA,KAAK,EAAGO,iBAHT;AAIC,MAAA,gBAAgB,EAAGf,OAAO,CAAC6C,OAAR,CAAgBL,WAJpC;AAKC,MAAA,QAAQ,EAAGL,eALZ;AAMC,MAAA,QAAQ,EAAGf,oBANZ;AAOC,MAAA,cAAc,EAAC,MAPhB;AAQC,MAAA,WAAW,EAAG,KARf;AASC,MAAA,YAAY,EAAC;AATd,MAVF,CAnCF,CADD;AA8DA;;AAED,MAAK,CAAEnB,eAAP,EAAyB;AACxB,WAAOqC,WAAW,EAAlB;AACA;;AAED,SACC,8BACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG7C,MAAM,CAACqD;AAA1B,KACGR,WAAW,EADd,CADD,EAIGtC,OAAO,CAAC+C,MAAR,IACD,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGtD,MAAM,CAACqD;AAA1B,KACC,cAAC,oBAAD;AACC,IAAA,KAAK,EAAG9C,OAAO,CAAC+C,MAAR,CAAevC,KADxB;AAEC,IAAA,aAAa,EAAGR,OAAO,CAAC+C,MAAR,CAAeC;AAFhC,IADD,CALF,EAYG9C,OAAO,IAAI,cAAC,YAAD;AAAc,IAAA,OAAO,EAAGA;AAAxB,IAZd,CADD;AAgBA;;AAED,eAAe5B,OAAO,CAAE,CACvBC,UAAU,CAAI0E,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA;AAAF,MAA4BD,MAAM,CAAE,gBAAF,CAAxC;AACA,SAAO;AACN9C,IAAAA,mBAAmB,EAAE+C,qBAAqB;AADpC,GAAP;AAGA,CALS,CADa,CAAF,CAAP,CAOVvD,YAPU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst onCloseSettingsSheetConsumed = useRef( false );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( isSettingSheetOpen ) {\n\t\t\tonCloseSettingsSheetConsumed.current = false;\n\t\t}\n\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tif ( onCloseSettingsSheetConsumed.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCloseSettingsSheetConsumed.current = true;\n\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL.\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
@@ -42,7 +42,9 @@ const LinkSettingsScreen = props => {
42
42
  return createElement(LinkSettings, _extends({}, props, {
43
43
  onLinkCellPressed: props.hasPicker ? onLinkCellPressed : undefined,
44
44
  urlValue: inputValue
45
- }));
45
+ })); // Disable reason: deferring this refactor to the native team.
46
+ // see https://github.com/WordPress/gutenberg/pull/41166
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
48
  }, [props, inputValue, navigation, route]);
47
49
  };
48
50
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-screen.native.js"],"names":["useNavigation","useRoute","useMemo","LinkSettings","LinkSettingsScreen","props","navigation","route","url","inputValue","params","onLinkCellPressed","navigate","hasPicker","undefined"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,IAAzB;;AAEA,MAAMC,kBAAkB,GAAKC,KAAF,IAAa;AACvC,QAAMC,UAAU,GAAGN,aAAa,EAAhC;AACA,QAAMO,KAAK,GAAGN,QAAQ,EAAtB;AACA,QAAM;AAAEO,IAAAA,GAAG,GAAG;AAAR,MAAeH,KAArB;AACA,QAAM;AAAEI,IAAAA,UAAU,GAAGD;AAAf,MAAuBD,KAAK,CAACG,MAAN,IAAgB,EAA7C;;AAEA,QAAMC,iBAAiB,GAAG,MAAM;AAC/B,QAAKN,KAAK,CAACM,iBAAX,EAA+B;AAC9BN,MAAAA,KAAK,CAACM,iBAAN,CAAyB;AAAEL,QAAAA;AAAF,OAAzB;AACA,KAFD,MAEO;AACNA,MAAAA,UAAU,CAACM,QAAX,CAAqB,YAArB,EAAmC;AAAEH,QAAAA;AAAF,OAAnC;AACA;AACD,GAND;;AAQA,SAAOP,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,YAAD,eACMG,KADN;AAEC,MAAA,iBAAiB,EAChBA,KAAK,CAACQ,SAAN,GAAkBF,iBAAlB,GAAsCG,SAHxC;AAKC,MAAA,QAAQ,EAAGL;AALZ,OADD;AASA,GAVa,EAUX,CAAEJ,KAAF,EAASI,UAAT,EAAqBH,UAArB,EAAiCC,KAAjC,CAVW,CAAd;AAWA,CAzBD;;AA2BA,eAAeH,kBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkSettings from './';\n\nconst LinkSettingsScreen = ( props ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { url = '' } = props;\n\tconst { inputValue = url } = route.params || {};\n\n\tconst onLinkCellPressed = () => {\n\t\tif ( props.onLinkCellPressed ) {\n\t\t\tprops.onLinkCellPressed( { navigation } );\n\t\t} else {\n\t\t\tnavigation.navigate( 'linkPicker', { inputValue } );\n\t\t}\n\t};\n\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkSettings\n\t\t\t\t{ ...props }\n\t\t\t\tonLinkCellPressed={\n\t\t\t\t\tprops.hasPicker ? onLinkCellPressed : undefined\n\t\t\t\t}\n\t\t\t\turlValue={ inputValue }\n\t\t\t/>\n\t\t);\n\t}, [ props, inputValue, navigation, route ] );\n};\n\nexport default LinkSettingsScreen;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-screen.native.js"],"names":["useNavigation","useRoute","useMemo","LinkSettings","LinkSettingsScreen","props","navigation","route","url","inputValue","params","onLinkCellPressed","navigate","hasPicker","undefined"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,IAAzB;;AAEA,MAAMC,kBAAkB,GAAKC,KAAF,IAAa;AACvC,QAAMC,UAAU,GAAGN,aAAa,EAAhC;AACA,QAAMO,KAAK,GAAGN,QAAQ,EAAtB;AACA,QAAM;AAAEO,IAAAA,GAAG,GAAG;AAAR,MAAeH,KAArB;AACA,QAAM;AAAEI,IAAAA,UAAU,GAAGD;AAAf,MAAuBD,KAAK,CAACG,MAAN,IAAgB,EAA7C;;AAEA,QAAMC,iBAAiB,GAAG,MAAM;AAC/B,QAAKN,KAAK,CAACM,iBAAX,EAA+B;AAC9BN,MAAAA,KAAK,CAACM,iBAAN,CAAyB;AAAEL,QAAAA;AAAF,OAAzB;AACA,KAFD,MAEO;AACNA,MAAAA,UAAU,CAACM,QAAX,CAAqB,YAArB,EAAmC;AAAEH,QAAAA;AAAF,OAAnC;AACA;AACD,GAND;;AAQA,SAAOP,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,YAAD,eACMG,KADN;AAEC,MAAA,iBAAiB,EAChBA,KAAK,CAACQ,SAAN,GAAkBF,iBAAlB,GAAsCG,SAHxC;AAKC,MAAA,QAAQ,EAAGL;AALZ,OADD,CADqB,CAUrB;AACA;AACA;AACA,GAba,EAaX,CAAEJ,KAAF,EAASI,UAAT,EAAqBH,UAArB,EAAiCC,KAAjC,CAbW,CAAd;AAcA,CA5BD;;AA8BA,eAAeH,kBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkSettings from './';\n\nconst LinkSettingsScreen = ( props ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { url = '' } = props;\n\tconst { inputValue = url } = route.params || {};\n\n\tconst onLinkCellPressed = () => {\n\t\tif ( props.onLinkCellPressed ) {\n\t\t\tprops.onLinkCellPressed( { navigation } );\n\t\t} else {\n\t\t\tnavigation.navigate( 'linkPicker', { inputValue } );\n\t\t}\n\t};\n\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkSettings\n\t\t\t\t{ ...props }\n\t\t\t\tonLinkCellPressed={\n\t\t\t\t\tprops.hasPicker ? onLinkCellPressed : undefined\n\t\t\t\t}\n\t\t\t\turlValue={ inputValue }\n\t\t\t/>\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ props, inputValue, navigation, route ] );\n};\n\nexport default LinkSettingsScreen;\n"]}
@@ -65,10 +65,14 @@ const SegmentedControls = _ref2 => {
65
65
  const [positionAnimationValue] = useState(new Animated.Value(0));
66
66
  useEffect(() => {
67
67
  setActiveSegmentIndex(selectedSegmentIndex);
68
- segmentHandler(segments[selectedSegmentIndex]);
68
+ segmentHandler(segments[selectedSegmentIndex]); // Disable reason: deferring this refactor to the native team.
69
+ // see https://github.com/WordPress/gutenberg/pull/41166
70
+ // eslint-disable-next-line react-hooks/exhaustive-deps
69
71
  }, []);
70
72
  useEffect(() => {
71
- positionAnimationValue.setValue(calculateEndValue(activeSegmentIndex));
73
+ positionAnimationValue.setValue(calculateEndValue(activeSegmentIndex)); // Disable reason: deferring this refactor to the native team.
74
+ // see https://github.com/WordPress/gutenberg/pull/41166
75
+ // eslint-disable-next-line react-hooks/exhaustive-deps
72
76
  }, [segmentsDimensions]);
73
77
  const containerStyle = usePreferredColorSchemeStyle(styles.container, styles.containerDark);
74
78
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"names":["View","TouchableWithoutFeedback","Text","Platform","Animated","Easing","useState","useEffect","usePreferredColorSchemeStyle","performLayoutAnimation","styles","ANIMATION_DURATION","isIOS","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","length","left"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ].width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ].height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"names":["View","TouchableWithoutFeedback","Text","Platform","Animated","Easing","useState","useEffect","usePreferredColorSchemeStyle","performLayoutAnimation","styles","ANIMATION_DURATION","isIOS","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","length","left"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ].width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ].height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"]}
@@ -79,7 +79,9 @@ const useConvertUnitToMobile = (value, unit) => {
79
79
  const dimensionsChangeSubscription = Dimensions.addEventListener('change', onDimensionsChange);
80
80
  return () => {
81
81
  dimensionsChangeSubscription.remove();
82
- };
82
+ }; // Disable reason: deferring this refactor to the native team.
83
+ // see https://github.com/WordPress/gutenberg/pull/41166
84
+ // eslint-disable-next-line react-hooks/exhaustive-deps
83
85
  }, []);
84
86
  const onDimensionsChange = useCallback(_ref2 => {
85
87
  let {
@@ -92,7 +94,9 @@ const useConvertUnitToMobile = (value, unit) => {
92
94
  valueToConvert,
93
95
  valueUnit
94
96
  } = getValueAndUnit(value, unit) || {};
95
- return convertUnitToMobile(windowSizes, styles, valueToConvert, valueUnit);
97
+ return convertUnitToMobile(windowSizes, styles, valueToConvert, valueUnit); // Disable reason: deferring this refactor to the native team.
98
+ // see https://github.com/WordPress/gutenberg/pull/41166
99
+ // eslint-disable-next-line react-hooks/exhaustive-deps
96
100
  }, [windowSizes, value, unit]);
97
101
  };
98
102