Fix: Into reload issue
This commit is contained in:
@@ -29,6 +29,7 @@ const STATS_KEY = "fancy-wordle-stats-v2"
|
||||
const LOCAL_ROUND_KEY = "fancy-wordle-hourly-round-v1"
|
||||
const PLAY_INTERVAL_MS = 60 * 60 * 1000
|
||||
const GUESS_TIMEOUT_MS = 10000
|
||||
const INTRO_SEEN_KEY = "fancy-wordle-intro-seen-v1"
|
||||
const INTRO_DURATION_MS = 5200
|
||||
const INTRO_LETTER_SETS = [
|
||||
["D", "E", "S", "I", "G", "N"],
|
||||
@@ -168,6 +169,14 @@ function initializeIntro() {
|
||||
|
||||
if (introOverlay.dataset.initialized) return
|
||||
introOverlay.dataset.initialized = "true"
|
||||
|
||||
if (hasSeenIntro()) {
|
||||
introDismissed = true
|
||||
introOverlay.hidden = true
|
||||
document.body.classList.remove("intro-active")
|
||||
return
|
||||
}
|
||||
|
||||
introDismissed = false
|
||||
document.body.classList.add("intro-active")
|
||||
introSkipButton?.addEventListener("click", dismissIntro)
|
||||
@@ -187,6 +196,22 @@ function prefersReducedMotion() {
|
||||
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) {
|
||||
const letterElement = tile.querySelector(".intro-letter")
|
||||
tile.dataset.status = status
|
||||
@@ -248,6 +273,7 @@ function dismissIntro() {
|
||||
if (introDismissed) return
|
||||
|
||||
introDismissed = true
|
||||
rememberIntroSeen()
|
||||
clearIntroTimers()
|
||||
setIntroFrame(INTRO_LETTER_SETS.length - 1, false)
|
||||
introTileRow?.classList.add("is-solved", "is-logo")
|
||||
|
||||
Reference in New Issue
Block a user