@wordpress/components 21.1.0 → 21.2.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 (309) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/border-box-control/utils.js +42 -2
  3. package/build/border-box-control/utils.js.map +1 -1
  4. package/build/combobox-control/index.js +0 -1
  5. package/build/combobox-control/index.js.map +1 -1
  6. package/build/custom-select-control/index.js +4 -2
  7. package/build/custom-select-control/index.js.map +1 -1
  8. package/build/draggable/index.js +3 -6
  9. package/build/draggable/index.js.map +1 -1
  10. package/build/font-size-picker/index.js +46 -55
  11. package/build/font-size-picker/index.js.map +1 -1
  12. package/build/font-size-picker/styles.js +73 -0
  13. package/build/font-size-picker/styles.js.map +1 -0
  14. package/build/font-size-picker/types.js +6 -0
  15. package/build/font-size-picker/types.js.map +1 -0
  16. package/build/font-size-picker/utils.js +17 -15
  17. package/build/font-size-picker/utils.js.map +1 -1
  18. package/build/form-token-field/token-input.js +20 -1
  19. package/build/form-token-field/token-input.js.map +1 -1
  20. package/build/index.js +12 -0
  21. package/build/index.js.map +1 -1
  22. package/build/menu-item/index.js +4 -3
  23. package/build/menu-item/index.js.map +1 -1
  24. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +10 -3
  25. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  26. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +12 -3
  27. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  28. package/build/mobile/bottom-sheet/sub-sheet/index.native.js +4 -1
  29. package/build/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
  30. package/build/mobile/color-settings/index.native.js +3 -1
  31. package/build/mobile/color-settings/index.native.js.map +1 -1
  32. package/build/mobile/color-settings/picker-screen.native.js +3 -1
  33. package/build/mobile/color-settings/picker-screen.native.js.map +1 -1
  34. package/build/mobile/image/index.native.js +3 -1
  35. package/build/mobile/image/index.native.js.map +1 -1
  36. package/build/mobile/keyboard-avoiding-view/index.ios.js +3 -1
  37. package/build/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
  38. package/build/mobile/link-picker/index.native.js +3 -1
  39. package/build/mobile/link-picker/index.native.js.map +1 -1
  40. package/build/mobile/link-picker/link-picker-results.native.js +3 -1
  41. package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
  42. package/build/mobile/link-picker/link-picker-screen.native.js +3 -1
  43. package/build/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  44. package/build/mobile/link-settings/index.native.js +24 -6
  45. package/build/mobile/link-settings/index.native.js.map +1 -1
  46. package/build/mobile/link-settings/link-settings-screen.native.js +3 -1
  47. package/build/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  48. package/build/mobile/segmented-control/index.native.js +6 -2
  49. package/build/mobile/segmented-control/index.native.js.map +1 -1
  50. package/build/mobile/utils/use-unit-converter-to-mobile.native.js +6 -2
  51. package/build/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  52. package/build/navigator/navigator-screen/component.js +8 -1
  53. package/build/navigator/navigator-screen/component.js.map +1 -1
  54. package/build/notice/index.native.js +15 -19
  55. package/build/notice/index.native.js.map +1 -1
  56. package/build/notice/list.native.js +2 -3
  57. package/build/notice/list.native.js.map +1 -1
  58. package/build/palette-edit/index.js +1 -1
  59. package/build/palette-edit/index.js.map +1 -1
  60. package/build/popover/index.js +29 -32
  61. package/build/popover/index.js.map +1 -1
  62. package/build/popover/limit-shift.js +145 -0
  63. package/build/popover/limit-shift.js.map +1 -0
  64. package/build/popover/utils.js +55 -15
  65. package/build/popover/utils.js.map +1 -1
  66. package/build/resizable-box/resize-tooltip/utils.js +12 -14
  67. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  68. package/build/sandbox/index.js +13 -8
  69. package/build/sandbox/index.js.map +1 -1
  70. package/build/sandbox/index.native.js +3 -1
  71. package/build/sandbox/index.native.js.map +1 -1
  72. package/build/search-control/index.native.js +6 -2
  73. package/build/search-control/index.native.js.map +1 -1
  74. package/build/slot-fill/bubbles-virtually/slot-fill-context.js +8 -2
  75. package/build/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
  76. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +31 -41
  77. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  78. package/build/slot-fill/bubbles-virtually/use-slot-fills.js +39 -0
  79. package/build/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -0
  80. package/build/slot-fill/bubbles-virtually/use-slot.js +13 -4
  81. package/build/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
  82. package/build/slot-fill/index.js +8 -0
  83. package/build/slot-fill/index.js.map +1 -1
  84. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +8 -8
  85. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  86. package/build/tools-panel/styles.js +27 -12
  87. package/build/tools-panel/styles.js.map +1 -1
  88. package/build/tools-panel/tools-panel-header/component.js +19 -6
  89. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  90. package/build/tools-panel/tools-panel-header/hook.js +4 -0
  91. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  92. package/build-module/border-box-control/utils.js +36 -1
  93. package/build-module/border-box-control/utils.js.map +1 -1
  94. package/build-module/combobox-control/index.js +0 -1
  95. package/build-module/combobox-control/index.js.map +1 -1
  96. package/build-module/custom-select-control/index.js +2 -1
  97. package/build-module/custom-select-control/index.js.map +1 -1
  98. package/build-module/draggable/index.js +2 -5
  99. package/build-module/draggable/index.js.map +1 -1
  100. package/build-module/font-size-picker/index.js +45 -53
  101. package/build-module/font-size-picker/index.js.map +1 -1
  102. package/build-module/font-size-picker/styles.js +62 -0
  103. package/build-module/font-size-picker/styles.js.map +1 -0
  104. package/build-module/font-size-picker/types.js +2 -0
  105. package/build-module/font-size-picker/types.js.map +1 -0
  106. package/build-module/font-size-picker/utils.js +21 -15
  107. package/build-module/font-size-picker/utils.js.map +1 -1
  108. package/build-module/form-token-field/token-input.js +21 -2
  109. package/build-module/form-token-field/token-input.js.map +1 -1
  110. package/build-module/index.js +2 -2
  111. package/build-module/index.js.map +1 -1
  112. package/build-module/menu-item/index.js +4 -3
  113. package/build-module/menu-item/index.js.map +1 -1
  114. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +10 -3
  115. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  116. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +12 -3
  117. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  118. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js +4 -1
  119. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
  120. package/build-module/mobile/color-settings/index.native.js +3 -1
  121. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  122. package/build-module/mobile/color-settings/picker-screen.native.js +3 -1
  123. package/build-module/mobile/color-settings/picker-screen.native.js.map +1 -1
  124. package/build-module/mobile/image/index.native.js +3 -1
  125. package/build-module/mobile/image/index.native.js.map +1 -1
  126. package/build-module/mobile/keyboard-avoiding-view/index.ios.js +3 -1
  127. package/build-module/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
  128. package/build-module/mobile/link-picker/index.native.js +3 -1
  129. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  130. package/build-module/mobile/link-picker/link-picker-results.native.js +3 -1
  131. package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
  132. package/build-module/mobile/link-picker/link-picker-screen.native.js +3 -1
  133. package/build-module/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  134. package/build-module/mobile/link-settings/index.native.js +24 -6
  135. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  136. package/build-module/mobile/link-settings/link-settings-screen.native.js +3 -1
  137. package/build-module/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  138. package/build-module/mobile/segmented-control/index.native.js +6 -2
  139. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  140. package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js +6 -2
  141. package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  142. package/build-module/navigator/navigator-screen/component.js +8 -1
  143. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  144. package/build-module/notice/index.native.js +16 -21
  145. package/build-module/notice/index.native.js.map +1 -1
  146. package/build-module/notice/list.native.js +3 -3
  147. package/build-module/notice/list.native.js.map +1 -1
  148. package/build-module/palette-edit/index.js +1 -1
  149. package/build-module/palette-edit/index.js.map +1 -1
  150. package/build-module/popover/index.js +31 -35
  151. package/build-module/popover/index.js.map +1 -1
  152. package/build-module/popover/limit-shift.js +136 -0
  153. package/build-module/popover/limit-shift.js.map +1 -0
  154. package/build-module/popover/utils.js +55 -15
  155. package/build-module/popover/utils.js.map +1 -1
  156. package/build-module/resizable-box/resize-tooltip/utils.js +13 -15
  157. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  158. package/build-module/sandbox/index.js +13 -8
  159. package/build-module/sandbox/index.js.map +1 -1
  160. package/build-module/sandbox/index.native.js +3 -1
  161. package/build-module/sandbox/index.native.js.map +1 -1
  162. package/build-module/search-control/index.native.js +6 -2
  163. package/build-module/search-control/index.native.js.map +1 -1
  164. package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js +7 -2
  165. package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
  166. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +30 -42
  167. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  168. package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js +27 -0
  169. package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -0
  170. package/build-module/slot-fill/bubbles-virtually/use-slot.js +13 -5
  171. package/build-module/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
  172. package/build-module/slot-fill/index.js +1 -0
  173. package/build-module/slot-fill/index.js.map +1 -1
  174. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +7 -7
  175. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  176. package/build-module/tools-panel/styles.js +23 -12
  177. package/build-module/tools-panel/styles.js.map +1 -1
  178. package/build-module/tools-panel/tools-panel-header/component.js +19 -7
  179. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  180. package/build-module/tools-panel/tools-panel-header/hook.js +4 -0
  181. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  182. package/build-style/style-rtl.css +14 -100
  183. package/build-style/style.css +14 -100
  184. package/build-types/border-box-control/utils.d.ts +1 -3
  185. package/build-types/border-box-control/utils.d.ts.map +1 -1
  186. package/build-types/custom-select-control/index.d.ts +13 -0
  187. package/build-types/custom-select-control/index.d.ts.map +1 -0
  188. package/build-types/custom-select-control/styles.d.ts +9 -0
  189. package/build-types/custom-select-control/styles.d.ts.map +1 -0
  190. package/build-types/draggable/index.d.ts.map +1 -1
  191. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  192. package/build-types/focal-point-picker/styles/focal-point-style.d.ts +3 -3
  193. package/build-types/font-size-picker/index.d.ts +5 -0
  194. package/build-types/font-size-picker/index.d.ts.map +1 -0
  195. package/build-types/font-size-picker/stories/e2e/index.d.ts +16 -0
  196. package/build-types/font-size-picker/stories/e2e/index.d.ts.map +1 -0
  197. package/build-types/font-size-picker/stories/index.d.ts +31 -0
  198. package/build-types/font-size-picker/stories/index.d.ts.map +1 -0
  199. package/build-types/font-size-picker/styles.d.ts +27 -0
  200. package/build-types/font-size-picker/styles.d.ts.map +1 -0
  201. package/build-types/font-size-picker/test/index.d.ts +2 -0
  202. package/build-types/font-size-picker/test/index.d.ts.map +1 -0
  203. package/build-types/font-size-picker/test/utils.d.ts +2 -0
  204. package/build-types/font-size-picker/test/utils.d.ts.map +1 -0
  205. package/build-types/font-size-picker/types.d.ts +93 -0
  206. package/build-types/font-size-picker/types.d.ts.map +1 -0
  207. package/build-types/font-size-picker/utils.d.ts +41 -0
  208. package/build-types/font-size-picker/utils.d.ts.map +1 -0
  209. package/build-types/form-token-field/token-input.d.ts.map +1 -1
  210. package/build-types/menu-item/index.d.ts.map +1 -1
  211. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  212. package/build-types/popover/index.d.ts.map +1 -1
  213. package/build-types/popover/limit-shift.d.ts +87 -0
  214. package/build-types/popover/limit-shift.d.ts.map +1 -0
  215. package/build-types/popover/test/index.d.ts +2 -0
  216. package/build-types/popover/test/index.d.ts.map +1 -0
  217. package/build-types/popover/types.d.ts +1 -1
  218. package/build-types/popover/types.d.ts.map +1 -1
  219. package/build-types/popover/utils.d.ts.map +1 -1
  220. package/build-types/range-control/types.d.ts +0 -32
  221. package/build-types/range-control/types.d.ts.map +1 -1
  222. package/build-types/slot-fill/bubbles-virtually/slot-fill-context.d.ts +2 -2
  223. package/build-types/slot-fill/bubbles-virtually/slot-fill-context.d.ts.map +1 -1
  224. package/build-types/slot-fill/bubbles-virtually/slot-fill-provider.d.ts.map +1 -1
  225. package/build-types/slot-fill/bubbles-virtually/use-slot-fills.d.ts +2 -0
  226. package/build-types/slot-fill/bubbles-virtually/use-slot-fills.d.ts.map +1 -0
  227. package/build-types/slot-fill/bubbles-virtually/use-slot.d.ts.map +1 -1
  228. package/build-types/slot-fill/index.d.ts +1 -0
  229. package/build-types/slot-fill/index.d.ts.map +1 -1
  230. package/build-types/spinner/index.d.ts +1 -1
  231. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +1 -1
  232. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  233. package/build-types/tools-panel/styles.d.ts +6 -0
  234. package/build-types/tools-panel/styles.d.ts.map +1 -1
  235. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  236. package/build-types/tools-panel/tools-panel-header/hook.d.ts +1 -0
  237. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  238. package/build-types/tools-panel/types.d.ts +1 -0
  239. package/build-types/tools-panel/types.d.ts.map +1 -1
  240. package/package.json +19 -18
  241. package/src/alignment-matrix-control/test/index.js +17 -62
  242. package/src/border-box-control/test/utils.js +48 -0
  243. package/src/border-box-control/utils.ts +44 -1
  244. package/src/combobox-control/index.js +0 -5
  245. package/src/custom-select-control/index.js +2 -1
  246. package/src/draggable/index.js +2 -5
  247. package/src/font-size-picker/{index.js → index.tsx} +113 -79
  248. package/src/font-size-picker/stories/e2e/{index.js → index.tsx} +13 -4
  249. package/src/font-size-picker/stories/{index.js → index.tsx} +42 -36
  250. package/src/font-size-picker/styles.ts +44 -0
  251. package/src/font-size-picker/test/{index.js → index.tsx} +1 -1
  252. package/src/font-size-picker/test/{utils.js → utils.ts} +6 -2
  253. package/src/font-size-picker/types.ts +98 -0
  254. package/src/font-size-picker/{utils.js → utils.ts} +51 -27
  255. package/src/form-token-field/test/index.tsx +22 -1
  256. package/src/form-token-field/token-input.tsx +25 -3
  257. package/src/index.js +2 -1
  258. package/src/menu-item/README.md +7 -0
  259. package/src/menu-item/index.js +11 -5
  260. package/src/menu-item/style.scss +1 -0
  261. package/src/menu-item/test/index.js +36 -0
  262. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +9 -0
  263. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +11 -0
  264. package/src/mobile/bottom-sheet/sub-sheet/index.native.js +3 -0
  265. package/src/mobile/color-settings/index.native.js +3 -0
  266. package/src/mobile/color-settings/picker-screen.native.js +3 -0
  267. package/src/mobile/image/index.native.js +3 -0
  268. package/src/mobile/keyboard-avoiding-view/index.ios.js +3 -0
  269. package/src/mobile/link-picker/index.native.js +3 -0
  270. package/src/mobile/link-picker/link-picker-results.native.js +3 -0
  271. package/src/mobile/link-picker/link-picker-screen.native.js +3 -0
  272. package/src/mobile/link-settings/index.native.js +18 -0
  273. package/src/mobile/link-settings/link-settings-screen.native.js +3 -0
  274. package/src/mobile/segmented-control/index.native.js +6 -0
  275. package/src/mobile/utils/use-unit-converter-to-mobile.native.js +6 -0
  276. package/src/navigator/navigator-screen/component.tsx +8 -1
  277. package/src/navigator/test/index.js +119 -54
  278. package/src/notice/index.native.js +17 -20
  279. package/src/notice/list.native.js +7 -3
  280. package/src/palette-edit/index.js +1 -1
  281. package/src/placeholder/style.scss +3 -3
  282. package/src/popover/index.tsx +26 -42
  283. package/src/popover/limit-shift.ts +205 -0
  284. package/src/popover/test/index.tsx +230 -0
  285. package/src/popover/types.ts +1 -0
  286. package/src/popover/utils.ts +58 -16
  287. package/src/range-control/types.ts +0 -33
  288. package/src/resizable-box/resize-tooltip/utils.ts +13 -13
  289. package/src/sandbox/index.js +13 -7
  290. package/src/sandbox/index.native.js +3 -0
  291. package/src/search-control/index.native.js +6 -0
  292. package/src/slot-fill/bubbles-virtually/slot-fill-context.js +6 -2
  293. package/src/slot-fill/bubbles-virtually/slot-fill-provider.js +51 -58
  294. package/src/slot-fill/bubbles-virtually/use-slot-fills.js +24 -0
  295. package/src/slot-fill/bubbles-virtually/use-slot.js +11 -6
  296. package/src/slot-fill/index.js +1 -0
  297. package/src/style.scss +0 -1
  298. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +1 -0
  299. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +9 -7
  300. package/src/tools-panel/stories/index.js +27 -0
  301. package/src/tools-panel/styles.ts +28 -1
  302. package/src/tools-panel/tools-panel-header/component.tsx +12 -5
  303. package/src/tools-panel/tools-panel-header/hook.ts +5 -0
  304. package/src/tools-panel/types.ts +1 -0
  305. package/tsconfig.json +0 -2
  306. package/tsconfig.tsbuildinfo +1 -1
  307. package/src/font-size-picker/style.scss +0 -78
  308. package/src/popover/test/__snapshots__/index.js.snap +0 -34
  309. package/src/popover/test/index.js +0 -164
