improve views in listing

This commit is contained in:
2026-02-01 14:19:43 +01:00
parent 4eca55db24
commit 683b3a51f7
2 changed files with 10 additions and 6 deletions

View File

@@ -30,8 +30,11 @@ class PageListing extends HTMLElement {
this.listing = await directus.getListing(this.listingId)
this.loadFavoriteState()
// Increment view counter (async, don't wait)
directus.incrementListingViews(this.listingId)
// Increment view counter and update local state
const newViews = await directus.incrementListingViews(this.listingId)
if (newViews !== null) {
this.listing.views = newViews
}
// Load other listings from same seller
if (this.listing?.user_created) {

View File

@@ -335,7 +335,7 @@ class DirectusService {
// Check if user already viewed this listing (session-based)
const viewedKey = `dgray_viewed_${id}`
if (sessionStorage.getItem(viewedKey)) {
return false
return null
}
try {
@@ -344,18 +344,19 @@ class DirectusService {
fields: ['views']
})
const currentViews = listing.data?.views || 0
const newViews = currentViews + 1
// Increment views
await this.patch(`/items/listings/${id}`, {
views: currentViews + 1
views: newViews
})
// Mark as viewed for this session
sessionStorage.setItem(viewedKey, 'true')
return true
return newViews
} catch (error) {
console.error('Failed to increment views:', error)
return false
return null
}
}