Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 348 | Rev 350 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 348 Rev 349
Línea 1... Línea 1...
1
import React, { useState } from "react";
1
import React from "react";
2
import { axios } from "../../../../utils";
2
import { axios } from "../../../../utils";
Línea 3... Línea 3...
3
 
3
 
4
const ShareController = ({
4
const ShareController = ({
5
  children,
5
  children,
Línea 8... Línea 8...
8
  onSuccess,
8
  onSuccess,
9
  onError,
9
  onError,
10
  onNonNativeShare,
10
  onNonNativeShare,
11
  disabled,
11
  disabled,
12
}) => {
12
}) => {
13
  const [shareUrl, setShareUrl] = useState("");
-
 
14
 
-
 
15
  const getShareUrl = async (url = "") => {
13
  const getShareUrl = async (url = "") => {
16
    await axios
14
    await axios
17
      .get(url)
15
      .get(url)
18
      .then(({ data }) => {
16
      .then(({ data }) => {
19
        if (!data.success) {
17
        if (!data.success) {
20
          dispatch(addNotification({ style: "danger", msg: data.data }));
18
          dispatch(addNotification({ style: "danger", msg: data.data }));
21
          return;
19
          return;
22
        }
20
        }
Línea 23... Línea 21...
23
 
21
 
24
        setShareUrl(data.data);
22
        return data.data;
25
      })
23
      })
26
      .catch((err) => {
24
      .catch((err) => {
27
        onError(err);
25
        onError(err);
28
        throw new Error(err);
26
        throw new Error(err);
Línea 31... Línea 29...
31
 
29
 
32
  const handleOnClick = async () => {
30
  const handleOnClick = async () => {
33
    onInteraction?.();
31
    onInteraction?.();
34
    if (navigator?.share) {
32
    if (navigator?.share) {
35
      try {
-
 
36
        try {
33
      try {
37
          getShareUrl(shareData.url);
-
 
38
        } catch (err) {
-
 
39
          onError?.(err);
-
 
40
        }
34
        const shareUrl = await getShareUrl(shareData.url);
41
        await navigator.share({ ...shareData, url: shareUrl });
35
        await navigator.share({ ...shareData, url: shareUrl });
42
        onSuccess?.();
36
        onSuccess?.();
43
      } catch (err) {
37
      } catch (err) {
44
        onError?.(err);
38
        onError?.(err);
Línea 47... Línea 41...
47
      onNonNativeShare?.();
41
      onNonNativeShare?.();
48
    }
42
    }
49
  };
43
  };
Línea 50... Línea 44...
50
 
44
 
-
 
45
  return (
51
  return (
46
    <button
-
 
47
      onClick={handleOnClick}
-
 
48
      type="button"
-
 
49
      disabled={disabled}
-
 
50
      style={{ flexGrow: 1 }}
52
    <button onClick={handleOnClick} type="button" disabled={disabled}>
51
    >
53
      {children}
52
      {children}
54
    </button>
53
    </button>
55
  );
54
  );