fix(discover): Enforce AuthGuard visibility block during category or text search filtering
This commit is contained in:
@ -228,53 +228,59 @@ function resetFilters() {
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Grid de resultados -->
|
||||
<TransitionGroup v-if="filteredBusinesses.length > 0" name="fade" tag="div" class="biz-grid">
|
||||
<div
|
||||
v-for="biz in filteredBusinesses"
|
||||
:key="biz.id"
|
||||
v-memo="[biz.id]"
|
||||
class="biz-card"
|
||||
@click="handleExplore(biz)"
|
||||
>
|
||||
<div class="biz-img-wrap">
|
||||
<img
|
||||
:src="getImageUrl(biz.image_url, 'business')"
|
||||
:alt="biz.name"
|
||||
loading="lazy"
|
||||
decoding="async"
|
||||
class="biz-img"
|
||||
@error="(e) => (e.target as HTMLImageElement).src = getImageUrl(null, 'business')"
|
||||
/>
|
||||
<span class="biz-cat-badge">
|
||||
<span class="material-icons" style="font-size:0.875rem">{{ catIcon(biz.category || '') }}</span>
|
||||
{{ catName(biz.category || '') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="biz-body">
|
||||
<p class="biz-name">{{ biz.name }}</p>
|
||||
<p class="biz-area">
|
||||
<span class="material-icons biz-area-icon">near_me</span>
|
||||
{{ biz.area }}
|
||||
</p>
|
||||
<!-- CONTENIDO PROTEGIDO CON AUTHGUARD -->
|
||||
<AuthGuard
|
||||
:title="t('discover.auth.title') || '¡Locales exclusivos!'"
|
||||
:message="t('discover.auth.message') || 'Regístrate para descubrir los mejores rincones de la ciudad y ofertas directas.'"
|
||||
>
|
||||
<!-- Grid de resultados -->
|
||||
<TransitionGroup v-if="filteredBusinesses.length > 0" name="fade" tag="div" class="biz-grid">
|
||||
<div
|
||||
v-for="biz in filteredBusinesses"
|
||||
:key="biz.id"
|
||||
v-memo="[biz.id]"
|
||||
class="biz-card"
|
||||
@click="handleExplore(biz)"
|
||||
>
|
||||
<div class="biz-img-wrap">
|
||||
<img
|
||||
:src="getImageUrl(biz.image_url, 'business')"
|
||||
:alt="biz.name"
|
||||
loading="lazy"
|
||||
decoding="async"
|
||||
class="biz-img"
|
||||
@error="(e) => (e.target as HTMLImageElement).src = getImageUrl(null, 'business')"
|
||||
/>
|
||||
<span class="biz-cat-badge">
|
||||
<span class="material-icons" style="font-size:0.875rem">{{ catIcon(biz.category || '') }}</span>
|
||||
{{ catName(biz.category || '') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="biz-body">
|
||||
<p class="biz-name">{{ biz.name }}</p>
|
||||
<p class="biz-area">
|
||||
<span class="material-icons biz-area-icon">near_me</span>
|
||||
{{ biz.area }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</TransitionGroup>
|
||||
|
||||
<!-- Vacío -->
|
||||
<div v-else class="empty-state">
|
||||
<span class="material-icons empty-icon">search_off</span>
|
||||
<h2 class="empty-title">{{ t('discover.noResults') }}</h2>
|
||||
<p class="empty-sub">{{ t('discover.noResultsDesc') }}</p>
|
||||
<button class="cta-btn" @click="resetFilters">{{ t('discover.viewAll') }}</button>
|
||||
</div>
|
||||
</TransitionGroup>
|
||||
|
||||
<!-- Vacío -->
|
||||
<div v-else class="empty-state">
|
||||
<span class="material-icons empty-icon">search_off</span>
|
||||
<h2 class="empty-title">{{ t('discover.noResults') }}</h2>
|
||||
<p class="empty-sub">{{ t('discover.noResultsDesc') }}</p>
|
||||
<button class="cta-btn" @click="resetFilters">{{ t('discover.viewAll') }}</button>
|
||||
</div>
|
||||
|
||||
<!-- CTA al final -->
|
||||
<div v-if="filteredBusinesses.length > 0" class="more-card" @click="resetFilters">
|
||||
<p class="more-card-title">{{ t('discover.lookingMore') }}</p>
|
||||
<p class="more-card-sub">{{ t('discover.exploreWithoutFilters') }}</p>
|
||||
<button class="cta-btn">{{ t('common.all') }}</button>
|
||||
</div>
|
||||
<!-- CTA al final -->
|
||||
<div v-if="filteredBusinesses.length > 0" class="more-card" @click="resetFilters">
|
||||
<p class="more-card-title">{{ t('discover.lookingMore') }}</p>
|
||||
<p class="more-card-sub">{{ t('discover.exploreWithoutFilters') }}</p>
|
||||
<button class="cta-btn">{{ t('common.all') }}</button>
|
||||
</div>
|
||||
</AuthGuard>
|
||||
</div>
|
||||
|
||||
<!-- ══ VISTA INICIO (sin filtros) ══ -->
|
||||
|
||||
Reference in New Issue
Block a user