antd-mobile 5.36.0 → 5.37.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 (244) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +393 -295
  2. package/2x/bundle/antd-mobile.cjs.js +7 -7
  3. package/2x/bundle/antd-mobile.es.development.js +393 -295
  4. package/2x/bundle/antd-mobile.es.js +5619 -5550
  5. package/2x/bundle/antd-mobile.umd.development.js +393 -295
  6. package/2x/bundle/antd-mobile.umd.js +7 -7
  7. package/2x/bundle/style.css +5 -8
  8. package/2x/cjs/components/card/card.css +5 -5
  9. package/2x/cjs/components/card/card.patch.css +21 -0
  10. package/2x/cjs/components/center-popup/center-popup.js +46 -43
  11. package/2x/cjs/components/check-list/check-list.js +15 -11
  12. package/2x/cjs/components/collapse/collapse.d.ts +10 -2
  13. package/2x/cjs/components/collapse/collapse.js +54 -39
  14. package/2x/cjs/components/config-provider/config-provider.d.ts +40 -2
  15. package/2x/cjs/components/dropdown/context.d.ts +2 -0
  16. package/2x/cjs/components/dropdown/context.js +10 -0
  17. package/2x/cjs/components/dropdown/dropdown.d.ts +11 -3
  18. package/2x/cjs/components/dropdown/dropdown.js +23 -16
  19. package/2x/cjs/components/dropdown/index.d.ts +1 -0
  20. package/2x/cjs/components/dropdown/item.d.ts +5 -1
  21. package/2x/cjs/components/dropdown/item.js +22 -8
  22. package/2x/cjs/components/form/form-item.d.ts +6 -5
  23. package/2x/cjs/components/form/form-item.js +25 -17
  24. package/2x/cjs/components/form/form.d.ts +1 -1
  25. package/2x/cjs/components/form/index.d.ts +1 -1
  26. package/2x/cjs/components/input/input.d.ts +3 -1
  27. package/2x/cjs/components/input/input.js +53 -51
  28. package/2x/cjs/components/list/list-item.d.ts +6 -2
  29. package/2x/cjs/components/list/list-item.js +16 -6
  30. package/2x/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  31. package/2x/cjs/components/nav-bar/nav-bar.js +18 -13
  32. package/2x/cjs/components/notice-bar/notice-bar.css +0 -3
  33. package/2x/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  34. package/2x/cjs/components/notice-bar/notice-bar.js +30 -25
  35. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  36. package/2x/cjs/components/number-keyboard/number-keyboard.js +14 -13
  37. package/2x/cjs/components/popup/popup-base-props.d.ts +3 -2
  38. package/2x/cjs/components/popup/popup-base-props.js +4 -0
  39. package/2x/cjs/components/popup/popup.js +5 -5
  40. package/2x/cjs/components/result/result.js +3 -10
  41. package/2x/cjs/components/result/use-result-icon.d.ts +3 -0
  42. package/2x/cjs/components/result/use-result-icon.js +37 -0
  43. package/2x/cjs/components/result-page/result-page.js +3 -10
  44. package/2x/cjs/components/search-bar/search-bar.d.ts +10 -2
  45. package/2x/cjs/components/search-bar/search-bar.js +34 -33
  46. package/2x/cjs/components/toast/toast.d.ts +2 -2
  47. package/2x/cjs/components/toast/toast.js +4 -4
  48. package/2x/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  49. package/2x/cjs/components/virtual-input/virtual-input.js +26 -24
  50. package/2x/cjs/locales/ar-SA.js +2 -2
  51. package/2x/cjs/locales/de-DE.js +3 -3
  52. package/2x/cjs/locales/es-ES.js +2 -2
  53. package/2x/cjs/locales/fr-FR.js +1 -1
  54. package/2x/cjs/locales/in-ID.d.ts +139 -0
  55. package/2x/cjs/locales/in-ID.js +149 -0
  56. package/2x/cjs/locales/ja-JP.js +2 -2
  57. package/2x/cjs/locales/th-TH.js +2 -2
  58. package/2x/cjs/utils/is-node-with-content.d.ts +3 -0
  59. package/2x/cjs/utils/is-node-with-content.js +3 -0
  60. package/2x/cjs/utils/use-mutation-effect.d.ts +1 -0
  61. package/2x/cjs/utils/use-mutation-effect.js +20 -9
  62. package/2x/cjs/utils/with-default-props.d.ts +7 -0
  63. package/2x/cjs/utils/with-default-props.js +21 -5
  64. package/2x/es/components/card/card.css +5 -5
  65. package/2x/es/components/card/card.patch.css +21 -0
  66. package/2x/es/components/center-popup/center-popup.js +45 -42
  67. package/2x/es/components/check-list/check-list.js +15 -11
  68. package/2x/es/components/collapse/collapse.d.ts +10 -2
  69. package/2x/es/components/collapse/collapse.js +53 -38
  70. package/2x/es/components/config-provider/config-provider.d.ts +40 -2
  71. package/2x/es/components/dropdown/context.d.ts +2 -0
  72. package/2x/es/components/dropdown/context.js +2 -0
  73. package/2x/es/components/dropdown/dropdown.d.ts +11 -3
  74. package/2x/es/components/dropdown/dropdown.js +24 -17
  75. package/2x/es/components/dropdown/index.d.ts +1 -0
  76. package/2x/es/components/dropdown/item.d.ts +5 -1
  77. package/2x/es/components/dropdown/item.js +22 -8
  78. package/2x/es/components/form/form-item.d.ts +6 -5
  79. package/2x/es/components/form/form-item.js +24 -16
  80. package/2x/es/components/form/form.d.ts +1 -1
  81. package/2x/es/components/form/index.d.ts +1 -1
  82. package/2x/es/components/input/input.d.ts +3 -1
  83. package/2x/es/components/input/input.js +52 -50
  84. package/2x/es/components/list/list-item.d.ts +6 -2
  85. package/2x/es/components/list/list-item.js +16 -6
  86. package/2x/es/components/nav-bar/nav-bar.d.ts +4 -0
  87. package/2x/es/components/nav-bar/nav-bar.js +18 -13
  88. package/2x/es/components/notice-bar/notice-bar.css +0 -3
  89. package/2x/es/components/notice-bar/notice-bar.d.ts +3 -1
  90. package/2x/es/components/notice-bar/notice-bar.js +29 -24
  91. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  92. package/2x/es/components/number-keyboard/number-keyboard.js +13 -12
  93. package/2x/es/components/popup/popup-base-props.d.ts +3 -2
  94. package/2x/es/components/popup/popup-base-props.js +3 -0
  95. package/2x/es/components/popup/popup.js +5 -5
  96. package/2x/es/components/result/result.js +3 -10
  97. package/2x/es/components/result/use-result-icon.d.ts +3 -0
  98. package/2x/es/components/result/use-result-icon.js +29 -0
  99. package/2x/es/components/result-page/result-page.js +3 -10
  100. package/2x/es/components/search-bar/search-bar.d.ts +10 -2
  101. package/2x/es/components/search-bar/search-bar.js +33 -32
  102. package/2x/es/components/toast/toast.d.ts +2 -2
  103. package/2x/es/components/toast/toast.js +3 -3
  104. package/2x/es/components/virtual-input/virtual-input.d.ts +5 -5
  105. package/2x/es/components/virtual-input/virtual-input.js +25 -23
  106. package/2x/es/locales/ar-SA.js +2 -2
  107. package/2x/es/locales/de-DE.js +3 -3
  108. package/2x/es/locales/es-ES.js +2 -2
  109. package/2x/es/locales/fr-FR.js +1 -1
  110. package/2x/es/locales/in-ID.d.ts +139 -0
  111. package/2x/es/locales/in-ID.js +142 -0
  112. package/2x/es/locales/ja-JP.js +2 -2
  113. package/2x/es/locales/th-TH.js +2 -2
  114. package/2x/es/utils/is-node-with-content.d.ts +3 -0
  115. package/2x/es/utils/is-node-with-content.js +3 -0
  116. package/2x/es/utils/use-mutation-effect.d.ts +1 -0
  117. package/2x/es/utils/use-mutation-effect.js +19 -9
  118. package/2x/es/utils/with-default-props.d.ts +7 -0
  119. package/2x/es/utils/with-default-props.js +20 -5
  120. package/2x/package.json +3 -2
  121. package/bundle/antd-mobile.cjs.development.js +393 -295
  122. package/bundle/antd-mobile.cjs.js +7 -7
  123. package/bundle/antd-mobile.compatible.umd.js +1 -1
  124. package/bundle/antd-mobile.es.development.js +393 -295
  125. package/bundle/antd-mobile.es.js +5619 -5550
  126. package/bundle/antd-mobile.umd.development.js +393 -295
  127. package/bundle/antd-mobile.umd.js +7 -7
  128. package/bundle/style.css +1 -1
  129. package/cjs/components/card/card.css +5 -5
  130. package/cjs/components/card/card.patch.css +17 -0
  131. package/cjs/components/center-popup/center-popup.js +46 -43
  132. package/cjs/components/check-list/check-list.js +15 -11
  133. package/cjs/components/collapse/collapse.d.ts +10 -2
  134. package/cjs/components/collapse/collapse.js +54 -39
  135. package/cjs/components/config-provider/config-provider.d.ts +40 -2
  136. package/cjs/components/dropdown/context.d.ts +2 -0
  137. package/cjs/components/dropdown/context.js +10 -0
  138. package/cjs/components/dropdown/dropdown.d.ts +11 -3
  139. package/cjs/components/dropdown/dropdown.js +23 -16
  140. package/cjs/components/dropdown/index.d.ts +1 -0
  141. package/cjs/components/dropdown/item.d.ts +5 -1
  142. package/cjs/components/dropdown/item.js +22 -8
  143. package/cjs/components/form/form-item.d.ts +6 -5
  144. package/cjs/components/form/form-item.js +25 -17
  145. package/cjs/components/form/form.d.ts +1 -1
  146. package/cjs/components/form/index.d.ts +1 -1
  147. package/cjs/components/input/input.d.ts +3 -1
  148. package/cjs/components/input/input.js +53 -51
  149. package/cjs/components/list/list-item.d.ts +6 -2
  150. package/cjs/components/list/list-item.js +16 -6
  151. package/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  152. package/cjs/components/nav-bar/nav-bar.js +18 -13
  153. package/cjs/components/notice-bar/notice-bar.css +0 -2
  154. package/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  155. package/cjs/components/notice-bar/notice-bar.js +30 -25
  156. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  157. package/cjs/components/number-keyboard/number-keyboard.js +14 -13
  158. package/cjs/components/popup/popup-base-props.d.ts +3 -2
  159. package/cjs/components/popup/popup-base-props.js +4 -0
  160. package/cjs/components/popup/popup.js +5 -5
  161. package/cjs/components/result/result.js +3 -10
  162. package/cjs/components/result/use-result-icon.d.ts +3 -0
  163. package/cjs/components/result/use-result-icon.js +37 -0
  164. package/cjs/components/result-page/result-page.js +3 -10
  165. package/cjs/components/search-bar/search-bar.d.ts +10 -2
  166. package/cjs/components/search-bar/search-bar.js +34 -33
  167. package/cjs/components/toast/toast.css +1 -1
  168. package/cjs/components/toast/toast.d.ts +2 -2
  169. package/cjs/components/toast/toast.js +4 -4
  170. package/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  171. package/cjs/components/virtual-input/virtual-input.js +26 -24
  172. package/cjs/locales/ar-SA.js +2 -2
  173. package/cjs/locales/de-DE.js +3 -3
  174. package/cjs/locales/es-ES.js +2 -2
  175. package/cjs/locales/fr-FR.js +1 -1
  176. package/cjs/locales/in-ID.d.ts +139 -0
  177. package/cjs/locales/in-ID.js +149 -0
  178. package/cjs/locales/ja-JP.js +2 -2
  179. package/cjs/locales/th-TH.js +2 -2
  180. package/cjs/utils/is-node-with-content.d.ts +3 -0
  181. package/cjs/utils/is-node-with-content.js +3 -0
  182. package/cjs/utils/use-mutation-effect.d.ts +1 -0
  183. package/cjs/utils/use-mutation-effect.js +20 -9
  184. package/cjs/utils/with-default-props.d.ts +7 -0
  185. package/cjs/utils/with-default-props.js +21 -5
  186. package/es/components/card/card.css +5 -5
  187. package/es/components/card/card.patch.css +17 -0
  188. package/es/components/center-popup/center-popup.js +45 -42
  189. package/es/components/check-list/check-list.js +15 -11
  190. package/es/components/collapse/collapse.d.ts +10 -2
  191. package/es/components/collapse/collapse.js +53 -38
  192. package/es/components/config-provider/config-provider.d.ts +40 -2
  193. package/es/components/dropdown/context.d.ts +2 -0
  194. package/es/components/dropdown/context.js +2 -0
  195. package/es/components/dropdown/dropdown.d.ts +11 -3
  196. package/es/components/dropdown/dropdown.js +24 -17
  197. package/es/components/dropdown/index.d.ts +1 -0
  198. package/es/components/dropdown/item.d.ts +5 -1
  199. package/es/components/dropdown/item.js +22 -8
  200. package/es/components/form/form-item.d.ts +6 -5
  201. package/es/components/form/form-item.js +24 -16
  202. package/es/components/form/form.d.ts +1 -1
  203. package/es/components/form/index.d.ts +1 -1
  204. package/es/components/input/input.d.ts +3 -1
  205. package/es/components/input/input.js +52 -50
  206. package/es/components/list/list-item.d.ts +6 -2
  207. package/es/components/list/list-item.js +16 -6
  208. package/es/components/nav-bar/nav-bar.d.ts +4 -0
  209. package/es/components/nav-bar/nav-bar.js +18 -13
  210. package/es/components/notice-bar/notice-bar.css +0 -2
  211. package/es/components/notice-bar/notice-bar.d.ts +3 -1
  212. package/es/components/notice-bar/notice-bar.js +29 -24
  213. package/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  214. package/es/components/number-keyboard/number-keyboard.js +13 -12
  215. package/es/components/popup/popup-base-props.d.ts +3 -2
  216. package/es/components/popup/popup-base-props.js +3 -0
  217. package/es/components/popup/popup.js +5 -5
  218. package/es/components/result/result.js +3 -10
  219. package/es/components/result/use-result-icon.d.ts +3 -0
  220. package/es/components/result/use-result-icon.js +29 -0
  221. package/es/components/result-page/result-page.js +3 -10
  222. package/es/components/search-bar/search-bar.d.ts +10 -2
  223. package/es/components/search-bar/search-bar.js +33 -32
  224. package/es/components/toast/toast.css +1 -1
  225. package/es/components/toast/toast.d.ts +2 -2
  226. package/es/components/toast/toast.js +3 -3
  227. package/es/components/virtual-input/virtual-input.d.ts +5 -5
  228. package/es/components/virtual-input/virtual-input.js +25 -23
  229. package/es/locales/ar-SA.js +2 -2
  230. package/es/locales/de-DE.js +3 -3
  231. package/es/locales/es-ES.js +2 -2
  232. package/es/locales/fr-FR.js +1 -1
  233. package/es/locales/in-ID.d.ts +139 -0
  234. package/es/locales/in-ID.js +142 -0
  235. package/es/locales/ja-JP.js +2 -2
  236. package/es/locales/th-TH.js +2 -2
  237. package/es/utils/is-node-with-content.d.ts +3 -0
  238. package/es/utils/is-node-with-content.js +3 -0
  239. package/es/utils/use-mutation-effect.d.ts +1 -0
  240. package/es/utils/use-mutation-effect.js +19 -9
  241. package/es/utils/with-default-props.d.ts +7 -0
  242. package/es/utils/with-default-props.js +20 -5
  243. package/package.json +3 -2
  244. package/umd/antd-mobile.js +1 -1
