From 0a0e4ee695b1d93084dc49d810297a3b50d8a5e0 Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Sat, 7 Nov 2026 13:07:55 +0900 Subject: events: 終了バッジを日付の次の行に置き、共有ボタンを共有メニューに MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 日付セルの「終了」を block にして改行して表示し、日付列が広がらない ようにした。共有ボタンのアイコンを指定の share-2 に変え、押すと 端末の共有メニュー(navigator.share)を開くようにした。非対応の ブラウザでは従来どおり文面をコピーする。 --- src/components/ScheduleTable.astro | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/components') diff --git a/src/components/ScheduleTable.astro b/src/components/ScheduleTable.astro index 2ce073b..1e23000 100644 --- a/src/components/ScheduleTable.astro +++ b/src/components/ScheduleTable.astro @@ -61,7 +61,7 @@ const dateHtml = (html: string) => const KINDS: { kind: string; label: string }[] = [ { kind: 'x', label: 'Xでシェア' }, - { kind: 'copy', label: '共有用の文面をコピー' }, + { kind: 'share', label: '共有する' }, ]; function attachButtons() { @@ -125,7 +125,19 @@ const dateHtml = (html: string) => return; } - // コピー:Instagram・Facebookなど、文面を直接渡せないSNSにも貼れる + // 共有:端末の共有メニュー(Instagram・メール・メモなど)を開く。 + // 非対応のブラウザでは、文面をコピーして貼り付けられるようにする。 + const share = (navigator as Navigator & { share?: (data: ShareData) => Promise }) + .share; + if (share) { + try { + await share.call(navigator, { text, url }); + } catch { + // キャンセルされた場合は何もしない + } + return; + } + try { await navigator.clipboard.writeText(`${text}\n${url}`); const original = button.title; @@ -138,7 +150,7 @@ const dateHtml = (html: string) => button.setAttribute('aria-label', original); }, 1500); } catch { - window.alert('このブラウザではコピーできませんでした。文面を選択してコピーしてください。'); + window.alert('このブラウザでは共有メニューもコピーも使えません。文面を選択してコピーしてください。'); } }); -- cgit v1.3.1