Feature: Aktivitäten in Freunde-Ansicht anklickbar

- diary → Tagebuch, health → Gesundheit, walk → Gassi-Treffen
- Items als <button> für iOS-Tap-Zuverlässigkeit
- fr-activity-item--link mit Hover/Tap-Stil
This commit is contained in:
rene 2026-04-19 10:19:44 +02:00
parent 90f1c4e299
commit 05b28fcd8d
4 changed files with 36 additions and 6 deletions

View file

@ -246,11 +246,26 @@ window.Page_friends = (() => {
_renderActivity(_activityAll);
});
});
el.querySelectorAll('.fr-activity-item[data-nav]').forEach(btn => {
btn.addEventListener('click', () => {
const page = btn.dataset.nav;
if (page) App.navigate(page);
});
});
}
const _ACTIVITY_PAGE = {
diary: 'diary',
health: 'health',
walk: 'walks',
new_dog: null,
};
function _activityItem(item) {
const ago = _timeAgo(item.created_at);
const text = item.text || '';
const ago = _timeAgo(item.created_at);
const text = item.text || '';
const page = _ACTIVITY_PAGE[item.type] || '';
const dogLabel = item.dog_name
? `<span class="fr-activity-dog">${_esc(item.dog_name)}</span>`
: '';
@ -265,8 +280,10 @@ window.Page_friends = (() => {
${_esc((item.user_name || '?')[0].toUpperCase())}
</div>`;
const tag = page ? `button type="button"` : `div`;
return `
<div class="fr-activity-item">
<${tag} class="fr-activity-item${page ? ' fr-activity-item--link' : ''}"
${page ? `data-nav="${page}"` : ''}>
<div class="fr-activity-avatar-wrap">
${avatar}
<div class="fr-activity-icon-badge">
@ -283,7 +300,7 @@ window.Page_friends = (() => {
${text ? `<div class="fr-activity-text">${_esc(text)}</div>` : ''}
<div class="fr-activity-time">${_esc(ago)}</div>
</div>
</div>
</${page ? 'button' : 'div'}>
`;
}