removing and clean
All checks were successful
Build Authoring Service / build (push) Successful in 9s
All checks were successful
Build Authoring Service / build (push) Successful in 9s
This commit is contained in:
@@ -27,45 +27,6 @@
|
||||
const hour = now.getHours();
|
||||
const path = window.location.pathname;
|
||||
const state = readState();
|
||||
const CHARACTER_AVATARS = {
|
||||
"lima": {
|
||||
avatar: "/assets/avatars/lima.jpg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["lima"],
|
||||
glow: "#f2c58b"
|
||||
},
|
||||
"aphy": {
|
||||
avatar: "/assets/avatars/aphy.jpeg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["aphy"],
|
||||
glow: "#9dd3a6"
|
||||
},
|
||||
"sensei chi": {
|
||||
avatar: "/assets/avatars/sensei-chi.jpeg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["sensei chi", "sensei"],
|
||||
glow: "#9ccddd"
|
||||
},
|
||||
"young z": {
|
||||
avatar: "/assets/avatars/young-z.jpeg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["young z", "young"],
|
||||
glow: "#f0b85c"
|
||||
},
|
||||
"future z": {
|
||||
avatar: "/assets/avatars/future-z.jpeg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["future z", "future"],
|
||||
glow: "#c2a4ee"
|
||||
},
|
||||
"z": {
|
||||
avatar: "/assets/avatars/z.jpeg",
|
||||
fallback: "/assets/avatars/z.jpeg",
|
||||
aliases: ["z", "zaine"],
|
||||
glow: "#ead68e"
|
||||
}
|
||||
};
|
||||
|
||||
// -----------------------------
|
||||
// EDITABLE CONTENT
|
||||
// -----------------------------
|
||||
@@ -151,39 +112,13 @@
|
||||
// UI HELPERS
|
||||
// -----------------------------
|
||||
|
||||
function characterForMessage(message) {
|
||||
const text = String(message || "").toLowerCase();
|
||||
return Object.entries(CHARACTER_AVATARS).find(([, config]) => {
|
||||
return (config.aliases || []).some((alias) => {
|
||||
const escaped = alias.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
return new RegExp(`(^|[^a-z0-9-])${escaped}([^a-z0-9-]|$)`).test(text);
|
||||
});
|
||||
})?.[0] || "";
|
||||
}
|
||||
|
||||
function avatarMarkup(character) {
|
||||
const config = CHARACTER_AVATARS[character];
|
||||
if (!config) return "";
|
||||
return `<img class="hidden-message-avatar" src="${escapeHtml(config.avatar)}" alt="" loading="lazy" style="--hidden-avatar-glow:${escapeHtml(config.glow)}" onerror="this.onerror=null;this.src='${escapeHtml(config.fallback)}'">`;
|
||||
}
|
||||
|
||||
function hiddenMessageMarkup(message) {
|
||||
const character = characterForMessage(message);
|
||||
return character
|
||||
? `${avatarMarkup(character)}<span class="hidden-message-text">${escapeHtml(message)}</span>`
|
||||
: `<span class="hidden-message-text">${escapeHtml(message)}</span>`;
|
||||
return `<span class="hidden-message-text">${escapeHtml(message)}</span>`;
|
||||
}
|
||||
|
||||
function setHiddenMessage(el, message) {
|
||||
const character = characterForMessage(message);
|
||||
el.classList.toggle("has-hidden-avatar", Boolean(character));
|
||||
if (character) {
|
||||
el.dataset.hiddenCharacter = character;
|
||||
el.innerHTML = hiddenMessageMarkup(message);
|
||||
} else {
|
||||
delete el.dataset.hiddenCharacter;
|
||||
el.textContent = message;
|
||||
}
|
||||
delete el.dataset.hiddenCharacter;
|
||||
el.innerHTML = hiddenMessageMarkup(message);
|
||||
}
|
||||
|
||||
function toast(message, duration) {
|
||||
@@ -372,8 +307,7 @@
|
||||
function showDriftNote(text, art) {
|
||||
const panel = document.createElement("aside");
|
||||
panel.className = "hidden-drift-note";
|
||||
const character = characterForMessage(text);
|
||||
panel.innerHTML = `<div class="hidden-drift-message${character ? " has-hidden-avatar" : ""}">${hiddenMessageMarkup(text)}</div><pre>${escapeHtml(art)}</pre><button type="button">Close</button>`;
|
||||
panel.innerHTML = `<div class="hidden-drift-message">${hiddenMessageMarkup(text)}</div><pre>${escapeHtml(art)}</pre><button type="button">Close</button>`;
|
||||
panel.querySelector("button").addEventListener("click", () => panel.remove());
|
||||
document.body.appendChild(panel);
|
||||
}
|
||||
@@ -568,8 +502,7 @@
|
||||
const visits = readState().layerVisits || {};
|
||||
target.innerHTML = familyLayers.map((line, layer) => {
|
||||
const count = visits[layer] || 0;
|
||||
const character = characterForMessage(line);
|
||||
return `<li class="${character ? "hidden-layer-message" : ""}"><strong>${hiddenMessageMarkup(line)}</strong><br><span>local encounters: ${count}</span></li>`;
|
||||
return `<li class="hidden-layer-message"><strong>${hiddenMessageMarkup(line)}</strong><br><span>local encounters: ${count}</span></li>`;
|
||||
}).join("");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user