diff --git a/src/Game.tsx b/src/Game.tsx index 430ffe6..0606111 100644 --- a/src/Game.tsx +++ b/src/Game.tsx @@ -98,18 +98,21 @@ function Game(props: GameProps) { setGameNumber((x) => x + 1); }; - function copyToClipboard(text: string, successHint: string) { - if (!navigator.clipboard) { - setHint(text); - } else { - navigator.clipboard - .writeText(text) - .then(() => { - setHint(successHint); - }) - .catch(() => { - setHint(text); - }); + async function share(url: string, copiedHint: string, text?: string) { + try { + await navigator.share({ url, text }); + return; + } catch (e) { + console.warn("navigator.share failed:", e); + try { + const body = url + (text ? "\n\n" + text : ""); + await navigator.clipboard.writeText(body); + setHint(copiedHint); + return; + } catch (e2) { + console.warn("navigator.clipboard.writeText failed:", e2); + setHint(url); + } } } @@ -273,11 +276,11 @@ function Game(props: GameProps) { {hint || `\u00a0`}

- {gameState !== GameState.Playing && !challenge && ( + {gameState !== GameState.Playing && (

+ {" "}

)}