pixuireactcomponents 1.2.0 → 1.2.1

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 (399) hide show
  1. package/README.md +5 -6
  2. package/package.json +9 -66
  3. package/tsconfig.json +27 -13
  4. package/.eslintignore +0 -7
  5. package/.eslintrc.js +0 -48
  6. package/.pixiderc/apps.json +0 -12
  7. package/.pixiderc/devel-config.meta.json +0 -23
  8. package/.pixiderc/postinstall.js +0 -17
  9. package/.pixiderc/util.js +0 -136
  10. package/.pixiderc/webpack.js +0 -180
  11. package/faas/helloworld.js +0 -8
  12. package/gen/pbo/pandora_pb.d.ts +0 -1179
  13. package/gen/pbo/pandora_pb.js +0 -10475
  14. package/gen/pbo/pandora_pb_service.d.ts +0 -1317
  15. package/gen/pbo/pandora_pb_service.js +0 -2307
  16. package/gen/pbo/test_pb.d.ts +0 -99
  17. package/gen/pbo/test_pb.js +0 -889
  18. package/gen/pbo/test_pb_service.d.ts +0 -82
  19. package/gen/pbo/test_pb_service.js +0 -117
  20. package/lib/assets/border.png +0 -0
  21. package/lib/assets/check.html +0 -54
  22. package/lib/assets/pixui.png +0 -0
  23. package/lib/assets/preact.png +0 -0
  24. package/lib/check/main.less +0 -63
  25. package/lib/check/main.tsx +0 -42
  26. package/lib/check/tool.js +0 -3
  27. package/lib/check/util.tsx +0 -107
  28. package/lib/dom.ts +0 -16
  29. package/lib/ext.d.ts +0 -95
  30. package/lib/grpc-web/dist/ChunkParser.js +0 -115
  31. package/lib/grpc-web/dist/ChunkParser.js.map +0 -1
  32. package/lib/grpc-web/dist/Code.js +0 -58
  33. package/lib/grpc-web/dist/Code.js.map +0 -1
  34. package/lib/grpc-web/dist/client.js +0 -299
  35. package/lib/grpc-web/dist/client.js.map +0 -1
  36. package/lib/grpc-web/dist/debug.js +0 -16
  37. package/lib/grpc-web/dist/debug.js.map +0 -1
  38. package/lib/grpc-web/dist/detach.js +0 -7
  39. package/lib/grpc-web/dist/detach.js.map +0 -1
  40. package/lib/grpc-web/dist/index.js +0 -29
  41. package/lib/grpc-web/dist/index.js.map +0 -1
  42. package/lib/grpc-web/dist/invoke.js +0 -32
  43. package/lib/grpc-web/dist/invoke.js.map +0 -1
  44. package/lib/grpc-web/dist/message.js +0 -3
  45. package/lib/grpc-web/dist/message.js.map +0 -1
  46. package/lib/grpc-web/dist/metadata.js +0 -5
  47. package/lib/grpc-web/dist/metadata.js.map +0 -1
  48. package/lib/grpc-web/dist/service.js +0 -3
  49. package/lib/grpc-web/dist/service.js.map +0 -1
  50. package/lib/grpc-web/dist/transports/Transport.js +0 -13
  51. package/lib/grpc-web/dist/transports/Transport.js.map +0 -1
  52. package/lib/grpc-web/dist/transports/http/fetch.js +0 -112
  53. package/lib/grpc-web/dist/transports/http/fetch.js.map +0 -1
  54. package/lib/grpc-web/dist/transports/http/http.js +0 -15
  55. package/lib/grpc-web/dist/transports/http/http.js.map +0 -1
  56. package/lib/grpc-web/dist/transports/http/xhr.js +0 -127
  57. package/lib/grpc-web/dist/transports/http/xhr.js.map +0 -1
  58. package/lib/grpc-web/dist/transports/http/xhrUtil.js +0 -37
  59. package/lib/grpc-web/dist/transports/http/xhrUtil.js.map +0 -1
  60. package/lib/grpc-web/dist/transports/websocket/websocket.js +0 -95
  61. package/lib/grpc-web/dist/transports/websocket/websocket.js.map +0 -1
  62. package/lib/grpc-web/dist/typings/ChunkParser.d.ts +0 -17
  63. package/lib/grpc-web/dist/typings/Code.d.ts +0 -20
  64. package/lib/grpc-web/dist/typings/client.d.ts +0 -22
  65. package/lib/grpc-web/dist/typings/debug.d.ts +0 -1
  66. package/lib/grpc-web/dist/typings/detach.d.ts +0 -1
  67. package/lib/grpc-web/dist/typings/index.d.ts +0 -60
  68. package/lib/grpc-web/dist/typings/invoke.d.ts +0 -17
  69. package/lib/grpc-web/dist/typings/message.d.ts +0 -8
  70. package/lib/grpc-web/dist/typings/metadata.d.ts +0 -2
  71. package/lib/grpc-web/dist/typings/service.d.ts +0 -16
  72. package/lib/grpc-web/dist/typings/transports/Transport.d.ts +0 -22
  73. package/lib/grpc-web/dist/typings/transports/http/fetch.d.ts +0 -6
  74. package/lib/grpc-web/dist/typings/transports/http/http.d.ts +0 -5
  75. package/lib/grpc-web/dist/typings/transports/http/xhr.d.ts +0 -27
  76. package/lib/grpc-web/dist/typings/transports/http/xhrUtil.d.ts +0 -3
  77. package/lib/grpc-web/dist/typings/transports/websocket/websocket.d.ts +0 -2
  78. package/lib/grpc-web/dist/typings/unary.d.ts +0 -20
  79. package/lib/grpc-web/dist/typings/util.d.ts +0 -2
  80. package/lib/grpc-web/dist/unary.js +0 -44
  81. package/lib/grpc-web/dist/unary.js.map +0 -1
  82. package/lib/grpc-web/dist/util.js +0 -11
  83. package/lib/grpc-web/dist/util.js.map +0 -1
  84. package/lib/grpcTransport/PixHttp2Transport.ts +0 -104
  85. package/lib/grpcTransport/PixLuaTransport.ts +0 -80
  86. package/lib/pi_component/tinyList/tinyList.js +0 -573
  87. package/lib/pi_component/tinyList/tinyList.tsx +0 -586
  88. package/lib/preact/compat/src/Children.js +0 -26
  89. package/lib/preact/compat/src/PureComponent.js +0 -19
  90. package/lib/preact/compat/src/events.js +0 -36
  91. package/lib/preact/compat/src/forwardRef.js +0 -29
  92. package/lib/preact/compat/src/index.d.ts +0 -121
  93. package/lib/preact/compat/src/index.js +0 -159
  94. package/lib/preact/compat/src/internal.d.ts +0 -45
  95. package/lib/preact/compat/src/memo.js +0 -34
  96. package/lib/preact/compat/src/portals.js +0 -85
  97. package/lib/preact/compat/src/render.js +0 -166
  98. package/lib/preact/compat/src/suspense-list.d.ts +0 -14
  99. package/lib/preact/compat/src/suspense-list.js +0 -127
  100. package/lib/preact/compat/src/suspense.d.ts +0 -15
  101. package/lib/preact/compat/src/suspense.js +0 -165
  102. package/lib/preact/compat/src/util.js +0 -23
  103. package/lib/preact/hooks/src/index.d.ts +0 -133
  104. package/lib/preact/hooks/src/index.js +0 -339
  105. package/lib/preact/hooks/src/internal.d.ts +0 -55
  106. package/lib/preact/src/clone-element.js +0 -27
  107. package/lib/preact/src/compat.ts +0 -0
  108. package/lib/preact/src/component.js +0 -219
  109. package/lib/preact/src/constants.js +0 -3
  110. package/lib/preact/src/create-context.js +0 -55
  111. package/lib/preact/src/create-element.js +0 -102
  112. package/lib/preact/src/css.d.ts +0 -30341
  113. package/lib/preact/src/diff/catch-error.js +0 -41
  114. package/lib/preact/src/diff/children.js +0 -259
  115. package/lib/preact/src/diff/index.js +0 -445
  116. package/lib/preact/src/diff/props.js +0 -163
  117. package/lib/preact/src/index.d.ts +0 -275
  118. package/lib/preact/src/index.js +0 -14
  119. package/lib/preact/src/internal.d.ts +0 -94
  120. package/lib/preact/src/jsx.d.ts +0 -884
  121. package/lib/preact/src/options.js +0 -16
  122. package/lib/preact/src/render.js +0 -98
  123. package/lib/preact/src/util.js +0 -25
  124. package/lib/preact-router/.travis.yml +0 -3
  125. package/lib/preact-router/LICENSE +0 -21
  126. package/lib/preact-router/README.md +0 -254
  127. package/lib/preact-router/index.d.ts +0 -71
  128. package/lib/preact-router/match/index.d.ts +0 -16
  129. package/lib/preact-router/match/package.json +0 -13
  130. package/lib/preact-router/match/src/cjs.js +0 -4
  131. package/lib/preact-router/match/src/index.js +0 -36
  132. package/lib/preact-router/package-lock.json +0 -12330
  133. package/lib/preact-router/package.json +0 -78
  134. package/lib/preact-router/src/cjs.js +0 -11
  135. package/lib/preact-router/src/index.js +0 -270
  136. package/lib/preact-router/src/util.js +0 -87
  137. package/lib/react-window/src/FixedSizeGrid.js +0 -244
  138. package/lib/react-window/src/FixedSizeList.js +0 -130
  139. package/lib/react-window/src/VariableSizeGrid.js +0 -507
  140. package/lib/react-window/src/VariableSizeList.js +0 -316
  141. package/lib/react-window/src/__tests__/FixedSizeGrid.js +0 -1336
  142. package/lib/react-window/src/__tests__/FixedSizeList.js +0 -966
  143. package/lib/react-window/src/__tests__/VariableSizeGrid.js +0 -779
  144. package/lib/react-window/src/__tests__/VariableSizeList.js +0 -442
  145. package/lib/react-window/src/__tests__/__snapshots__/FixedSizeGrid.js.snap +0 -912
  146. package/lib/react-window/src/__tests__/__snapshots__/FixedSizeList.js.snap +0 -568
  147. package/lib/react-window/src/__tests__/__snapshots__/VariableSizeGrid.js.snap +0 -542
  148. package/lib/react-window/src/__tests__/__snapshots__/VariableSizeList.js.snap +0 -331
  149. package/lib/react-window/src/__tests__/areEqual.js +0 -32
  150. package/lib/react-window/src/__tests__/shouldComponentUpdate.js +0 -36
  151. package/lib/react-window/src/areEqual.js +0 -18
  152. package/lib/react-window/src/createGridComponent.js +0 -919
  153. package/lib/react-window/src/createListComponent.js +0 -729
  154. package/lib/react-window/src/domHelpers.js +0 -72
  155. package/lib/react-window/src/index.js +0 -9
  156. package/lib/react-window/src/shallowDiffers.js +0 -17
  157. package/lib/react-window/src/shouldComponentUpdate.js +0 -16
  158. package/lib/react-window/src/test.js.flow +0 -382
  159. package/lib/react-window/src/timer.js +0 -36
  160. package/src/app/demopage.tsx +0 -77
  161. package/src/app/index.html +0 -48
  162. package/src/app/main.tsx +0 -30
  163. package/src/asset/Textures/Alert/bg_tips.png +0 -0
  164. package/src/asset/Textures/Alert/btn_zhedie_a.png +0 -0
  165. package/src/asset/Textures/Alert/com_home_bg_left.png +0 -0
  166. package/src/asset/Textures/Alert/com_home_bg_rightbar.png +0 -0
  167. package/src/asset/Textures/Commons/com_home_bg_a.png +0 -0
  168. package/src/asset/Textures/Commons/com_home_bg_back_top.png +0 -0
  169. package/src/asset/Textures/Commons/com_home_bg_bottombar_sheet.png +0 -0
  170. package/src/asset/Textures/Commons/com_home_bg_list_xiala.png +0 -0
  171. package/src/asset/Textures/Commons/com_home_bg_rightbar_line.png +0 -0
  172. package/src/asset/Textures/Commons/com_home_bg_rightbar_selected.png +0 -0
  173. package/src/asset/Textures/Commons/com_home_bg_touxiang_140.png +0 -0
  174. package/src/asset/Textures/Commons/com_home_bg_touxiang_60.png +0 -0
  175. package/src/asset/Textures/Commons/com_home_bg_touxiang_80.png +0 -0
  176. package/src/asset/Textures/Commons/com_home_btn_back.png +0 -0
  177. package/src/asset/Textures/Commons/com_home_btn_bottombar.png +0 -0
  178. package/src/asset/Textures/Commons/com_home_btn_bottombar_fadongtai.png +0 -0
  179. package/src/asset/Textures/Commons/com_home_btn_close.png +0 -0
  180. package/src/asset/Textures/Commons/com_home_btn_guanzhu_126.png +0 -0
  181. package/src/asset/Textures/Commons/com_home_btn_guanzhu_86.png +0 -0
  182. package/src/asset/Textures/Commons/com_home_btn_left_bianji.png +0 -0
  183. package/src/asset/Textures/Commons/com_home_btn_left_dongtai.png +0 -0
  184. package/src/asset/Textures/Commons/com_home_btn_left_touxiang.png +0 -0
  185. package/src/asset/Textures/Commons/com_home_btn_selet.png +0 -0
  186. package/src/asset/Textures/Commons/com_home_btn_yiguanzhu_126.png +0 -0
  187. package/src/asset/Textures/Commons/com_home_btn_yiguanzhu_86.png +0 -0
  188. package/src/asset/Textures/Commons/com_home_icon_bottombar_fadongtai.png +0 -0
  189. package/src/asset/Textures/Commons/com_home_icon_bottombar_red.png +0 -0
  190. package/src/asset/Textures/Commons/com_home_icon_loading.png +0 -0
  191. package/src/asset/Textures/Commons/com_home_pic_touxiang_moren.png +0 -0
  192. package/src/asset/Textures/Commons/com_home_tab_left_a.png +0 -0
  193. package/src/asset/Textures/Commons/com_home_tab_left_b.png +0 -0
  194. package/src/asset/Textures/Commons/com_home_tab_left_c.png +0 -0
  195. package/src/asset/Textures/Commons/feedItems/gc1_huati_icon_middle_v.png +0 -0
  196. package/src/asset/Textures/Commons/feedItems/gc1_huati_icon_middle_yonghurenzheng.png +0 -0
  197. package/src/asset/Textures/Commons/feedItems/pinglun_bg.png +0 -0
  198. package/src/asset/Textures/Commons/feedItems/pinglun_bg_line.png +0 -0
  199. package/src/asset/Textures/Commons/feedItems/pinglun_bg_middle_chakan.png +0 -0
  200. package/src/asset/Textures/Commons/feedItems/pinglun_bg_middle_input.png +0 -0
  201. package/src/asset/Textures/Commons/feedItems/pinglun_bg_zan.png +0 -0
  202. package/src/asset/Textures/Commons/feedItems/pinglun_btn_middle_input.png +0 -0
  203. package/src/asset/Textures/Commons/feedItems/pinglun_btn_more.png +0 -0
  204. package/src/asset/Textures/Commons/feedItems/pinglun_btn_normal.png +0 -0
  205. package/src/asset/Textures/Commons/feedItems/pinglun_btn_photo_more.png +0 -0
  206. package/src/asset/Textures/Commons/feedItems/pinglun_btn_zhedie_a.png +0 -0
  207. package/src/asset/Textures/Commons/feedItems/pinglun_btn_zhedie_a_shadow.png +0 -0
  208. package/src/asset/Textures/Commons/feedItems/pinglun_btn_zhedie_b_normal.png +0 -0
  209. package/src/asset/Textures/Commons/feedItems/pinglun_btn_zhedie_b_pressed.png +0 -0
  210. package/src/asset/Textures/Commons/feedItems/pinglun_icon_a_normal.png +0 -0
  211. package/src/asset/Textures/Commons/feedItems/pinglun_icon_a_pressed.png +0 -0
  212. package/src/asset/Textures/Commons/feedItems/pinglun_icon_b_normal.png +0 -0
  213. package/src/asset/Textures/Commons/feedItems/pinglun_icon_c_normal.png +0 -0
  214. package/src/asset/Textures/Commons/feedItems/pinglun_icon_d.png +0 -0
  215. package/src/asset/Textures/Commons/feedItems/pinglun_icon_e.png +0 -0
  216. package/src/asset/Textures/Commons/feedItems/pinglun_icon_f_share.png +0 -0
  217. package/src/asset/Textures/Commons/feedItems/pinglun_icon_middle_input_back.png +0 -0
  218. package/src/asset/Textures/Commons/gc1_huati_bg_middle_topbtn.png +0 -0
  219. package/src/asset/Textures/Commons/gc1_huati_bg_middle_topbtn_pressd.png +0 -0
  220. package/src/asset/Textures/Commons/karaoke/rukou_bg_music.png +0 -0
  221. package/src/asset/Textures/Commons/karaoke/rukou_btn_a.png +0 -0
  222. package/src/asset/Textures/Commons/karaoke/rukou_btn_b.png +0 -0
  223. package/src/asset/Textures/Commons/karaoke/rukou_icon_b.png +0 -0
  224. package/src/asset/Textures/Commons/karaoke/rukou_icon_d.png +0 -0
  225. package/src/asset/Textures/Commons/karaoke/rukou_icon_e.png +0 -0
  226. package/src/asset/Textures/Commons/rukou_bg_bottombar_line.png +0 -0
  227. package/src/asset/Textures/Commons/rukou_icon_a.png +0 -0
  228. package/src/asset/Textures/Commons/tc_bianji_tab_a.png +0 -0
  229. package/src/asset/Textures/Commons/tc_zanshang_bg_line.png +0 -0
  230. package/src/asset/Textures/Commons/touxiang_bg_tishikuang.png +0 -0
  231. package/src/asset/Textures/Commons/video/rukou_icon_shipin.png +0 -0
  232. package/src/asset/Textures/Commons/video/xiangce_btn_bofang.png +0 -0
  233. package/src/asset/Textures/Commons/voice/rukou_icon_yuyin.png +0 -0
  234. package/src/asset/Textures/Commons/voice/tc_yuyin_bg.png +0 -0
  235. package/src/asset/Textures/Commons/voice/tc_yuyin_bg_load.png +0 -0
  236. package/src/asset/Textures/Commons/voice/tc_yuyin_bg_xinhao_a.png +0 -0
  237. package/src/asset/Textures/Commons/voice/tc_yuyin_bg_xinhao_b.png +0 -0
  238. package/src/asset/Textures/Commons/xiangce_icon_bottombar_gulita.png +0 -0
  239. package/src/asset/Textures/SocialSecond/com_tc_bg.png +0 -0
  240. package/src/asset/Textures/SocialSecond/com_tc_bg_bottom.png +0 -0
  241. package/src/asset/Textures/SocialSecond/com_tc_bg_input.png +0 -0
  242. package/src/asset/Textures/SocialSecond/com_tc_bg_tips.png +0 -0
  243. package/src/asset/Textures/SocialSecond/com_tc_bg_topbar_a.png +0 -0
  244. package/src/asset/Textures/SocialSecond/com_tc_bg_topbar_line.png +0 -0
  245. package/src/asset/Textures/SocialSecond/com_tc_bg_upload_photo.png +0 -0
  246. package/src/asset/Textures/SocialSecond/com_tc_bg_upload_photo_line.png +0 -0
  247. package/src/asset/Textures/SocialSecond/com_tc_bg_zhaopian_line.png +0 -0
  248. package/src/asset/Textures/SocialSecond/com_tc_btn.png +0 -0
  249. package/src/asset/Textures/SocialSecond/com_tc_btn_close.png +0 -0
  250. package/src/asset/Textures/SocialSecond/com_tc_btn_upload_photo.png +0 -0
  251. package/src/asset/Textures/SocialSecond/com_tc_radio_normal.png +0 -0
  252. package/src/asset/Textures/SocialSecond/com_tc_radio_normal_@slice_0.png +0 -0
  253. package/src/asset/Textures/SocialSecond/com_tc_radio_selected.png +0 -0
  254. package/src/asset/Textures/SocialSecond/com_tc_tab_a.png +0 -0
  255. package/src/asset/Textures/SocialSecond/gc1_huati_bg_middle_topbar.png +0 -0
  256. package/src/asset/Textures/SocialSecond/gc1_huati_bg_middle_topbar_pre.png +0 -0
  257. package/src/asset/Textures/SocialSecond/newmessage_bg_left_line.png +0 -0
  258. package/src/asset/Textures/SocialSecond/newmessage_bg_left_normal.png +0 -0
  259. package/src/asset/Textures/SocialSecond/newmessage_bg_left_selected.png +0 -0
  260. package/src/asset/Textures/SocialSecond/newmessage_bg_middle_new.png +0 -0
  261. package/src/asset/Textures/SocialSecond/paihang_bg_list.png +0 -0
  262. package/src/asset/Textures/SocialSecond/paihang_bg_list_line.png +0 -0
  263. package/src/asset/Textures/SocialSecond/paihang_bg_list_my.png +0 -0
  264. package/src/asset/Textures/SocialSecond/paihang_bg_list_top.png +0 -0
  265. package/src/asset/Textures/SocialSecond/paihang_bg_topbar_a.png +0 -0
  266. package/src/asset/Textures/SocialSecond/paihang_icon_topbar_selected.png +0 -0
  267. package/src/asset/Textures/SocialSecond/paihang_pic_1.png +0 -0
  268. package/src/asset/Textures/SocialSecond/paihang_pic_2.png +0 -0
  269. package/src/asset/Textures/SocialSecond/tc_fadongtai_btn_close.png +0 -0
  270. package/src/asset/Textures/SocialSecond/tc_guanzhu_bg_topbar.png +0 -0
  271. package/src/asset/Textures/SocialSecond/tc_guanzhu_bg_topbar_selected.png +0 -0
  272. package/src/asset/Textures/SocialSecond/tc_liwu_bg.png +0 -0
  273. package/src/asset/Textures/SocialSecond/tc_liwu_bg_daoju.png +0 -0
  274. package/src/asset/Textures/SocialSecond/tc_liwu_btn_a.png +0 -0
  275. package/src/asset/Textures/SocialSecond/tc_liwu_btn_b.png +0 -0
  276. package/src/asset/Textures/SocialSecond/tc_liwu_btn_c.png +0 -0
  277. package/src/asset/Textures/SocialSecond/tc_liwu_pic_daoju1.png +0 -0
  278. package/src/asset/Textures/SocialSecond/tc_liwu_pic_daoju2.png +0 -0
  279. package/src/asset/Textures/SocialSecond/tc_liwu_pic_daoju3.png +0 -0
  280. package/src/asset/Textures/SocialSecond/tc_pinglun_bg.png +0 -0
  281. package/src/asset/Textures/SocialSecond/tc_shipin_tianjiashipin.png +0 -0
  282. package/src/asset/Textures/SocialSecond/tc_yuyin_bg.png +0 -0
  283. package/src/asset/Textures/SocialSecond/tc_yuyin_bg_delete.png +0 -0
  284. package/src/asset/Textures/SocialSecond/tc_yuyin_bg_xinhao_a.png +0 -0
  285. package/src/asset/Textures/SocialSecond/tc_yuyin_bg_xinhao_b.png +0 -0
  286. package/src/asset/Textures/SocialSecond/tc_yuyin_star.png +0 -0
  287. package/src/asset/Textures/SocialSecond/tc_yuyin_stop.png +0 -0
  288. package/src/asset/Textures/SocialSecond/tc_zanshang_bg_line.png +0 -0
  289. package/src/asset/Textures/SocialSecond/touxiang_bg_tishikuang.png +0 -0
  290. package/src/asset/Textures/SocialSecond/xiangce_huadong.png +0 -0
  291. package/src/asset/Textures/SocialSecond/xiangce_huadong_xuanzhong.png +0 -0
  292. package/src/asset/Textures/SocialSecond/xiangce_icon_xiazai.png +0 -0
  293. package/src/asset/Textures/SocialVideo/com_home_btn_close.png +0 -0
  294. package/src/asset/Textures/SocialVideo/tc_shipin_bg_guodu.png +0 -0
  295. package/src/asset/Textures/SocialVideo/tc_shipin_jinduanjian.png +0 -0
  296. package/src/asset/Textures/SocialVideo/tc_shipin_jindutiao.png +0 -0
  297. package/src/asset/Textures/SocialVideo/tc_shipin_jindutiao_hui.png +0 -0
  298. package/src/asset/Textures/SocialVideo/tc_shipin_play.png +0 -0
  299. package/src/asset/Textures/SocialVideo/tc_shipin_play_big.png +0 -0
  300. package/src/asset/Textures/SocialVideo/tc_shipin_stop.png +0 -0
  301. package/src/asset/laugh.gif +0 -0
  302. package/src/asset/npms.png +0 -0
  303. package/src/asset/pixui.png +0 -0
  304. package/src/asset/preact.png +0 -0
  305. package/src/asset/template.html +0 -47
  306. package/src/common/frame/appsettings.js +0 -111
  307. package/src/common/frame/common.js +0 -17
  308. package/src/common/frame/platform-api-callback.js +0 -341
  309. package/src/common/frame/platform-api.d.ts +0 -156
  310. package/src/common/frame/platform-api.js +0 -479
  311. package/src/common/main.less +0 -119
  312. package/src/pixUIReactComponents/README.md +0 -8
  313. package/src/pixUIReactComponents/package.json +0 -11
  314. package/src/pixUIReactComponents/tsconfig.json +0 -45
  315. package/src/pixUIReactUtils/GenerateConstructorAndGeterSeter.js +0 -227
  316. package/src/pixUIReactUtils/MakeImage.js +0 -207
  317. package/src/pixUIReactUtils/README.md +0 -124
  318. package/src/pixUIReactUtils/Version.js +0 -3
  319. package/src/pixUIReactUtils/img/makeImage.png +0 -0
  320. package/src/pixUIReactUtils/index.js +0 -1
  321. package/src/pixUIReactUtils/package.json +0 -16
  322. package/src/preprocess/index.html +0 -48
  323. package/src/preprocess/main.tsx +0 -17
  324. package/src/preprocess/preprocesspage.tsx +0 -41
  325. /package/{src/pixUIReactComponents/cmdAfterTsBuild.js → cmdAfterTsBuild.js} +0 -0
  326. /package/{src/pixUIReactComponents/index.js → index.js} +0 -0
  327. /package/{src/pixUIReactComponents/tools → tools}/EventDispatcherJs.tsx +0 -0
  328. /package/{src/pixUIReactComponents/tools → tools}/Logger.tsx +0 -0
  329. /package/{src/pixUIReactComponents/tools → tools}/img/logger.png +0 -0
  330. /package/{src/pixUIReactComponents/tools → tools}/tools.md +0 -0
  331. /package/{src/pixUIReactComponents/ui → ui}/components/bulletscreen/BulletItemAnimation.tsx +0 -0
  332. /package/{src/pixUIReactComponents/ui → ui}/components/bulletscreen/BulletScreenAnimation.tsx +0 -0
  333. /package/{src/pixUIReactComponents/ui → ui}/components/bulletscreen/bullet.less +0 -0
  334. /package/{src/pixUIReactComponents/ui → ui}/components/button/Button.tsx +0 -0
  335. /package/{src/pixUIReactComponents/ui → ui}/components/carousel/Carousel.tsx +0 -0
  336. /package/{src/pixUIReactComponents/ui → ui}/components/checkBox/CheckBox.tsx +0 -0
  337. /package/{src/pixUIReactComponents/ui → ui}/components/dropdown/Dropdown.tsx +0 -0
  338. /package/{src/pixUIReactComponents/ui → ui}/components/dropdown/DropdownOptionUI.tsx +0 -0
  339. /package/{src/pixUIReactComponents/ui → ui}/components/dropdown/DropdownSpreadMainUI.tsx +0 -0
  340. /package/{src/pixUIReactComponents/ui → ui}/components/dropdown/DropdownUnspreadMainUI.tsx +0 -0
  341. /package/{src/pixUIReactComponents/ui → ui}/components/gradient/GradientText.tsx +0 -0
  342. /package/{src/pixUIReactComponents/ui → ui}/components/outlinetext/OutlineText.tsx +0 -0
  343. /package/{src/pixUIReactComponents/ui → ui}/components/progress/Progress.tsx +0 -0
  344. /package/{src/pixUIReactComponents/ui → ui}/components/slapface/Slapface.tsx +0 -0
  345. /package/{src/pixUIReactComponents/ui → ui}/components/slapface/less/Slapface.less +0 -0
  346. /package/{src/pixUIReactComponents/ui → ui}/components/slider/Slider.tsx +0 -0
  347. /package/{src/pixUIReactComponents/ui → ui}/components/tab/Tab.tsx +0 -0
  348. /package/{src/pixUIReactComponents/ui → ui}/components/tab/Tabs.tsx +0 -0
  349. /package/{src/pixUIReactComponents/ui → ui}/components/togglegroup/ToggleGroup.tsx +0 -0
  350. /package/{src/pixUIReactComponents/ui → ui}/components/videoplayer/VideoPlayer.tsx +0 -0
  351. /package/{src/pixUIReactComponents/ui → ui}/components/waterfallcomponent/WaterfallComponent.jsx +0 -0
  352. /package/{src/pixUIReactComponents/ui → ui}/components/waterfallcomponent/less/WaterfallComponent.less +0 -0
  353. /package/{src/pixUIReactComponents/ui → ui}/sample/Images.tsx +0 -0
  354. /package/{src/pixUIReactComponents/ui → ui}/sample/OutlineText/OutlineDemo.tsx +0 -0
  355. /package/{src/pixUIReactComponents/ui → ui}/sample/Slapface/SlapfaceDemo.tsx +0 -0
  356. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/btn_close.png +0 -0
  357. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/changtai_button.jpg +0 -0
  358. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/checkbox0.png +0 -0
  359. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/checkbox1.png +0 -0
  360. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/data_arrow_down.png +0 -0
  361. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/data_arrow_up.png +0 -0
  362. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/dot.png +0 -0
  363. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/inner.png +0 -0
  364. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/item_reddot.png +0 -0
  365. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/loading.png +0 -0
  366. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/money_dropdown.png +0 -0
  367. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/money_dropdownall.png +0 -0
  368. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/outer.png +0 -0
  369. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic1.png +0 -0
  370. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic2.png +0 -0
  371. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic3.png +0 -0
  372. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic4.png +0 -0
  373. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic5.png +0 -0
  374. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/slapface_samplepic6.png +0 -0
  375. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/tab_choosed.png +0 -0
  376. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/tabs_bg.png +0 -0
  377. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/video_pause.png +0 -0
  378. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/video_play.png +0 -0
  379. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/video_reload.png +0 -0
  380. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/xuanfu_button.jpg +0 -0
  381. /package/{src/pixUIReactComponents/ui → ui}/sample/asset/yaxia_button.jpg +0 -0
  382. /package/{src/pixUIReactComponents/ui → ui}/sample/bulletscreen/BulletDemo.tsx +0 -0
  383. /package/{src/pixUIReactComponents/ui → ui}/sample/button/ButtonDemo.tsx +0 -0
  384. /package/{src/pixUIReactComponents/ui → ui}/sample/carousel/carouselDemo.tsx +0 -0
  385. /package/{src/pixUIReactComponents/ui → ui}/sample/checkBox/checkBoxDemo.tsx +0 -0
  386. /package/{src/pixUIReactComponents/ui → ui}/sample/dropdown/DropdownDemo.tsx +0 -0
  387. /package/{src/pixUIReactComponents/ui → ui}/sample/dropdown/MoneyDropdownOption.tsx +0 -0
  388. /package/{src/pixUIReactComponents/ui → ui}/sample/dropdown/MoneyDropdownSpreadMain.tsx +0 -0
  389. /package/{src/pixUIReactComponents/ui → ui}/sample/dropdown/MoneyDropdownUnspreadMain.tsx +0 -0
  390. /package/{src/pixUIReactComponents/ui → ui}/sample/gradient/GradientDemo.tsx +0 -0
  391. /package/{src/pixUIReactComponents/ui → ui}/sample/less/video.less +0 -0
  392. /package/{src/pixUIReactComponents/ui → ui}/sample/progress/ProgressDemo.tsx +0 -0
  393. /package/{src/pixUIReactComponents/ui → ui}/sample/slider/SliderDemo.tsx +0 -0
  394. /package/{src/pixUIReactComponents/ui → ui}/sample/tab/TabDemo.tsx +0 -0
  395. /package/{src/pixUIReactComponents/ui → ui}/sample/tab/TopTab.tsx +0 -0
  396. /package/{src/pixUIReactComponents/ui → ui}/sample/togglegroup/ToggleGroupDemo.tsx +0 -0
  397. /package/{src/pixUIReactComponents/ui → ui}/sample/videoplayer/VideoPlayerDemo.tsx +0 -0
  398. /package/{src/pixUIReactComponents/ui → ui}/sample/waterfallcomponent/WaterfallComponentDemo.jsx +0 -0
  399. /package/{src/pixUIReactComponents/ui → ui}/ui.md +0 -0