@@ -0,0 +1,142 @@
1
+ import { mergeLocale } from '../utils/merge-locale';
2
+ import { base } from './base';
3
+ const typeTemplate = '${label} bukan ${type} yang valid';
4
+ const inID = mergeLocale(base, {
5
+ locale: 'in-ID',
6
+ common: {
7
+ confirm: 'Yakin',
8
+ cancel: 'Batal ',
9
+ loading: 'memuat',
10
+ close: 'Tutup'
11
+ },
12
+ Calendar: {
13
+ title: 'Pilih Tanggal',
14
+ confirm: 'OK',
15
+ start: 'Mulai',
16
+ end: 'Selesai',
17
+ today: 'Hari Ini',
18
+ markItems: ['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu'],
19
+ yearAndMonth: '${year} Tahun ${month} Bulan'
20
+ },
21
+ Cascader: {
22
+ placeholder: 'Silahkan Pilih'
23
+ },
24
+ Dialog: {
25
+ ok: 'Saya mendapatkannya'
26
+ },
27
+ DatePicker: {
28
+ tillNow: 'Sampai sekarang'
29
+ },
30
+ ErrorBlock: {
31
+ default: {
32
+ title: 'Halaman mengalami beberapa permasalahan kecil',
33
+ description: 'Coba lagi nanti'
34
+ },
35
+ busy: {
36
+ title: 'kepadatan diawal',
37
+ description: 'Coba untuk menyegarkan'
38
+ },
39
+ disconnected: {
40
+ title: 'jaringan sedikit sibuk',
41
+ description: 'Gerakkan jari Anda untuk membantu memperbaiki'
42
+ },
43
+ empty: {
44
+ title: 'Itu tidak menemukan apa yang Anda butuhkan',
45
+ description: 'Silahkan cari yang lain'
46
+ }
47
+ },
48
+ Form: {
49
+ required: 'Diperlukan',
50
+ optional: 'opsional untuk diisi',
51
+ defaultValidateMessages: {
52
+ default: 'Kesalahan validasi bidang ${label}',
53
+ required: 'Harap masukkan ${label}',
54
+ enum: '${label} harus salah satu dari [${enum}]',
55
+ whitespace: '${label} tidak boleh berupa karakter kosong',
56
+ date: {
57
+ format: 'Format tanggal ${label} tidak valid',
58
+ parse: '${label} tidak dapat dikonversi ke tanggal',
59
+ invalid: '${label} adalah tanggal yang tidak valid'
60
+ },
61
+ types: {
62
+ string: typeTemplate,
63
+ method: typeTemplate,
64
+ array: typeTemplate,
65
+ object: typeTemplate,
66
+ number: typeTemplate,
67
+ date: typeTemplate,
68
+ boolean: typeTemplate,
69
+ integer: typeTemplate,
70
+ float: typeTemplate,
71
+ regexp: typeTemplate,
72
+ email: typeTemplate,
73
+ url: typeTemplate,
74
+ hex: typeTemplate
75
+ },
76
+ string: {
77
+ len: '${label} harus berupa ${len} karakter',
78
+ min: '${label} Minimal ${min} karakter',
79
+ max: '${label}Maksimum ${max} karakter',
80
+ range: '${label} harus antara ${min}-${max} karakter'
81
+ },
82
+ number: {
83
+ len: '${label} harus sama dengan ${len}',
84
+ min: 'Nilai minimum ${label} adalah ${min}',
85
+ max: '${label} memiliki nilai maksimum ${max}',
86
+ range: '${label} harus antara ${min}-${max}'
87
+ },
88
+ array: {
89
+ len: 'Harus ${len} ${label}',
90
+ min: 'Minimal ${min} ${label}',
91
+ max: 'Hingga ${max} ${label}',
92
+ range: 'Jumlah ${label} harus antara ${min}-${max}'
93
+ },
94
+ pattern: {
95
+ mismatch: '${label} tidak cocok dengan pola ${pattern}'
96
+ }
97
+ }
98
+ },
99
+ ImageUploader: {
100
+ uploading: 'mengunggah...',
101
+ upload: 'diunggah'
102
+ },
103
+ InfiniteScroll: {
104
+ noMore: 'tidak ada lagi',
105
+ failedToLoad: 'Gagal memuat',
106
+ retry: 'memuat ulang'
107
+ },
108
+ Input: {
109
+ clear: 'Hapus'
110
+ },
111
+ Mask: {
112
+ name: 'lapisan pelindung'
113
+ },
114
+ Modal: {
115
+ ok: 'Saya mendapatkannya'
116
+ },
117
+ PasscodeInput: {
118
+ name: 'Kotak kata sandi'
119
+ },
120
+ PullToRefresh: {
121
+ pulling: 'Tarik ke bawah untuk menyegarkan',
122
+ canRelease: 'Lepaskan untuk menyegarkan segera',
123
+ complete: 'Segarkan berhasil'
124
+ },
125
+ SearchBar: {
126
+ name: 'Bilah Pencarian'
127
+ },
128
+ Slider: {
129
+ name: 'Penggeser'
130
+ },
131
+ Stepper: {
132
+ decrease: 'mengurangi',
133
+ increase: 'meningkat'
134
+ },
135
+ Switch: {
136
+ name: 'Mengalihkan'
137
+ },
138
+ Selector: {
139
+ name: 'Grup pilih'
140
+ }
141
+ });
142
+ export default inID;
@@ -16,7 +16,7 @@ const jaJP = mergeLocale(base, {
16
16
  placeholder: '選択下さい'
17
17
  },
18
18
  Dialog: {
19
- ok: 'わかりました'
19
+ ok: '了解'
20
20
  },
21
21
  ErrorBlock: {
22
22
  default: {
@@ -103,7 +103,7 @@ const jaJP = mergeLocale(base, {
103
103
  name: 'マスク'
104
104
  },
105
105
  Modal: {
106
- ok: 'わかりました'
106
+ ok: '了解'
107
107
  },
108
108
  PasscodeInput: {
109
109
  name: 'パスコード入力'
@@ -22,7 +22,7 @@ const thTH = mergeLocale(base, {
22
22
  placeholder: 'เลือก'
23
23
  },
24
24
  Dialog: {
25
- ok: 'โอเค'
25
+ ok: 'ฉันรู้แล้ว'
26
26
  },
27
27
  DatePicker: {
28
28
  tillNow: 'จนถึงตอนนี้'
@@ -112,7 +112,7 @@ const thTH = mergeLocale(base, {
112
112
  name: 'มาสก์'
113
113
  },
114
114
  Modal: {
115
- ok: 'ตกลง'
115
+ ok: 'ฉันรู้แล้ว'
116
116
  },
117
117
  PasscodeInput: {
118
118
  name: 'ป้อนรหัสผ่าน'
@@ -1,4 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ /**
4
+ * Check if the `node` is visible Node (not null, undefined, or false)
5
+ */
3
6
  export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
7
  export {};
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Check if the `node` is visible Node (not null, undefined, or false)
3
+ */
1
4
  export function isNodeWithContent(node) {
2
5
  return node !== undefined && node !== null && node !== false;
3
6
  }
@@ -1,2 +1,3 @@
1
1
  import { RefObject } from 'react';
2
+ export declare function observe(element: HTMLElement | null, options: MutationObserverInit, callback: VoidFunction): () => void;
2
3
  export declare function useMutationEffect(effect: () => void, targetRef: RefObject<HTMLElement>, options: MutationObserverInit): void;
@@ -1,15 +1,25 @@
1
- import { useEffect } from 'react';
2
1
  import { useMemoizedFn } from 'ahooks';
3
- export function useMutationEffect(effect, targetRef, options) {
4
- const fn = useMemoizedFn(effect);
5
- useEffect(() => {
6
- const observer = new MutationObserver(() => {
7
- fn();
2
+ import { useEffect } from 'react';
3
+ export function observe(element, options, callback) {
4
+ if (element && typeof MutationObserver !== 'undefined') {
5
+ let observer = new MutationObserver(() => {
6
+ callback();
8
7
  });
9
- if (!targetRef.current) return;
10
- observer.observe(targetRef.current, options);
8
+ observer.observe(element, options);
9
+ // Return cleanup function
11
10
  return () => {
12
- observer.disconnect();
11
+ if (observer) {
12
+ observer.disconnect();
13
+ observer = null;
14
+ }
13
15
  };
16
+ }
17
+ return () => {};
18
+ }
19
+ export function useMutationEffect(effect, targetRef, options) {
20
+ const fn = useMemoizedFn(effect);
21
+ useEffect(() => {
22
+ const cleanup = observe(targetRef.current, options, fn);
23
+ return cleanup;
14
24
  }, [targetRef]);
15
25
  }
@@ -1,2 +1,9 @@
1
1
  export declare function mergeProps<A, B>(a: A, b: B): B & A;
2
2
  export declare function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
3
+ export declare function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
4
+ /**
5
+ * Merge props and return the first non-undefined value.
6
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
7
+ * This is useful with legacy props that have been deprecated.
8
+ */
9
+ export declare function mergeProp<T, DefaultT extends T = T>(defaultProp: DefaultT, ...propList: T[]): T | undefined;
@@ -1,11 +1,26 @@
1
1
  export function mergeProps(...items) {
2
2
  const ret = {};
3
3
  items.forEach(item => {
4
- Object.keys(item).forEach(key => {
5
- if (item[key] !== undefined) {
6
- ret[key] = item[key];
7
- }
8
- });
4
+ if (item) {
5
+ Object.keys(item).forEach(key => {
6
+ if (item[key] !== undefined) {
7
+ ret[key] = item[key];
8
+ }
9
+ });
10
+ }
9
11
  });
10
12
  return ret;
13
+ }
14
+ /**
15
+ * Merge props and return the first non-undefined value.
16
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
17
+ * This is useful with legacy props that have been deprecated.
18
+ */
19
+ export function mergeProp(defaultProp, ...propList) {
20
+ for (let i = propList.length - 1; i >= 0; i -= 1) {
21
+ if (propList[i] !== undefined) {
22
+ return propList[i];
23
+ }
24
+ }
25
+ return defaultProp;
11
26
  }
package/2x/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.36.0",
3
+ "version": "5.37.0",
4
4
  "homepage": "https://github.com/ant-design/ant-design-mobile#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/ant-design/ant-design-mobile/issues"
@@ -52,7 +52,8 @@
52
52
  "use-sync-external-store": "^1.2.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
55
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
56
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
56
57
  },
57
58
  "GravityCDN": "./umd/antd-mobile.js",
58
59
  "size-limit": [