Fix: Into reload issue
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
|
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
|
||||||
<script src="word-data.js?v=5" defer></script>
|
<script src="word-data.js?v=5" defer></script>
|
||||||
<script src="supabase-config.js?v=1" defer></script>
|
<script src="supabase-config.js?v=1" defer></script>
|
||||||
<script src="script.js?v=9" defer></script>
|
<script src="script.js?v=10" defer></script>
|
||||||
</head>
|
</head>
|
||||||
<body class="intro-active dark-theme">
|
<body class="intro-active dark-theme">
|
||||||
<section class="intro-overlay" id="intro-overlay" aria-label="Animated Wordle intro" role="dialog" aria-modal="true">
|
<section class="intro-overlay" id="intro-overlay" aria-label="Animated Wordle intro" role="dialog" aria-modal="true">
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
|
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
|
||||||
<script src="word-data.js?v=5" defer></script>
|
<script src="word-data.js?v=5" defer></script>
|
||||||
<script src="supabase-config.js?v=1" defer></script>
|
<script src="supabase-config.js?v=1" defer></script>
|
||||||
<script src="script.js?v=9" defer></script>
|
<script src="script.js?v=10" defer></script>
|
||||||
</head>
|
</head>
|
||||||
<body class="intro-active dark-theme">
|
<body class="intro-active dark-theme">
|
||||||
<section class="intro-overlay" id="intro-overlay" aria-label="Animated Wordle intro" role="dialog" aria-modal="true">
|
<section class="intro-overlay" id="intro-overlay" aria-label="Animated Wordle intro" role="dialog" aria-modal="true">
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ const STATS_KEY = "fancy-wordle-stats-v2"
|
|||||||
const LOCAL_ROUND_KEY = "fancy-wordle-hourly-round-v1"
|
const LOCAL_ROUND_KEY = "fancy-wordle-hourly-round-v1"
|
||||||
const PLAY_INTERVAL_MS = 60 * 60 * 1000
|
const PLAY_INTERVAL_MS = 60 * 60 * 1000
|
||||||
const GUESS_TIMEOUT_MS = 10000
|
const GUESS_TIMEOUT_MS = 10000
|
||||||
|
const INTRO_SEEN_KEY = "fancy-wordle-intro-seen-v1"
|
||||||
const INTRO_DURATION_MS = 5200
|
const INTRO_DURATION_MS = 5200
|
||||||
const INTRO_LETTER_SETS = [
|
const INTRO_LETTER_SETS = [
|
||||||
["D", "E", "S", "I", "G", "N"],
|
["D", "E", "S", "I", "G", "N"],
|
||||||
@@ -168,6 +169,14 @@ function initializeIntro() {
|
|||||||
|
|
||||||
if (introOverlay.dataset.initialized) return
|
if (introOverlay.dataset.initialized) return
|
||||||
introOverlay.dataset.initialized = "true"
|
introOverlay.dataset.initialized = "true"
|
||||||
|
|
||||||
|
if (hasSeenIntro()) {
|
||||||
|
introDismissed = true
|
||||||
|
introOverlay.hidden = true
|
||||||
|
document.body.classList.remove("intro-active")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
introDismissed = false
|
introDismissed = false
|
||||||
document.body.classList.add("intro-active")
|
document.body.classList.add("intro-active")
|
||||||
introSkipButton?.addEventListener("click", dismissIntro)
|
introSkipButton?.addEventListener("click", dismissIntro)
|
||||||
@@ -187,6 +196,22 @@ function prefersReducedMotion() {
|
|||||||
return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches
|
return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hasSeenIntro() {
|
||||||
|
try {
|
||||||
|
return sessionStorage.getItem(INTRO_SEEN_KEY) === "true"
|
||||||
|
} catch {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function rememberIntroSeen() {
|
||||||
|
try {
|
||||||
|
sessionStorage.setItem(INTRO_SEEN_KEY, "true")
|
||||||
|
} catch {
|
||||||
|
// If storage is unavailable, the intro still dismisses for the current page load.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function setIntroTile(tile, letter, status) {
|
function setIntroTile(tile, letter, status) {
|
||||||
const letterElement = tile.querySelector(".intro-letter")
|
const letterElement = tile.querySelector(".intro-letter")
|
||||||
tile.dataset.status = status
|
tile.dataset.status = status
|
||||||
@@ -248,6 +273,7 @@ function dismissIntro() {
|
|||||||
if (introDismissed) return
|
if (introDismissed) return
|
||||||
|
|
||||||
introDismissed = true
|
introDismissed = true
|
||||||
|
rememberIntroSeen()
|
||||||
clearIntroTimers()
|
clearIntroTimers()
|
||||||
setIntroFrame(INTRO_LETTER_SETS.length - 1, false)
|
setIntroFrame(INTRO_LETTER_SETS.length - 1, false)
|
||||||
introTileRow?.classList.add("is-solved", "is-logo")
|
introTileRow?.classList.add("is-solved", "is-logo")
|
||||||
|
|||||||
Reference in New Issue
Block a user