@hzab/form-render-mobile 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -41765,7 +41765,7 @@
41765
41765
  (c = []),
41766
41766
  null == r ||
41767
41767
  r.forEach(function (e) {
41768
- "string" == typeof e
41768
+ "string" == typeof e || e.ossUrl
41769
41769
  ? c.push(Promise.resolve(e))
41770
41770
  : c.push(
41771
41771
  u
@@ -41874,18 +41874,18 @@
41874
41874
  b = e.ossUrl,
41875
41875
  M = e.ossOpt,
41876
41876
  w = e.onCountExceed,
41877
- k = dg((0, a.useState)(s), 2),
41877
+ k = dg((0, a.useState)(Nb(c, p)), 2),
41878
41878
  L = k[0],
41879
41879
  x = k[1],
41880
- Y = dg((0, a.useState)(Nb(c, p)), 2),
41880
+ Y = dg((0, a.useState)(!1), 2),
41881
41881
  D = Y[0],
41882
- T = Y[1],
41883
- S = dg((0, a.useState)(!1), 2),
41884
- E = S[0],
41885
- O = S[1];
41886
- function j() {
41882
+ T = Y[1];
41883
+ function S(e) {
41884
+ return E.apply(this, arguments);
41885
+ }
41886
+ function E() {
41887
41887
  return (
41888
- (j = gb(
41888
+ (E = gb(
41889
41889
  Mb().mark(function e(t) {
41890
41890
  var n, r;
41891
41891
  return Mb().wrap(function (e) {
@@ -41895,7 +41895,7 @@
41895
41895
  if (
41896
41896
  (t.persist(),
41897
41897
  (n = t.target.files),
41898
- (r = [].concat(mb(D), mb([].slice.call(n)))),
41898
+ (r = [].concat(mb(L), mb([].slice.call(n)))),
41899
41899
  p > 0 &&
41900
41900
  r.length > p &&
41901
41901
  (w && w(r.length - p),
@@ -41918,7 +41918,7 @@
41918
41918
  case 8:
41919
41919
  r = e.sent;
41920
41920
  case 9:
41921
- (t.target.value = ""), C(r);
41921
+ (t.target.value = ""), O(r);
41922
41922
  case 11:
41923
41923
  case "end":
41924
41924
  return e.stop();
@@ -41926,13 +41926,13 @@
41926
41926
  }, e);
41927
41927
  }),
41928
41928
  )),
41929
- j.apply(this, arguments)
41929
+ E.apply(this, arguments)
41930
41930
  );
41931
41931
  }
41932
- function C(e, t) {
41932
+ function O(e, t) {
41933
41933
  var n,
41934
41934
  r = e;
41935
- ("del" !== t && p > 1 && (r = [].concat(mb(D), mb(r))), (r = Rb(e, p)), T(r), _ && v) &&
41935
+ ("del" !== t && p > 1 && (r = [].concat(mb(L), mb(r))), (r = Rb(e, p)), x(r), _ && v) &&
41936
41936
  (r =
41937
41937
  null === (n = r) || void 0 === n
41938
41938
  ? void 0
@@ -41943,12 +41943,13 @@
41943
41943
  }
41944
41944
  (0, a.useEffect)(
41945
41945
  function () {
41946
- T(Nb(c, p));
41946
+ x(Nb(c, p));
41947
41947
  },
41948
41948
  [c],
41949
41949
  );
41950
- var P = (0, a.useRef)(),
41951
- A = (0, a.useMemo)(
41950
+ var j = (0, a.useRef)(),
41951
+ C = (0, a.useRef)(),
41952
+ P = (0, a.useMemo)(
41952
41953
  function () {
41953
41954
  var e = {
41954
41955
  select: { text: "选择文件", key: "select" },
@@ -41974,7 +41975,7 @@
41974
41975
  },
41975
41976
  [i],
41976
41977
  );
41977
- function H(e) {
41978
+ function A(e) {
41978
41979
  var t = e.index;
41979
41980
  return Jw.createElement(
41980
41981
  "div",
@@ -41992,8 +41993,8 @@
41992
41993
  nu.confirm({
41993
41994
  content: "确认删除?",
41994
41995
  onConfirm: function () {
41995
- var t = ek.cloneDeep(D);
41996
- t.splice(e, 1), C(t, "del"), T(t);
41996
+ var t = ek.cloneDeep(L);
41997
+ t.splice(e, 1), O(t, "del"), x(t);
41997
41998
  },
41998
41999
  });
41999
42000
  },
@@ -42002,35 +42003,34 @@
42002
42003
  ),
42003
42004
  );
42004
42005
  }
42006
+ var H = {
42007
+ className: "aria-hidden",
42008
+ style: { display: "none" },
42009
+ id: t,
42010
+ onChange: S,
42011
+ type: "file",
42012
+ name: t,
42013
+ multiple: n,
42014
+ accept: s,
42015
+ capture: e.capture,
42016
+ };
42005
42017
  return Jw.createElement(
42006
42018
  "div",
42007
42019
  { className: "uploader" },
42008
- Jw.createElement("input", {
42009
- className: "aria-hidden",
42010
- style: { display: "none" },
42011
- ref: P,
42012
- id: t,
42013
- onChange: function (e) {
42014
- return j.apply(this, arguments);
42015
- },
42016
- type: "file",
42017
- name: t,
42018
- multiple: n,
42019
- accept: L,
42020
- capture: e.capture,
42021
- }),
42022
- D.map(function (e, t) {
42020
+ Jw.createElement("input", by({}, H, { ref: j })),
42021
+ Jw.createElement("input", by({}, H, { ref: C, id: t + "-audio", accept: "audio/*" })),
42022
+ L.map(function (e, t) {
42023
42023
  if (!e) return null;
42024
42024
  var n = e || {},
42025
42025
  r = n.type,
42026
42026
  a = n.name,
42027
42027
  i = n.url,
42028
42028
  o = void 0 === i ? (null == e ? void 0 : e.ossUrl) : i,
42029
+ s = "",
42029
42030
  l = "",
42030
- u = "",
42031
- c = void 0;
42031
+ u = void 0;
42032
42032
  if (o) {
42033
- var d = (function (e) {
42033
+ var c = (function (e) {
42034
42034
  return Ab(e, [
42035
42035
  "apng",
42036
42036
  "avif",
@@ -42049,37 +42049,37 @@
42049
42049
  "tiff",
42050
42050
  "webp",
42051
42051
  ]);
42052
- })((l = o));
42053
- (l.startsWith("data:image/") || (/[ ,]?image\//.test(s) && d) || d) && (u = Xw),
42054
- /[ ,]?video\//.test(s) &&
42055
- (function (e) {
42052
+ })((s = o));
42053
+ s.startsWith("data:image/") || c
42054
+ ? (l = Xw)
42055
+ : !(function (e) {
42056
42056
  return Ab(e, ["3gp", "mpg", "mpeg", "mp4", "m4v", "m4p", "ogv", "ogg", "mov", "webm"]);
42057
- })(l) &&
42058
- (u = Kw),
42059
- /[ ,]?audio\//.test(s) &&
42060
- (function (e) {
42057
+ })(s)
42058
+ ? (function (e) {
42061
42059
  return Ab(e, ["3gp", "adts", "mpeg", "mp3", "mp4", "ogg", "mov", "webm", "rtp", "amr", "wav"]);
42062
- })(l) &&
42063
- (u = Qw);
42064
- } else null != r && r.startsWith("image/") && ((l = Pb(e)), (u = Xw)), null != r && r.startsWith("video/") && ((l = Pb(e)), (u = Kw), (c = l)), null != r && r.startsWith("audio/") && ((l = Pb(e)), (u = Qw), (c = l));
42060
+ })(s) && (l = Qw)
42061
+ : (l = Kw);
42062
+ } else null != r && r.startsWith("image/") && ((s = Pb(e)), (l = Xw)), null != r && r.startsWith("video/") && ((s = Pb(e)), (l = Kw), (u = s)), null != r && r.startsWith("audio/") && ((s = Pb(e)), (l = Qw), (u = s));
42065
42063
  return (
42066
- m && (l = m + l),
42067
- u === Xw
42064
+ m && (s = m + s),
42065
+ l === Xw
42068
42066
  ? Jw.createElement(
42069
- H,
42067
+ A,
42070
42068
  { index: t, key: a + "_" + t },
42071
- Jw.createElement(Ob, { className: "file-item-view", src: l, alt: a }),
42069
+ Jw.createElement(Ob, { className: "file-item-view", src: s, alt: a }),
42072
42070
  )
42073
- : u === Kw
42074
- ? Jw.createElement(H, { index: t, key: a + "_" + t }, Jw.createElement(Db, { src: l, href: c }))
42075
- : u === Qw
42076
- ? Jw.createElement("audio", { src: l, controls: !0 })
42077
- : null == e
42078
- ? void 0
42079
- : e.name
42071
+ : l === Kw
42072
+ ? Jw.createElement(A, { index: t, key: a + "_" + t }, Jw.createElement(Db, { src: s, href: u }))
42073
+ : l === Qw
42074
+ ? Jw.createElement(
42075
+ A,
42076
+ { index: t, key: a + "_" + t },
42077
+ Jw.createElement("audio", { src: s, controls: !0 }),
42078
+ )
42079
+ : Jw.createElement(A, { index: t, key: a + "_" + t }, null == e ? void 0 : e.name)
42080
42080
  );
42081
42081
  }),
42082
- l || u || (p > 0 && D.length >= p)
42082
+ l || u || (p > 0 && L.length >= p)
42083
42083
  ? null
42084
42084
  : Jw.createElement(
42085
42085
  Jw.Fragment,
@@ -42089,22 +42089,19 @@
42089
42089
  {
42090
42090
  className: "uploader-add-btn",
42091
42091
  onClick: function () {
42092
- O(!0);
42092
+ T(!0);
42093
42093
  },
42094
42094
  },
42095
42095
  "+",
42096
42096
  ),
42097
42097
  Jw.createElement(Ji, {
42098
42098
  cancelText: "取消",
42099
- visible: E,
42100
- actions: A,
42099
+ visible: D,
42100
+ actions: P,
42101
42101
  onAction: function (e) {
42102
42102
  switch (e.key) {
42103
42103
  case "select":
42104
- x(s),
42105
- setTimeout(function () {
42106
- P.current.click();
42107
- }, 1e3);
42104
+ j.current.click();
42108
42105
  break;
42109
42106
  case "captureImage":
42110
42107
  (function () {
@@ -42162,7 +42159,7 @@
42162
42159
  );
42163
42160
  });
42164
42161
  })().then(function (e) {
42165
- C([e]);
42162
+ S({ persist: function () {}, target: { value: "", files: [e] } });
42166
42163
  });
42167
42164
  break;
42168
42165
  case "captureVideo":
@@ -42221,19 +42218,16 @@
42221
42218
  );
42222
42219
  });
42223
42220
  })().then(function (e) {
42224
- C([e]);
42221
+ S({ persist: function () {}, target: { value: "", files: [e] } });
42225
42222
  });
42226
42223
  break;
42227
42224
  case "captureAudio":
42228
- x("audio/*"),
42229
- setTimeout(function () {
42230
- P.current.click();
42231
- }, 1e3);
42225
+ C.current.click();
42232
42226
  }
42233
- O(!1);
42227
+ T(!1);
42234
42228
  },
42235
42229
  onClose: function () {
42236
- return O(!1);
42230
+ return T(!1);
42237
42231
  },
42238
42232
  }),
42239
42233
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/form-render-mobile",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "formily-form-render-mobile",
5
5
  "main": "lib",
6
6
  "scripts": {
@@ -100,7 +100,7 @@ export async function handleOssUpload(files, opt) {
100
100
  const promise = [];
101
101
  _files?.forEach((file) => {
102
102
  // 数据已经是 url 的情况
103
- if (typeof file === "string") {
103
+ if (typeof file === "string" || file.ossUrl) {
104
104
  promise.push(Promise.resolve(file));
105
105
  } else {
106
106
  promise.push(
@@ -50,7 +50,6 @@ function Uploader(props) {
50
50
  ossOpt,
51
51
  onCountExceed,
52
52
  } = props;
53
- const [curAccept, setCurAccept] = useState(accept);
54
53
  const [fileList, setFileList] = useState(handleInputFileList(value, maxCount));
55
54
  const [actionSheetVisible, setActionSheetVisible] = useState(false);
56
55
  useEffect(() => {
@@ -114,6 +113,7 @@ function Uploader(props) {
114
113
  }
115
114
 
116
115
  const uploaderRef = useRef();
116
+ const audioUploaderRef = useRef();
117
117
 
118
118
  const actions = useMemo(() => {
119
119
  const allEnum = {
@@ -134,33 +134,44 @@ function Uploader(props) {
134
134
  function onPicker({ key }) {
135
135
  switch (key) {
136
136
  case "select":
137
- // uploaderRef.current.click();
138
- setCurAccept(accept);
139
- setTimeout(() => {
140
- uploaderRef.current.click();
141
- }, 1000);
137
+ uploaderRef.current.click();
142
138
  break;
143
139
 
144
140
  case "captureImage":
145
141
  getImage().then((res) => {
146
- handleChange([res]);
142
+ onFileChange({
143
+ persist: () => {},
144
+ target: {
145
+ value: "",
146
+ files: [res],
147
+ },
148
+ });
147
149
  });
148
150
  break;
149
151
 
150
152
  case "captureVideo":
151
153
  getVideo().then((res) => {
152
- handleChange([res]);
154
+ onFileChange({
155
+ persist: () => {},
156
+ target: {
157
+ value: "",
158
+ files: [res],
159
+ },
160
+ });
153
161
  });
154
162
  break;
155
163
 
156
164
  case "captureAudio":
157
- setCurAccept("audio/*");
158
- setTimeout(() => {
159
- uploaderRef.current.click();
160
- }, 1000);
165
+ audioUploaderRef.current.click();
161
166
  // TODO: reader 报错
162
167
  // getAudio().then((res) => {
163
- // handleChange([res]);
168
+ // onFileChange({
169
+ // persist: () => {},
170
+ // target: {
171
+ // value: "",
172
+ // files: [res],
173
+ // },
174
+ // });
164
175
  // });
165
176
  break;
166
177
  }
@@ -203,20 +214,22 @@ function Uploader(props) {
203
214
  );
204
215
  }
205
216
 
217
+ const inputProps = {
218
+ className: "aria-hidden",
219
+ style: { display: "none" },
220
+ id: name,
221
+ onChange: onFileChange,
222
+ type: "file",
223
+ name: name,
224
+ multiple: multiple,
225
+ accept: accept,
226
+ capture: props.capture,
227
+ };
228
+
206
229
  return (
207
230
  <div className="uploader">
208
- <input
209
- className="aria-hidden"
210
- style={{ display: "none" }}
211
- ref={uploaderRef}
212
- id={name}
213
- onChange={onFileChange}
214
- type="file"
215
- name={name}
216
- multiple={multiple}
217
- accept={curAccept}
218
- capture={props.capture}
219
- ></input>
231
+ <input {...inputProps} ref={uploaderRef}></input>
232
+ <input {...inputProps} ref={audioUploaderRef} id={name + "-audio"} accept="audio/*"></input>
220
233
  {fileList.map((it, idx) => {
221
234
  if (!it) {
222
235
  return null;
@@ -231,15 +244,13 @@ function Uploader(props) {
231
244
  src = url;
232
245
  // 图片
233
246
  const isImg = checkImageUrl(src);
234
- if (src.startsWith("data:image/") || (/[ ,]?image\//.test(accept) && isImg) || isImg) {
247
+ if (src.startsWith("data:image/") || isImg) {
235
248
  fileType = TYPE_IMG;
236
- }
237
- // 视频
238
- if (/[ ,]?video\//.test(accept) && checkVideoUrl(src)) {
249
+ } else if (checkVideoUrl(src)) {
250
+ // 视频
239
251
  fileType = TYPE_VIDEO;
240
- }
241
- // 音频
242
- if (/[ ,]?audio\//.test(accept) && checkAudioUrl(src)) {
252
+ } else if (checkAudioUrl(src)) {
253
+ // 音频
243
254
  fileType = TYPE_AUDIO;
244
255
  }
245
256
  } else {
@@ -283,10 +294,18 @@ function Uploader(props) {
283
294
  );
284
295
  }
285
296
  if (fileType === TYPE_AUDIO) {
286
- return <audio src={src} controls></audio>;
297
+ return (
298
+ <ItemRender index={idx} key={name + "_" + idx}>
299
+ <audio src={src} controls></audio>
300
+ </ItemRender>
301
+ );
287
302
  }
288
303
 
289
- return it?.name;
304
+ return (
305
+ <ItemRender index={idx} key={name + "_" + idx}>
306
+ {it?.name}
307
+ </ItemRender>
308
+ );
290
309
  })}
291
310
  {disabled || readOnly || (maxCount > 0 && fileList.length >= maxCount) ? null : (
292
311
  <>