/* BAN YARO — Widget-Vorschau (Home-Screen-Widget) */
window.Page_widget = (() => {
let _container = null;
let _appState = null;
let _refreshTimer = null;
async function init(container, appState) {
_container = container;
_appState = appState;
await _render();
}
async function refresh() {
await _render();
}
async function _render() {
_container.innerHTML = `
`;
if (!_appState.activeDog) {
_container.innerHTML = UI.emptyState({
icon: UI.icon('dog'),
title: 'Kein Hund angelegt',
text: 'Erstelle zuerst ein Hundeprofil.',
action: ``,
});
return;
}
let data;
try {
data = await API.widget.snapshot();
} catch (e) {
_container.innerHTML = 'Fehler beim Laden.
';
return;
}
const dog = data.dog;
const photo = data.random_photo;
const rem = data.reminder;
const photoHtml = photo
? ``
: ``;
const reminderHtml = rem
? ``
: data.overdue > 0
? ``
: ``;
const dogAvatar = dog.foto_url
? `
`
: `🐕
`;
_container.innerHTML = `
Als Home-Screen-Widget nutzen
Füge diese Seite zum Home-Screen hinzu und öffne sie mit einem Tipp.
iOS Safari: Teilen-Symbol → „Zum Home-Bildschirm"
Android Chrome: Menü (⋮) → „Zum Startbildschirm hinzufügen"
`;
_container.querySelector('#widget-refresh-btn')?.addEventListener('click', () => _render());
}
function _esc(str) {
if (!str) return '';
return String(str).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"');
}
function _fmtDate(d) {
if (!d) return '';
try {
const [y, m, day] = d.split('-');
return `${parseInt(day)}.${parseInt(m)}.${y}`;
} catch { return d; }
}
return { init, refresh };
})();