fixed emoji

This commit is contained in:
stfrigerio 2025-04-05 14:01:01 +02:00
parent 944afbd61b
commit 6ced6f6cca
2 changed files with 25 additions and 18 deletions

View file

@ -75,20 +75,29 @@ export class HabitCounter extends HTMLElement {
this.initialDate = this.getAttribute("date") ?? "@date"; this.initialDate = this.getAttribute("date") ?? "@date";
this.emoji = this.getAttribute("emoji") ?? "❓"; this.emoji = this.getAttribute("emoji") ?? "❓";
this.table = this.getAttribute("table") ?? ""; this.table = this.getAttribute("table") ?? "";
// --- Defer UI update and load trigger slightly ---
requestAnimationFrame(() => {
//& console.log(`[HabitCounter Component ${this.habitKey}] Deferred execution starting.`);
//? Now access uiElements, which should be reliably assigned.
console.log(`[HabitCounter Component ${this.habitKey}] DEBUG: Inspecting this.uiElements within deferred call:`, this.uiElements);
updateStaticUI(this.uiElements, this.emoji, this.habitKey); //~ Update static parts of UI updateStaticUI(this.uiElements, this.emoji, this.habitKey); //~ Update static parts of UI
if (!this.table) { if (!this.table) {
console.warn(`[HabitCounter Component ${this.habitKey}] Table attribute missing.`); console.warn(`[HabitCounter Component ${this.habitKey}] Table attribute missing.`);
this.showErrorState("No table"); this.showErrorState("No table");
return; return;
} }
if (!this._initialLoadTriggered) { if (!this._initialLoadTriggered) {
this._initialLoadTriggered = true; this._initialLoadTriggered = true;
//& console.log(`[HabitCounter Component ${this.habitKey}] Triggering initial loadHabitData...`); //& console.log(`[HabitCounter Component ${this.habitKey}] Triggering initial loadHabitData...`);
loadHabitData(this).catch(err => console.error("Unhandled error during initial load:", err)); //~ Load data via helper loadHabitData(this).catch(err => console.error("Unhandled error during initial load:", err)); //~ Load data via helper
} } else {
console.log(`[HabitCounter Component ${this.habitKey}] Initial load already triggered.`);
}
});
} }
//? Public method called by click handlers via instance reference //? Public method called by click handlers via instance reference

View file

@ -1,5 +1,3 @@
// src/webcomponents/habitCounter/dom/uiUpdaters.ts
//? Interface defining the elements needed by UI updaters. //? Interface defining the elements needed by UI updaters.
export interface HabitCounterUIElements { export interface HabitCounterUIElements {
wrapper: HTMLElement | null; wrapper: HTMLElement | null;
@ -19,12 +17,13 @@ export function updateDisplayValue(elements: HabitCounterUIElements, newValue: n
} }
} }
/** Updates label text and button aria-labels based on component state. */
export function updateStaticUI(elements: HabitCounterUIElements, emoji: string, habitKey: string): void { export function updateStaticUI(elements: HabitCounterUIElements, emoji: string, habitKey: string): void {
//& console.log(`[HabitCounterUI] updateStaticUI called for: ${habitKey}`);
if (elements.labelElement) { if (elements.labelElement) {
elements.labelElement.textContent = `${emoji} ${habitKey}:`; const newLabelText = `${emoji} ${habitKey}:`;
//& console.log(`[HabitCounterUI] Set label text to: "${elements.labelElement.textContent}"`); console.log(`[HabitCounterUI] DEBUG: Attempting to set label textContent to: "${newLabelText}"`);
elements.labelElement.textContent = newLabelText;
} else {
console.error("[HabitCounterUI] updateStaticUI: labelElement was null.");
} }
if (elements.minusButton) { if (elements.minusButton) {
elements.minusButton.setAttribute("aria-label", `Decrease ${habitKey} value`); elements.minusButton.setAttribute("aria-label", `Decrease ${habitKey} value`);
@ -34,7 +33,6 @@ export function updateStaticUI(elements: HabitCounterUIElements, emoji: string,
} }
} }
/** Sets the component to visually indicate an error state. */ /** Sets the component to visually indicate an error state. */
export function setComponentErrorState(elements: HabitCounterUIElements, message: string = "Error"): void { export function setComponentErrorState(elements: HabitCounterUIElements, message: string = "Error"): void {
//& console.warn(`[HabitCounterUI] setComponentErrorState called with message: "${message}"`); //& console.warn(`[HabitCounterUI] setComponentErrorState called with message: "${message}"`);