import { useState } from "react"; import { EngagementShareRecipe } from "../../services/EngagementService"; import { isApiError } from "../../types/api/error"; import ROUTE_CONSTANTS from "../../types/routes"; interface ShareButtonProps { id: number; } export default function ShareButton({ id }: ShareButtonProps) { const [clicked, setClicked] = useState(false); const clickHandler = async () => { if (clicked) return; // Copy first, so it feels fast const url = `${window.location.origin}${ROUTE_CONSTANTS.Recipe(id)}`; await navigator.clipboard.writeText(url); const result = await EngagementShareRecipe(id); if (isApiError(result)) { console.error(result.message); } setClicked(true); }; return clicked ? ( ) : ( ); }