@@ -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":"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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}, [] );\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":";;;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,CAnBgB,CAwBhB;AACA;AACA;AACA,GA3BQ,EA2BN,EA3BM,CAAT;;AA6BA,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,CAhHM;AAkHP,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\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":"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","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":"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","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":"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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\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
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/utils/use-unit-converter-to-mobile.native.js"],"names":["Dimensions","useContext","useEffect","useState","useMemo","useCallback","GlobalStylesContext","getValueAndUnit","value","unit","regex","splitValue","match","filter","v","valueToConvert","valueUnit","undefined","convertUnitToMobile","containerSize","globalStyles","width","height","fontSize","Number","vw","Math","round","vh","useConvertUnitToMobile","styles","windowSizes","setWindowSizes","get","dimensionsChangeSubscription","addEventListener","onDimensionsChange","remove","window"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport GlobalStylesContext from '../global-styles-context';\n\nconst getValueAndUnit = ( value, unit ) => {\n\tconst regex = /(\\d+\\.?\\d*)(.*)/;\n\n\tconst splitValue = `${ value }`\n\t\t?.match( regex )\n\t\t?.filter( ( v ) => v !== '' );\n\n\tif ( splitValue ) {\n\t\treturn {\n\t\t\tvalueToConvert: splitValue[ 1 ],\n\t\t\tvalueUnit: unit || splitValue[ 2 ],\n\t\t};\n\t}\n\treturn undefined;\n};\n\nconst convertUnitToMobile = ( containerSize, globalStyles, value, unit ) => {\n\tconst { width, height } = containerSize;\n\tconst { valueToConvert, valueUnit } = getValueAndUnit( value, unit ) || {};\n\tconst { fontSize = 16 } = globalStyles || {};\n\n\tif ( valueToConvert === undefined ) {\n\t\treturn undefined;\n\t}\n\n\tswitch ( valueUnit ) {\n\t\tcase 'rem':\n\t\tcase 'em':\n\t\t\treturn valueToConvert * fontSize;\n\t\tcase '%':\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t\tcase 'px':\n\t\t\treturn Number( valueToConvert );\n\t\tcase 'vw':\n\t\t\tconst vw = width / 100;\n\t\t\treturn Math.round( valueToConvert * vw );\n\t\tcase 'vh':\n\t\t\tconst vh = height / 100;\n\t\t\treturn Math.round( valueToConvert * vh );\n\t\tdefault:\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t}\n};\n\nconst useConvertUnitToMobile = ( value, unit ) => {\n\tconst { globalStyles: styles } = useContext( GlobalStylesContext );\n\tconst [ windowSizes, setWindowSizes ] = useState(\n\t\tDimensions.get( 'window' )\n\t);\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonDimensionsChange\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tconst onDimensionsChange = useCallback( ( { window } ) => {\n\t\tsetWindowSizes( window );\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst { valueToConvert, valueUnit } =\n\t\t\tgetValueAndUnit( value, unit ) || {};\n\n\t\treturn convertUnitToMobile(\n\t\t\twindowSizes,\n\t\t\tstyles,\n\t\t\tvalueToConvert,\n\t\t\tvalueUnit\n\t\t);\n\t}, [ windowSizes, value, unit ] );\n};\n\nexport { convertUnitToMobile, useConvertUnitToMobile, getValueAndUnit };\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/utils/use-unit-converter-to-mobile.native.js"],"names":["Dimensions","useContext","useEffect","useState","useMemo","useCallback","GlobalStylesContext","getValueAndUnit","value","unit","regex","splitValue","match","filter","v","valueToConvert","valueUnit","undefined","convertUnitToMobile","containerSize","globalStyles","width","height","fontSize","Number","vw","Math","round","vh","useConvertUnitToMobile","styles","windowSizes","setWindowSizes","get","dimensionsChangeSubscription","addEventListener","onDimensionsChange","remove","window"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport GlobalStylesContext from '../global-styles-context';\n\nconst getValueAndUnit = ( value, unit ) => {\n\tconst regex = /(\\d+\\.?\\d*)(.*)/;\n\n\tconst splitValue = `${ value }`\n\t\t?.match( regex )\n\t\t?.filter( ( v ) => v !== '' );\n\n\tif ( splitValue ) {\n\t\treturn {\n\t\t\tvalueToConvert: splitValue[ 1 ],\n\t\t\tvalueUnit: unit || splitValue[ 2 ],\n\t\t};\n\t}\n\treturn undefined;\n};\n\nconst convertUnitToMobile = ( containerSize, globalStyles, value, unit ) => {\n\tconst { width, height } = containerSize;\n\tconst { valueToConvert, valueUnit } = getValueAndUnit( value, unit ) || {};\n\tconst { fontSize = 16 } = globalStyles || {};\n\n\tif ( valueToConvert === undefined ) {\n\t\treturn undefined;\n\t}\n\n\tswitch ( valueUnit ) {\n\t\tcase 'rem':\n\t\tcase 'em':\n\t\t\treturn valueToConvert * fontSize;\n\t\tcase '%':\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t\tcase 'px':\n\t\t\treturn Number( valueToConvert );\n\t\tcase 'vw':\n\t\t\tconst vw = width / 100;\n\t\t\treturn Math.round( valueToConvert * vw );\n\t\tcase 'vh':\n\t\t\tconst vh = height / 100;\n\t\t\treturn Math.round( valueToConvert * vh );\n\t\tdefault:\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t}\n};\n\nconst useConvertUnitToMobile = ( value, unit ) => {\n\tconst { globalStyles: styles } = useContext( GlobalStylesContext );\n\tconst [ windowSizes, setWindowSizes ] = useState(\n\t\tDimensions.get( 'window' )\n\t);\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonDimensionsChange\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.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\tconst onDimensionsChange = useCallback( ( { window } ) => {\n\t\tsetWindowSizes( window );\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst { valueToConvert, valueUnit } =\n\t\t\tgetValueAndUnit( value, unit ) || {};\n\n\t\treturn convertUnitToMobile(\n\t\t\twindowSizes,\n\t\t\tstyles,\n\t\t\tvalueToConvert,\n\t\t\tvalueUnit\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}, [ windowSizes, value, unit ] );\n};\n\nexport { convertUnitToMobile, useConvertUnitToMobile, getValueAndUnit };\n"]}
@@ -38,7 +38,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
38
38
  } : {
39
39
  name: "1ulogbc-classes",
40
40
  styles: "overflow-x:auto;max-height:100%;label:classes;",
41
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1zY3JlZW4vY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErREkiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9uYXZpZ2F0b3IvbmF2aWdhdG9yLXNjcmVlbi9jb21wb25lbnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHR5cGUgeyBGb3J3YXJkZWRSZWYgfSBmcm9tICdyZWFjdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBtb3Rpb24sIE1vdGlvblByb3BzIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBmb2N1cyB9IGZyb20gJ0B3b3JkcHJlc3MvZG9tJztcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCB7XG5cdHVzZVJlZHVjZWRNb3Rpb24sXG5cdHVzZU1lcmdlUmVmcyxcblx0dXNlUHJldmlvdXMsXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9zZSc7XG5pbXBvcnQgeyBpc1JUTCB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdAd29yZHByZXNzL2VzY2FwZS1odG1sJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgTmF2aWdhdG9yU2NyZWVuUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGFuaW1hdGlvbkVudGVyRGVsYXkgPSAwO1xuY29uc3QgYW5pbWF0aW9uRW50ZXJEdXJhdGlvbiA9IDAuMTQ7XG5jb25zdCBhbmltYXRpb25FeGl0RHVyYXRpb24gPSAwLjE0O1xuY29uc3QgYW5pbWF0aW9uRXhpdERlbGF5ID0gMDtcblxuLy8gUHJvcHMgc3BlY2lmaWMgdG8gYGZyYW1lci1tb3Rpb25gIGNhbid0IGJlIGN1cnJlbnRseSBwYXNzZWQgdG8gYE5hdmlnYXRvclNjcmVlbmAsXG4vLyBhcyBzb21lIG9mIHRoZW0gd291bGQgb3ZlcmxhcCB3aXRoIEhUTUwgcHJvcHMgKGUuZy4gYG9uQW5pbWF0aW9uU3RhcnRgLCAuLi4pXG50eXBlIFByb3BzID0gT21pdDxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclNjcmVlblByb3BzLCAnZGl2JywgZmFsc2UgPixcblx0a2V5b2YgTW90aW9uUHJvcHNcbj47XG5cbmZ1bmN0aW9uIE5hdmlnYXRvclNjcmVlbiggcHJvcHM6IFByb3BzLCBmb3J3YXJkZWRSZWY6IEZvcndhcmRlZFJlZjwgYW55ID4gKSB7XG5cdGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgcGF0aCwgLi4ub3RoZXJQcm9wcyB9ID0gdXNlQ29udGV4dFN5c3RlbShcblx0XHRwcm9wcyxcblx0XHQnTmF2aWdhdG9yU2NyZWVuJ1xuXHQpO1xuXG5cdGNvbnN0IHByZWZlcnNSZWR1Y2VkTW90aW9uID0gdXNlUmVkdWNlZE1vdGlvbigpO1xuXHRjb25zdCB7IGxvY2F0aW9uIH0gPSB1c2VDb250ZXh0KCBOYXZpZ2F0b3JDb250ZXh0ICk7XG5cdGNvbnN0IGlzTWF0Y2ggPSBsb2NhdGlvbi5wYXRoID09PSBlc2NhcGVBdHRyaWJ1dGUoIHBhdGggKTtcblx0Y29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjwgSFRNTERpdkVsZW1lbnQgPiggbnVsbCApO1xuXG5cdGNvbnN0IHByZXZpb3VzTG9jYXRpb24gPSB1c2VQcmV2aW91cyggbG9jYXRpb24gKTtcblxuXHRjb25zdCBjeCA9IHVzZUN4KCk7XG5cdGNvbnN0IGNsYXNzZXMgPSB1c2VNZW1vKFxuXHRcdCgpID0+XG5cdFx0XHRjeChcblx0XHRcdFx0Y3NzKCB7XG5cdFx0XHRcdFx0Ly8gRW5zdXJlcyBob3Jpem9udGFsIG92ZXJmbG93IGlzIHZpc3VhbGx5IGFjY2Vzc2libGUuXG5cdFx0XHRcdFx0b3ZlcmZsb3dYOiAnYXV0bycsXG5cdFx0XHRcdFx0Ly8gSW4gY2FzZSB0aGUgcm9vdCBoYXMgYSBoZWlnaHQsIGl0IHNob3VsZCBub3QgYmUgZXhjZWVkZWQuXG5cdFx0XHRcdFx0bWF4SGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRcdH0gKSxcblx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHQpLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0Ly8gRm9jdXMgcmVzdG9yYXRpb25cblx0Y29uc3QgaXNJbml0aWFsTG9jYXRpb24gPSBsb2NhdGlvbi5pc0luaXRpYWwgJiYgISBsb2NhdGlvbi5pc0JhY2s7XG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdC8vIE9ubHkgYXR0ZW1wdCB0byByZXN0b3JlIGZvY3VzOlxuXHRcdC8vIC0gaWYgdGhlIGN1cnJlbnQgbG9jYXRpb24gaXMgbm90IHRoZSBpbml0aWFsIG9uZSAodG8gYXZvaWQgbW92aW5nIGZvY3VzIG9uIHBhZ2UgbG9hZClcblx0XHQvLyAtIHdoZW4gdGhlIHNjcmVlbiBiZWNvbWVzIHZpc2libGVcblx0XHQvLyAtIGlmIHRoZSB3cmFwcGVyIHJlZiBoYXMgYmVlbiBhc3NpZ25lZFxuXHRcdGlmICggaXNJbml0aWFsTG9jYXRpb24gfHwgISBpc01hdGNoIHx8ICEgd3JhcHBlclJlZi5jdXJyZW50ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuXHRcdC8vIFdoZW4gbmF2aWdhdGluZyBiYWNrLCBpZiBhIHNlbGVjdG9yIGlzIHByb3ZpZGVkLCB1c2UgaXQgdG8gbG9vayBmb3IgdGhlXG5cdFx0Ly8gdGFyZ2V0IGVsZW1lbnQgKGFzc3VtZWQgdG8gYmUgYSBub2RlIGluc2lkZSB0aGUgY3VycmVudCBOYXZpZ2F0b3JTY3JlZW4pXG5cdFx0aWYgKCBsb2NhdGlvbi5pc0JhY2sgJiYgcHJldmlvdXNMb2NhdGlvbj8uZm9jdXNUYXJnZXRTZWxlY3RvciApIHtcblx0XHRcdGVsZW1lbnRUb0ZvY3VzID0gd3JhcHBlclJlZi5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHRcdHByZXZpb3VzTG9jYXRpb24uZm9jdXNUYXJnZXRTZWxlY3RvclxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgcHJldmlvdXMgcXVlcnkgZGlkbid0IHJ1biBvciBmaW5kIGFueSBlbGVtZW50IHRvIGZvY3VzLCBmYWxsYmFja1xuXHRcdC8vIHRvIHRoZSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50IGluIHRoZSBzY3JlZW4gKG9yIHRoZSBzY3JlZW4gaXRzZWxmKS5cblx0XHRpZiAoICEgZWxlbWVudFRvRm9jdXMgKSB7XG5cdFx0XHRjb25zdCBmaXJzdFRhYmJhYmxlID0gKFxuXHRcdFx0XHRmb2N1cy50YWJiYWJsZS5maW5kKCB3cmFwcGVyUmVmLmN1cnJlbnQgKSBhcyBIVE1MRWxlbWVudFtdXG5cdFx0XHQgKVsgMCBdO1xuXG5cdFx0XHRlbGVtZW50VG9Gb2N1cyA9IGZpcnN0VGFiYmFibGUgPz8gd3JhcHBlclJlZi5jdXJyZW50O1xuXHRcdH1cblxuXHRcdGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XG5cdH0sIFtcblx0XHRpc0luaXRpYWxMb2NhdGlvbixcblx0XHRpc01hdGNoLFxuXHRcdGxvY2F0aW9uLmlzQmFjayxcblx0XHRwcmV2aW91c0xvY2F0aW9uPy5mb2N1c1RhcmdldFNlbGVjdG9yLFxuXHRdICk7XG5cblx0Y29uc3QgbWVyZ2VkV3JhcHBlclJlZiA9IHVzZU1lcmdlUmVmcyggWyBmb3J3YXJkZWRSZWYsIHdyYXBwZXJSZWYgXSApO1xuXG5cdGlmICggISBpc01hdGNoICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0aWYgKCBwcmVmZXJzUmVkdWNlZE1vdGlvbiApIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PFZpZXdcblx0XHRcdFx0cmVmPXsgbWVyZ2VkV3JhcHBlclJlZiB9XG5cdFx0XHRcdGNsYXNzTmFtZT17IGNsYXNzZXMgfVxuXHRcdFx0XHR7IC4uLm90aGVyUHJvcHMgfVxuXHRcdFx0PlxuXHRcdFx0XHR7IGNoaWxkcmVuIH1cblx0XHRcdDwvVmlldz5cblx0XHQpO1xuXHR9XG5cblx0Y29uc3QgYW5pbWF0ZSA9IHtcblx0XHRvcGFjaXR5OiAxLFxuXHRcdHRyYW5zaXRpb246IHtcblx0XHRcdGRlbGF5OiBhbmltYXRpb25FbnRlckRlbGF5LFxuXHRcdFx0ZHVyYXRpb246IGFuaW1hdGlvbkVudGVyRHVyYXRpb24sXG5cdFx0XHRlYXNlOiAnZWFzZUluT3V0Jyxcblx0XHR9LFxuXHRcdHg6IDAsXG5cdH07XG5cdGNvbnN0IGluaXRpYWwgPSB7XG5cdFx0b3BhY2l0eTogMCxcblx0XHR4OlxuXHRcdFx0KCBpc1JUTCgpICYmIGxvY2F0aW9uLmlzQmFjayApIHx8ICggISBpc1JUTCgpICYmICEgbG9jYXRpb24uaXNCYWNrIClcblx0XHRcdFx0PyA1MFxuXHRcdFx0XHQ6IC01MCxcblx0fTtcblx0Y29uc3QgZXhpdCA9IHtcblx0XHRkZWxheTogYW5pbWF0aW9uRXhpdERlbGF5LFxuXHRcdG9wYWNpdHk6IDAsXG5cdFx0eDpcblx0XHRcdCggISBpc1JUTCgpICYmIGxvY2F0aW9uLmlzQmFjayApIHx8ICggaXNSVEwoKSAmJiAhIGxvY2F0aW9uLmlzQmFjayApXG5cdFx0XHRcdD8gNTBcblx0XHRcdFx0OiAtNTAsXG5cdFx0dHJhbnNpdGlvbjoge1xuXHRcdFx0ZHVyYXRpb246IGFuaW1hdGlvbkV4aXREdXJhdGlvbixcblx0XHRcdGVhc2U6ICdlYXNlSW5PdXQnLFxuXHRcdH0sXG5cdH07XG5cblx0Y29uc3QgYW5pbWF0ZWRQcm9wcyA9IHtcblx0XHRhbmltYXRlLFxuXHRcdGV4aXQsXG5cdFx0aW5pdGlhbCxcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxtb3Rpb24uZGl2XG5cdFx0XHRyZWY9eyBtZXJnZWRXcmFwcGVyUmVmIH1cblx0XHRcdGNsYXNzTmFtZT17IGNsYXNzZXMgfVxuXHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdHsgLi4uYW5pbWF0ZWRQcm9wcyB9XG5cdFx0PlxuXHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0PC9tb3Rpb24uZGl2PlxuXHQpO1xufVxuXG4vKipcbiAqIFRoZSBgTmF2aWdhdG9yU2NyZWVuYCBjb21wb25lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSB2aWV3L3NjcmVlbi9wYW5lbCBhbmRcbiAqIHNob3VsZCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGBOYXZpZ2F0b3JQcm92aWRlcmAsIHRoZVxuICogYE5hdmlnYXRvckJ1dHRvbmAgYW5kIHRoZSBgTmF2aWdhdG9yQmFja0J1dHRvbmAgY29tcG9uZW50cyAob3IgdGhlIGB1c2VOYXZpZ2F0b3JgXG4gKiBob29rKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQge1xuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclByb3ZpZGVyIGFzIE5hdmlnYXRvclByb3ZpZGVyLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclNjcmVlbiBhcyBOYXZpZ2F0b3JTY3JlZW4sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQnV0dG9uIGFzIE5hdmlnYXRvckJ1dHRvbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCYWNrQnV0dG9uIGFzIE5hdmlnYXRvckJhY2tCdXR0b24sXG4gKiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgTXlOYXZpZ2F0aW9uID0gKCkgPT4gKFxuICogICA8TmF2aWdhdG9yUHJvdmlkZXIgaW5pdGlhbFBhdGg9XCIvXCI+XG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL1wiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgaG9tZSBzY3JlZW4uPC9wPlxuICogICAgICAgIDxOYXZpZ2F0b3JCdXR0b24gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgICAgTmF2aWdhdGUgdG8gY2hpbGQgc2NyZWVuLlxuICogICAgICAgPC9OYXZpZ2F0b3JCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgY2hpbGQgc2NyZWVuLjwvcD5cbiAqICAgICAgIDxOYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgICAgICBHbyBiYWNrXG4gKiAgICAgICA8L05hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKiAgIDwvTmF2aWdhdG9yUHJvdmlkZXI+XG4gKiApO1xuICogYGBgXG4gKi9cbmNvbnN0IENvbm5lY3RlZE5hdmlnYXRvclNjcmVlbiA9IGNvbnRleHRDb25uZWN0KFxuXHROYXZpZ2F0b3JTY3JlZW4sXG5cdCdOYXZpZ2F0b3JTY3JlZW4nXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBDb25uZWN0ZWROYXZpZ2F0b3JTY3JlZW47XG4iXX0= */",
41
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1zY3JlZW4vY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErREkiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9uYXZpZ2F0b3IvbmF2aWdhdG9yLXNjcmVlbi9jb21wb25lbnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHR5cGUgeyBGb3J3YXJkZWRSZWYgfSBmcm9tICdyZWFjdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBtb3Rpb24sIE1vdGlvblByb3BzIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogV29yZFByZXNzIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBmb2N1cyB9IGZyb20gJ0B3b3JkcHJlc3MvZG9tJztcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcbmltcG9ydCB7XG5cdHVzZVJlZHVjZWRNb3Rpb24sXG5cdHVzZU1lcmdlUmVmcyxcblx0dXNlUHJldmlvdXMsXG59IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9zZSc7XG5pbXBvcnQgeyBpc1JUTCB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tICdAd29yZHByZXNzL2VzY2FwZS1odG1sJztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgTmF2aWdhdG9yU2NyZWVuUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGFuaW1hdGlvbkVudGVyRGVsYXkgPSAwO1xuY29uc3QgYW5pbWF0aW9uRW50ZXJEdXJhdGlvbiA9IDAuMTQ7XG5jb25zdCBhbmltYXRpb25FeGl0RHVyYXRpb24gPSAwLjE0O1xuY29uc3QgYW5pbWF0aW9uRXhpdERlbGF5ID0gMDtcblxuLy8gUHJvcHMgc3BlY2lmaWMgdG8gYGZyYW1lci1tb3Rpb25gIGNhbid0IGJlIGN1cnJlbnRseSBwYXNzZWQgdG8gYE5hdmlnYXRvclNjcmVlbmAsXG4vLyBhcyBzb21lIG9mIHRoZW0gd291bGQgb3ZlcmxhcCB3aXRoIEhUTUwgcHJvcHMgKGUuZy4gYG9uQW5pbWF0aW9uU3RhcnRgLCAuLi4pXG50eXBlIFByb3BzID0gT21pdDxcblx0V29yZFByZXNzQ29tcG9uZW50UHJvcHM8IE5hdmlnYXRvclNjcmVlblByb3BzLCAnZGl2JywgZmFsc2UgPixcblx0a2V5b2YgTW90aW9uUHJvcHNcbj47XG5cbmZ1bmN0aW9uIE5hdmlnYXRvclNjcmVlbiggcHJvcHM6IFByb3BzLCBmb3J3YXJkZWRSZWY6IEZvcndhcmRlZFJlZjwgYW55ID4gKSB7XG5cdGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgcGF0aCwgLi4ub3RoZXJQcm9wcyB9ID0gdXNlQ29udGV4dFN5c3RlbShcblx0XHRwcm9wcyxcblx0XHQnTmF2aWdhdG9yU2NyZWVuJ1xuXHQpO1xuXG5cdGNvbnN0IHByZWZlcnNSZWR1Y2VkTW90aW9uID0gdXNlUmVkdWNlZE1vdGlvbigpO1xuXHRjb25zdCB7IGxvY2F0aW9uIH0gPSB1c2VDb250ZXh0KCBOYXZpZ2F0b3JDb250ZXh0ICk7XG5cdGNvbnN0IGlzTWF0Y2ggPSBsb2NhdGlvbi5wYXRoID09PSBlc2NhcGVBdHRyaWJ1dGUoIHBhdGggKTtcblx0Y29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjwgSFRNTERpdkVsZW1lbnQgPiggbnVsbCApO1xuXG5cdGNvbnN0IHByZXZpb3VzTG9jYXRpb24gPSB1c2VQcmV2aW91cyggbG9jYXRpb24gKTtcblxuXHRjb25zdCBjeCA9IHVzZUN4KCk7XG5cdGNvbnN0IGNsYXNzZXMgPSB1c2VNZW1vKFxuXHRcdCgpID0+XG5cdFx0XHRjeChcblx0XHRcdFx0Y3NzKCB7XG5cdFx0XHRcdFx0Ly8gRW5zdXJlcyBob3Jpem9udGFsIG92ZXJmbG93IGlzIHZpc3VhbGx5IGFjY2Vzc2libGUuXG5cdFx0XHRcdFx0b3ZlcmZsb3dYOiAnYXV0bycsXG5cdFx0XHRcdFx0Ly8gSW4gY2FzZSB0aGUgcm9vdCBoYXMgYSBoZWlnaHQsIGl0IHNob3VsZCBub3QgYmUgZXhjZWVkZWQuXG5cdFx0XHRcdFx0bWF4SGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRcdH0gKSxcblx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHQpLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0Ly8gRm9jdXMgcmVzdG9yYXRpb25cblx0Y29uc3QgaXNJbml0aWFsTG9jYXRpb24gPSBsb2NhdGlvbi5pc0luaXRpYWwgJiYgISBsb2NhdGlvbi5pc0JhY2s7XG5cdHVzZUVmZmVjdCggKCkgPT4ge1xuXHRcdC8vIE9ubHkgYXR0ZW1wdCB0byByZXN0b3JlIGZvY3VzOlxuXHRcdC8vIC0gaWYgdGhlIGN1cnJlbnQgbG9jYXRpb24gaXMgbm90IHRoZSBpbml0aWFsIG9uZSAodG8gYXZvaWQgbW92aW5nIGZvY3VzIG9uIHBhZ2UgbG9hZClcblx0XHQvLyAtIHdoZW4gdGhlIHNjcmVlbiBiZWNvbWVzIHZpc2libGVcblx0XHQvLyAtIGlmIHRoZSB3cmFwcGVyIHJlZiBoYXMgYmVlbiBhc3NpZ25lZFxuXHRcdGlmICggaXNJbml0aWFsTG9jYXRpb24gfHwgISBpc01hdGNoIHx8ICEgd3JhcHBlclJlZi5jdXJyZW50ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB3cmFwcGVyUmVmLmN1cnJlbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG5cdFx0Ly8gSWYgYW4gZWxlbWVudCBpcyBhbHJlYWR5IGZvY3VzZWQgd2l0aGluIHRoZSB3cmFwcGVyIGRvIG5vdCBmb2N1cyB0aGVcblx0XHQvLyBlbGVtZW50LiBUaGlzIHByZXZlbnRzIGlucHV0cyBvciBidXR0b25zIGZyb20gbG9zaW5nIGZvY3VzIHVuZWNlc3NhcmlseS5cblx0XHRpZiAoIHdyYXBwZXJSZWYuY3VycmVudC5jb250YWlucyggYWN0aXZlRWxlbWVudCApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuXHRcdC8vIFdoZW4gbmF2aWdhdGluZyBiYWNrLCBpZiBhIHNlbGVjdG9yIGlzIHByb3ZpZGVkLCB1c2UgaXQgdG8gbG9vayBmb3IgdGhlXG5cdFx0Ly8gdGFyZ2V0IGVsZW1lbnQgKGFzc3VtZWQgdG8gYmUgYSBub2RlIGluc2lkZSB0aGUgY3VycmVudCBOYXZpZ2F0b3JTY3JlZW4pXG5cdFx0aWYgKCBsb2NhdGlvbi5pc0JhY2sgJiYgcHJldmlvdXNMb2NhdGlvbj8uZm9jdXNUYXJnZXRTZWxlY3RvciApIHtcblx0XHRcdGVsZW1lbnRUb0ZvY3VzID0gd3JhcHBlclJlZi5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoXG5cdFx0XHRcdHByZXZpb3VzTG9jYXRpb24uZm9jdXNUYXJnZXRTZWxlY3RvclxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgcHJldmlvdXMgcXVlcnkgZGlkbid0IHJ1biBvciBmaW5kIGFueSBlbGVtZW50IHRvIGZvY3VzLCBmYWxsYmFja1xuXHRcdC8vIHRvIHRoZSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50IGluIHRoZSBzY3JlZW4gKG9yIHRoZSBzY3JlZW4gaXRzZWxmKS5cblx0XHRpZiAoICEgZWxlbWVudFRvRm9jdXMgKSB7XG5cdFx0XHRjb25zdCBmaXJzdFRhYmJhYmxlID0gKFxuXHRcdFx0XHRmb2N1cy50YWJiYWJsZS5maW5kKCB3cmFwcGVyUmVmLmN1cnJlbnQgKSBhcyBIVE1MRWxlbWVudFtdXG5cdFx0XHQgKVsgMCBdO1xuXHRcdFx0ZWxlbWVudFRvRm9jdXMgPSBmaXJzdFRhYmJhYmxlID8/IHdyYXBwZXJSZWYuY3VycmVudDtcblx0XHR9XG5cblx0XHRlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xuXHR9LCBbXG5cdFx0aXNJbml0aWFsTG9jYXRpb24sXG5cdFx0aXNNYXRjaCxcblx0XHRsb2NhdGlvbi5pc0JhY2ssXG5cdFx0cHJldmlvdXNMb2NhdGlvbj8uZm9jdXNUYXJnZXRTZWxlY3Rvcixcblx0XSApO1xuXG5cdGNvbnN0IG1lcmdlZFdyYXBwZXJSZWYgPSB1c2VNZXJnZVJlZnMoIFsgZm9yd2FyZGVkUmVmLCB3cmFwcGVyUmVmIF0gKTtcblxuXHRpZiAoICEgaXNNYXRjaCApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICggcHJlZmVyc1JlZHVjZWRNb3Rpb24gKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxWaWV3XG5cdFx0XHRcdHJlZj17IG1lcmdlZFdyYXBwZXJSZWYgfVxuXHRcdFx0XHRjbGFzc05hbWU9eyBjbGFzc2VzIH1cblx0XHRcdFx0eyAuLi5vdGhlclByb3BzIH1cblx0XHRcdD5cblx0XHRcdFx0eyBjaGlsZHJlbiB9XG5cdFx0XHQ8L1ZpZXc+XG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IGFuaW1hdGUgPSB7XG5cdFx0b3BhY2l0eTogMSxcblx0XHR0cmFuc2l0aW9uOiB7XG5cdFx0XHRkZWxheTogYW5pbWF0aW9uRW50ZXJEZWxheSxcblx0XHRcdGR1cmF0aW9uOiBhbmltYXRpb25FbnRlckR1cmF0aW9uLFxuXHRcdFx0ZWFzZTogJ2Vhc2VJbk91dCcsXG5cdFx0fSxcblx0XHR4OiAwLFxuXHR9O1xuXHRjb25zdCBpbml0aWFsID0ge1xuXHRcdG9wYWNpdHk6IDAsXG5cdFx0eDpcblx0XHRcdCggaXNSVEwoKSAmJiBsb2NhdGlvbi5pc0JhY2sgKSB8fCAoICEgaXNSVEwoKSAmJiAhIGxvY2F0aW9uLmlzQmFjayApXG5cdFx0XHRcdD8gNTBcblx0XHRcdFx0OiAtNTAsXG5cdH07XG5cdGNvbnN0IGV4aXQgPSB7XG5cdFx0ZGVsYXk6IGFuaW1hdGlvbkV4aXREZWxheSxcblx0XHRvcGFjaXR5OiAwLFxuXHRcdHg6XG5cdFx0XHQoICEgaXNSVEwoKSAmJiBsb2NhdGlvbi5pc0JhY2sgKSB8fCAoIGlzUlRMKCkgJiYgISBsb2NhdGlvbi5pc0JhY2sgKVxuXHRcdFx0XHQ/IDUwXG5cdFx0XHRcdDogLTUwLFxuXHRcdHRyYW5zaXRpb246IHtcblx0XHRcdGR1cmF0aW9uOiBhbmltYXRpb25FeGl0RHVyYXRpb24sXG5cdFx0XHRlYXNlOiAnZWFzZUluT3V0Jyxcblx0XHR9LFxuXHR9O1xuXG5cdGNvbnN0IGFuaW1hdGVkUHJvcHMgPSB7XG5cdFx0YW5pbWF0ZSxcblx0XHRleGl0LFxuXHRcdGluaXRpYWwsXG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8bW90aW9uLmRpdlxuXHRcdFx0cmVmPXsgbWVyZ2VkV3JhcHBlclJlZiB9XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc2VzIH1cblx0XHRcdHsgLi4ub3RoZXJQcm9wcyB9XG5cdFx0XHR7IC4uLmFuaW1hdGVkUHJvcHMgfVxuXHRcdD5cblx0XHRcdHsgY2hpbGRyZW4gfVxuXHRcdDwvbW90aW9uLmRpdj5cblx0KTtcbn1cblxuLyoqXG4gKiBUaGUgYE5hdmlnYXRvclNjcmVlbmAgY29tcG9uZW50IHJlcHJlc2VudHMgYSBzaW5nbGUgdmlldy9zY3JlZW4vcGFuZWwgYW5kXG4gKiBzaG91bGQgYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBgTmF2aWdhdG9yUHJvdmlkZXJgLCB0aGVcbiAqIGBOYXZpZ2F0b3JCdXR0b25gIGFuZCB0aGUgYE5hdmlnYXRvckJhY2tCdXR0b25gIGNvbXBvbmVudHMgKG9yIHRoZSBgdXNlTmF2aWdhdG9yYFxuICogaG9vaykuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzeFxuICogaW1wb3J0IHtcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JQcm92aWRlciBhcyBOYXZpZ2F0b3JQcm92aWRlcixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JTY3JlZW4gYXMgTmF2aWdhdG9yU2NyZWVuLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvckJ1dHRvbiBhcyBOYXZpZ2F0b3JCdXR0b24sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQmFja0J1dHRvbiBhcyBOYXZpZ2F0b3JCYWNrQnV0dG9uLFxuICogfSBmcm9tICdAd29yZHByZXNzL2NvbXBvbmVudHMnO1xuICpcbiAqIGNvbnN0IE15TmF2aWdhdGlvbiA9ICgpID0+IChcbiAqICAgPE5hdmlnYXRvclByb3ZpZGVyIGluaXRpYWxQYXRoPVwiL1wiPlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9cIj5cbiAqICAgICAgIDxwPlRoaXMgaXMgdGhlIGhvbWUgc2NyZWVuLjwvcD5cbiAqICAgICAgICA8TmF2aWdhdG9yQnV0dG9uIHBhdGg9XCIvY2hpbGRcIj5cbiAqICAgICAgICAgIE5hdmlnYXRlIHRvIGNoaWxkIHNjcmVlbi5cbiAqICAgICAgIDwvTmF2aWdhdG9yQnV0dG9uPlxuICogICAgIDwvTmF2aWdhdG9yU2NyZWVuPlxuICpcbiAqICAgICA8TmF2aWdhdG9yU2NyZWVuIHBhdGg9XCIvY2hpbGRcIj5cbiAqICAgICAgIDxwPlRoaXMgaXMgdGhlIGNoaWxkIHNjcmVlbi48L3A+XG4gKiAgICAgICA8TmF2aWdhdG9yQmFja0J1dHRvbj5cbiAqICAgICAgICAgR28gYmFja1xuICogICAgICAgPC9OYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgIDwvTmF2aWdhdG9yU2NyZWVuPlxuICogICA8L05hdmlnYXRvclByb3ZpZGVyPlxuICogKTtcbiAqIGBgYFxuICovXG5jb25zdCBDb25uZWN0ZWROYXZpZ2F0b3JTY3JlZW4gPSBjb250ZXh0Q29ubmVjdChcblx0TmF2aWdhdG9yU2NyZWVuLFxuXHQnTmF2aWdhdG9yU2NyZWVuJ1xuKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ubmVjdGVkTmF2aWdhdG9yU2NyZWVuO1xuIl19 */",
42
42
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
43
43
  };
44
44
 
@@ -69,6 +69,13 @@ function NavigatorScreen(props, forwardedRef) {
69
69
  return;
70
70
  }
71
71
 
72
+ const activeElement = wrapperRef.current.ownerDocument.activeElement; // If an element is already focused within the wrapper do not focus the
73
+ // element. This prevents inputs or buttons from losing focus unecessarily.
74
+
75
+ if (wrapperRef.current.contains(activeElement)) {
76
+ return;
77
+ }
78
+
72
79
  let elementToFocus = null; // When navigating back, if a selector is provided, use it to look for the
73
80
  // target element (assumed to be a node inside the current NavigatorScreen)
74
81