@@ -1,442 +0,0 @@
1
- import React, { createRef, PureComponent } from 'react';
2
- import { render } from 'react-dom';
3
- import { Simulate } from 'react-dom/test-utils';
4
- import ReactTestRenderer from 'react-test-renderer';
5
- import { VariableSizeList } from '..';
6
-
7
- const simulateScroll = (instance, scrollOffset, direction = 'vertical') => {
8
- if (direction === 'horizontal') {
9
- instance._outerRef.scrollLeft = scrollOffset;
10
- } else {
11
- instance._outerRef.scrollTop = scrollOffset;
12
- }
13
- Simulate.scroll(instance._outerRef);
14
- };
15
-
16
- const findScrollContainer = rendered => rendered.root.children[0].children[0];
17
-
18
- describe('VariableSizeList', () => {
19
- let itemRenderer, itemSize, defaultProps, onItemsRendered;
20
-
21
- // Use PureComponent to test memoization.
22
- // Pass through to itemRenderer mock for easier test assertions.
23
- class PureItemRenderer extends PureComponent {
24
- render() {
25
- return itemRenderer(this.props);
26
- }
27
- }
28
-
29
- beforeEach(() => {
30
- jest.useFakeTimers();
31
-
32
- // JSdom does not do actual layout and so doesn't return meaningful values here.
33
- // For the purposes of our tests though, we can mock out semi-meaningful values.
34
- // This mock is required for e.g. "onScroll" tests to work properly.
35
- Object.defineProperties(HTMLElement.prototype, {
36
- clientWidth: {
37
- configurable: true,
38
- get: function() {
39
- return parseInt(this.style.width, 10) || 0;
40
- },
41
- },
42
- clientHeight: {
43
- configurable: true,
44
- get: function() {
45
- return parseInt(this.style.height, 10) || 0;
46
- },
47
- },
48
- scrollHeight: {
49
- configurable: true,
50
- get: () => Number.MAX_SAFE_INTEGER,
51
- },
52
- scrollWidth: {
53
- configurable: true,
54
- get: () => Number.MAX_SAFE_INTEGER,
55
- },
56
- });
57
-
58
- itemRenderer = jest.fn(({ style, ...rest }) => (
59
- <div style={style}>{JSON.stringify(rest, null, 2)}</div>
60
- ));
61
- itemSize = jest.fn(index => 25 + index);
62
- onItemsRendered = jest.fn();
63
- defaultProps = {
64
- children: PureItemRenderer,
65
- estimatedItemSize: 25,
66
- height: 100,
67
- itemCount: 20,
68
- itemSize,
69
- onItemsRendered,
70
- width: 50,
71
- };
72
- });
73
-
74
- // Much of the shared List functionality is already tested by FixedSizeList tests.
75
- // This test covers functionality that is unique to VariableSizeList.
76
-
77
- it('should render an empty list', () => {
78
- ReactTestRenderer.create(
79
- <VariableSizeList {...defaultProps} itemCount={0} />
80
- );
81
- expect(itemSize).not.toHaveBeenCalled();
82
- expect(itemRenderer).not.toHaveBeenCalled();
83
- expect(onItemsRendered).not.toHaveBeenCalled();
84
- });
85
-
86
- it('changing itemSize does not impact the rendered items', () => {
87
- const rendered = ReactTestRenderer.create(
88
- <VariableSizeList {...defaultProps} />
89
- );
90
- itemRenderer.mockClear();
91
- rendered.update(
92
- <VariableSizeList
93
- {...defaultProps}
94
- itemSize={index => 50}
95
- onItemsRendered={onItemsRendered}
96
- />
97
- );
98
- expect(itemRenderer).not.toHaveBeenCalled();
99
- });
100
-
101
- describe('estimatedItemSize', () => {
102
- it('should estimate an initial scrollable size based on this value', () => {
103
- const itemSize = jest.fn(() => 25);
104
- const rendered = ReactTestRenderer.create(
105
- <VariableSizeList
106
- {...defaultProps}
107
- estimatedItemSize={50}
108
- height={100}
109
- itemCount={100}
110
- itemSize={itemSize}
111
- overscanCount={0}
112
- />
113
- );
114
- // We'll render 5 rows initially, each at 25px tall (125px total).
115
- // The remaining 95 rows will be estimated at 50px tall (4,750px total).
116
- // This means an initial height estimate of 4,875px.
117
- expect(itemSize).toHaveBeenCalledTimes(5);
118
- const scrollContainer = findScrollContainer(rendered);
119
- expect(scrollContainer.props.style.height).toEqual(4875);
120
- });
121
-
122
- it('should udpate the scrollable size as more items are measured', () => {
123
- const itemSize = jest.fn(() => 25);
124
- const rendered = ReactTestRenderer.create(
125
- <VariableSizeList
126
- {...defaultProps}
127
- estimatedItemSize={50}
128
- itemCount={100}
129
- itemSize={itemSize}
130
- overscanCount={0}
131
- />
132
- );
133
- rendered.getInstance().scrollToItem(18);
134
- // Including the additional 1 (minimum) overscan row,
135
- // We've now measured 20 rows, each at 25px tall (500px total).
136
- // The remaining 80 rows will be estimated at 50px tall (4,500px total).
137
- // This means an updated height estimate of 4,500px.
138
- expect(itemSize).toHaveBeenCalledTimes(20);
139
- const scrollContainer = findScrollContainer(rendered);
140
- expect(scrollContainer.props.style.height).toEqual(4500);
141
- });
142
- });
143
-
144
- describe('scrollToItem method', () => {
145
- it('should not set invalid offsets when the list contains few items', () => {
146
- const onScroll = jest.fn();
147
- const rendered = ReactTestRenderer.create(
148
- <VariableSizeList {...defaultProps} itemCount={3} onScroll={onScroll} />
149
- );
150
- expect(onItemsRendered).toMatchSnapshot();
151
- onItemsRendered.mockClear();
152
- rendered.getInstance().scrollToItem(0);
153
- expect(onItemsRendered).not.toHaveBeenCalled();
154
- });
155
-
156
- it('should scroll to the correct item for align = "auto"', () => {
157
- const onItemsRendered = jest.fn();
158
- const rendered = ReactTestRenderer.create(
159
- <VariableSizeList {...defaultProps} onItemsRendered={onItemsRendered} />
160
- );
161
- // Scroll down enough to show item 10 at the bottom.
162
- rendered.getInstance().scrollToItem(10, 'auto');
163
- // No need to scroll again; item 9 is already visible.
164
- // Overscan indices will change though, since direction changes.
165
- rendered.getInstance().scrollToItem(9, 'auto');
166
- // Scroll up enough to show item 2 at the top.
167
- rendered.getInstance().scrollToItem(2, 'auto');
168
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
169
- });
170
-
171
- it('scroll with align = "auto" should work with partially-visible items', () => {
172
- const rendered = ReactTestRenderer.create(
173
- // Create list where items don't fit exactly into container.
174
- // The container has space for 3 1/3 items.
175
- <VariableSizeList
176
- {...defaultProps}
177
- itemCount={100}
178
- itemSize={() => 30}
179
- />
180
- );
181
- // Scroll down enough to show item 10 at the bottom.
182
- // Should show 4 items: 3 full and one partial at the beginning
183
- rendered.getInstance().scrollToItem(10, 'auto');
184
- // No need to scroll again; item 9 is already visible.
185
- // Because there's no scrolling, it won't call onItemsRendered.
186
- rendered.getInstance().scrollToItem(9, 'auto');
187
- // Scroll to near the end. #96 will be shown as partial.
188
- rendered.getInstance().scrollToItem(99, 'auto');
189
- // Scroll back to show #96 fully. This will cause #99 to be shown as a
190
- // partial. Because #96 was already shown previously as a partial, all
191
- // props of the onItemsRendered will be the same. This means that even
192
- // though a scroll happened in the DOM, onItemsRendered won't be called.
193
- rendered.getInstance().scrollToItem(96, 'auto');
194
- // Scroll forward again. Because item #99 was already shown partially,
195
- // all props of the onItemsRendered will be the same.
196
- rendered.getInstance().scrollToItem(99, 'auto');
197
- // Scroll to the second item. A partial fifth item should
198
- // be shown after it.
199
- rendered.getInstance().scrollToItem(1, 'auto');
200
- // Scroll to the first item. Now the fourth item should be a partial.
201
- rendered.getInstance().scrollToItem(0, 'auto');
202
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
203
- });
204
-
205
- it('should scroll to the correct item for align = "start"', () => {
206
- const onItemsRendered = jest.fn();
207
- const rendered = ReactTestRenderer.create(
208
- <VariableSizeList {...defaultProps} onItemsRendered={onItemsRendered} />
209
- );
210
- // Scroll down enough to show item 10 at the top.
211
- rendered.getInstance().scrollToItem(10, 'start');
212
- // Scroll back up so that item 9 is at the top.
213
- // Overscroll direction wil change too.
214
- rendered.getInstance().scrollToItem(9, 'start');
215
- // Item 19 can't align at the top because there aren't enough items.
216
- // Scroll down as far as possible though.
217
- // Overscroll direction wil change again.
218
- rendered.getInstance().scrollToItem(19, 'start');
219
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
220
- });
221
-
222
- it('should scroll to the correct item for align = "end"', () => {
223
- const onItemsRendered = jest.fn();
224
- const rendered = ReactTestRenderer.create(
225
- <VariableSizeList {...defaultProps} onItemsRendered={onItemsRendered} />
226
- );
227
- // Scroll down enough to show item 10 at the bottom.
228
- rendered.getInstance().scrollToItem(10, 'end');
229
- // Scroll back up so that item 9 is at the bottom.
230
- // Overscroll direction wil change too.
231
- rendered.getInstance().scrollToItem(9, 'end');
232
- // Item 1 can't align at the bottom because it's too close to the beginning.
233
- // Scroll up as far as possible though.
234
- // Overscroll direction wil change again.
235
- rendered.getInstance().scrollToItem(1, 'end');
236
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
237
- });
238
-
239
- it('should scroll to the correct item for align = "center"', () => {
240
- const onItemsRendered = jest.fn();
241
- const rendered = ReactTestRenderer.create(
242
- <VariableSizeList {...defaultProps} onItemsRendered={onItemsRendered} />
243
- );
244
- // Scroll down enough to show item 10 in the middle.
245
- rendered.getInstance().scrollToItem(10, 'center');
246
- // Scroll back up so that item 9 is in the middle.
247
- // Overscroll direction wil change too.
248
- rendered.getInstance().scrollToItem(9, 'center');
249
- // Item 1 can't align in the middle because it's too close to the beginning.
250
- // Scroll up as far as possible though.
251
- // Overscroll direction wil change again.
252
- rendered.getInstance().scrollToItem(1, 'center');
253
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
254
- // Item 19 can't align in the middle because it's too close to the end.
255
- // Scroll down as far as possible though.
256
- // Overscroll direction wil change again.
257
- rendered.getInstance().scrollToItem(19, 'center');
258
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
259
- });
260
-
261
- it('should scroll to the correct item for align = "smart"', () => {
262
- const onItemsRendered = jest.fn();
263
- const rendered = ReactTestRenderer.create(
264
- <VariableSizeList {...defaultProps} onItemsRendered={onItemsRendered} />
265
- );
266
- // Scroll down enough to show item 10 in the middle.
267
- rendered.getInstance().scrollToItem(10, 'smart');
268
- // Scrolldn't scroll at all because it's close enough.
269
- rendered.getInstance().scrollToItem(9, 'smart');
270
- // Should scroll but not center because it's close enough.
271
- rendered.getInstance().scrollToItem(6, 'smart');
272
- // Item 1 can't align in the middle because it's too close to the beginning.
273
- // Scroll up as far as possible though.
274
- rendered.getInstance().scrollToItem(1, 'smart');
275
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
276
- });
277
- });
278
-
279
- describe('onScroll', () => {
280
- it('scrolling should report partial items correctly in onItemsRendered', () => {
281
- // Use ReactDOM renderer so the container ref works correctly.
282
- const instance = render(
283
- <VariableSizeList
284
- {...defaultProps}
285
- initialScrollOffset={20}
286
- itemCount={100}
287
- itemSize={() => 25}
288
- />,
289
- document.createElement('div')
290
- );
291
- // Scroll 2 items fwd, but thanks to the initialScrollOffset, we should
292
- // still be showing partials on both ends.
293
- simulateScroll(instance, 70);
294
- // Scroll a little fwd to cause partials to be hidden
295
- simulateScroll(instance, 75);
296
- // Scroll backwards to show partials again
297
- simulateScroll(instance, 70);
298
- // Scroll near the end so that the last item is shown
299
- // as a partial.
300
- simulateScroll(instance, 96 * 25 - 5);
301
- // Scroll to the end. No partials.
302
- simulateScroll(instance, 96 * 25);
303
- // Verify that backwards scrolling near the end works OK.
304
- simulateScroll(instance, 96 * 25 - 5);
305
- expect(onItemsRendered.mock.calls).toMatchSnapshot();
306
- });
307
- });
308
-
309
- describe('resetAfterIndex method', () => {
310
- it('should recalculate the estimated total size', () => {
311
- const itemSize = jest.fn(() => 75);
312
- const rendered = ReactTestRenderer.create(
313
- <VariableSizeList {...defaultProps} itemSize={index => 25} />
314
- );
315
- rendered.getInstance().scrollToItem(19);
316
- // We've measured every item initially.
317
- const scrollContainer = findScrollContainer(rendered);
318
- expect(scrollContainer.props.style.height).toEqual(500);
319
- // Supplying a new itemSize alone should not impact anything.
320
- rendered.update(
321
- <VariableSizeList {...defaultProps} itemSize={itemSize} />
322
- );
323
- expect(scrollContainer.props.style.height).toEqual(500);
324
- // Reset styles after index 15,
325
- // And verify that the new estimated total takes this into account.
326
- rendered.getInstance().resetAfterIndex(15);
327
- rendered.getInstance().scrollToItem(19);
328
- expect(itemSize).toHaveBeenCalledTimes(5);
329
- expect(scrollContainer.props.style.height).toEqual(750);
330
- });
331
-
332
- it('should delay the recalculation of the estimated total size if shouldForceUpdate is false', () => {
333
- const rendered = ReactTestRenderer.create(
334
- <VariableSizeList
335
- {...defaultProps}
336
- estimatedItemSize={30}
337
- overscanCount={1}
338
- itemSize={index => 25}
339
- />
340
- );
341
- const scrollContainer = findScrollContainer(rendered);
342
- // The estimated total size should be (100 + 25 * 1 + 30 * 15)px = 575px.
343
- expect(scrollContainer.props.style.height).toEqual(575);
344
- // Supplying a new itemSize alone should not impact anything.
345
- // Although the list get re-rendered by passing inline functions,
346
- // but it still use the cached metrics to calculate the estimated size.
347
- rendered.update(
348
- <VariableSizeList
349
- {...defaultProps}
350
- estimatedItemSize={30}
351
- overscanCount={1}
352
- itemSize={index => 20}
353
- />
354
- );
355
- expect(scrollContainer.props.style.height).toEqual(575);
356
- // Reset calculation cache but don't re-render the list,
357
- // the estimated total size should stay the same.
358
- rendered.getInstance().resetAfterIndex(0, false);
359
- expect(scrollContainer.props.style.height).toEqual(575);
360
- // Pass inline function to make the list re-render.
361
- rendered.update(
362
- <VariableSizeList
363
- {...defaultProps}
364
- estimatedItemSize={30}
365
- overscanCount={1}
366
- itemSize={index => 20}
367
- />
368
- );
369
- // The estimated total height should be (100 + 20 * 1 + 30 * 14)px = 540px.
370
- expect(scrollContainer.props.style.height).toEqual(540);
371
- });
372
-
373
- it('should re-render items after the specified index with updated styles', () => {
374
- const itemSize = jest.fn(() => 75);
375
- const rendered = ReactTestRenderer.create(
376
- <VariableSizeList
377
- {...defaultProps}
378
- itemCount={5}
379
- itemSize={index => 25}
380
- />
381
- );
382
- // We've rendered 5 rows initially.
383
- expect(itemRenderer).toHaveBeenCalledTimes(5);
384
- expect(itemRenderer.mock.calls[3][0].style.height).toBe(25);
385
- // Supplying a new itemSize alone should not impact anything.
386
- rendered.update(
387
- <VariableSizeList {...defaultProps} itemCount={5} itemSize={itemSize} />
388
- );
389
- // Reset styles for rows 4 and 5.
390
- // And verify that the affected rows are re-rendered with new styles.
391
- itemRenderer.mockClear();
392
- rendered.getInstance().resetAfterIndex(3);
393
- expect(itemRenderer).toHaveBeenCalledTimes(5);
394
- expect(itemRenderer.mock.calls[3][0].style.height).toBe(75);
395
- });
396
- });
397
-
398
- describe('props validation', () => {
399
- beforeEach(() => spyOn(console, 'error'));
400
-
401
- it('should fail if non-function itemSize is provided', () => {
402
- expect(() =>
403
- ReactTestRenderer.create(
404
- <VariableSizeList {...defaultProps} itemSize={123} />
405
- )
406
- ).toThrow(
407
- 'An invalid "itemSize" prop has been specified. ' +
408
- 'Value should be a function. "number" was specified.'
409
- );
410
- });
411
- });
412
-
413
- // https://github.com/bvaughn/react-window/pull/138
414
- it('should descrease scroll size when itemCount decreases', () => {
415
- const innerRef = createRef();
416
- const listRef = createRef();
417
-
418
- class Wrapper extends PureComponent {
419
- state = { itemCount: 100 };
420
- render() {
421
- return (
422
- <VariableSizeList
423
- {...defaultProps}
424
- itemCount={this.state.itemCount}
425
- innerRef={innerRef}
426
- ref={listRef}
427
- />
428
- );
429
- }
430
- }
431
-
432
- // Use ReactDOM renderer so "scroll" events work correctly.
433
- const instance = render(<Wrapper />, document.createElement('div'));
434
-
435
- // Simulate scrolling past several rows.
436
- simulateScroll(listRef.current, 3000);
437
-
438
- // Decrease itemCount a lot and verify the scroll height is descreased as well.
439
- instance.setState({ itemCount: 3 });
440
- expect(innerRef.current.style.height).toEqual('78px');
441
- });
442
- });