From 853671b4eb596f27c19415fd149c83229eaa7e5a Mon Sep 17 00:00:00 2001
From: Lynn
Date: Mon, 24 Jan 2022 16:27:10 +0100
Subject: [PATCH] Show share buttons on challenge; use navigator.share
---
src/Game.tsx | 55 +++++++++++++++++++++++++++-------------------------
1 file changed, 29 insertions(+), 26 deletions(-)
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 && (
+ {" "}
)}