Rev 349 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from "react";import { axios } from "../../../../utils";const ShareController = ({children,shareData,onInteraction,onSuccess,onError,onNonNativeShare,disabled,}) => {const [shareUrl, setShareUrl] = useState("");const getShareUrl = async (url = "") => {await axios.get(url).then(({ data }) => {if (!data.success) {dispatch(addNotification({ style: "danger", msg: data.data }));return;}setShareUrl(data.data);}).catch((err) => {onError(err);throw new Error(err);});};const handleOnClick = async () => {onInteraction?.();if (navigator?.share) {try {try {getShareUrl(shareData.url);} catch (err) {onError?.(err);}await navigator.share({ ...shareData, url: shareUrl });onSuccess?.();} catch (err) {onError?.(err);}} else {onNonNativeShare?.();}};return (<button onClick={handleOnClick} type="button" disabled={disabled}>{children}</button>);};export default ShareController;