useRegisterImage.js 964 B

1234567891011121314151617181920212223242526272829303132
  1. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  2. import * as React from 'react';
  3. import { PreviewGroupContext } from "../context";
  4. var uid = 0;
  5. export default function useRegisterImage(canPreview, data) {
  6. var _React$useState = React.useState(function () {
  7. uid += 1;
  8. return String(uid);
  9. }),
  10. _React$useState2 = _slicedToArray(_React$useState, 1),
  11. id = _React$useState2[0];
  12. var groupContext = React.useContext(PreviewGroupContext);
  13. var registerData = {
  14. data: data,
  15. canPreview: canPreview
  16. };
  17. // Keep order start
  18. // Resolve https://github.com/ant-design/ant-design/issues/28881
  19. // Only need unRegister when component unMount
  20. React.useEffect(function () {
  21. if (groupContext) {
  22. return groupContext.register(id, registerData);
  23. }
  24. }, []);
  25. React.useEffect(function () {
  26. if (groupContext) {
  27. groupContext.register(id, registerData);
  28. }
  29. }, [canPreview, data]);
  30. return id;
  31. }