hooks.js 909 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {useState} from 'react';
  2. import {showModal, chooseMedia} from '@tarojs/taro';
  3. export function useUpload() {
  4. const [files, setFiles] = useState([]);
  5. function onAdd() {
  6. chooseMedia({
  7. count: 9,
  8. mediaType: ['image'],
  9. sourceType: ['album', 'camera'],
  10. success(res) {
  11. const {tempFiles} = res;
  12. setFiles(function (prev) {
  13. const imgs = tempFiles.map(val => val.tempFilePath);
  14. return [...prev, ...imgs];
  15. });
  16. },
  17. });
  18. }
  19. function onRemove(idx) {
  20. return function () {
  21. showModal({
  22. title: '删除图片',
  23. content: `你确定要删除第${idx + 1}张图片吗?`,
  24. success() {
  25. setFiles(function (prev) {
  26. const next = [...prev];
  27. next.splice(idx, 1);
  28. return next;
  29. });
  30. },
  31. });
  32. };
  33. }
  34. return [files, {onAdd, onRemove}];
  35. }