From 94dd2bf6278e07725061eef3f918175b6b192067 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Thu, 15 Dec 2022 17:14:33 +0800 Subject: [PATCH] Fix spoiler content accidentally get leaked in document.title - Also add quotes - Add comment to why use 64 chars (soft) limit --- src/pages/status.jsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/pages/status.jsx b/src/pages/status.jsx index f0b3452d..1f2b8d7f 100644 --- a/src/pages/status.jsx +++ b/src/pages/status.jsx @@ -111,18 +111,25 @@ export default ({ id }) => { }, [heroStatus]); const heroContentText = useMemo(() => { if (!heroStatus) return ''; - const { content } = heroStatus; - const div = document.createElement('div'); - div.innerHTML = content; - let text = div.innerText.trim(); + const { spoilerText, content } = heroStatus; + let text; + if (spoilerText) { + text = spoilerText; + } else { + const div = document.createElement('div'); + div.innerHTML = content; + text = div.innerText.trim(); + } if (text.length > 64) { + // "The title should ideally be less than 64 characters in length" + // https://www.w3.org/Provider/Style/TITLE.html text = text.slice(0, 64) + '…'; } return text; }, [heroStatus]); useTitle( heroDisplayName && heroContentText - ? `${heroDisplayName}: ${heroContentText}` + ? `${heroDisplayName}: "${heroContentText}"` : 'Status', );