Фиксы...
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<!-- Кнопка-триггер -->
|
||||
<button class="mobile-select-btn" :class="[variant, { compact }]" @click="open = true">
|
||||
<button class="mobile-select-btn" :class="[variant, { compact, 'has-selection': hasSelection }]" @click="open = true">
|
||||
<i v-if="icon" :data-lucide="icon" class="btn-icon"></i>
|
||||
<span v-if="!compact" class="btn-label">{{ displayValue }}</span>
|
||||
<i data-lucide="chevron-down" class="btn-arrow"></i>
|
||||
@@ -85,6 +85,14 @@ const displayValue = computed(() => {
|
||||
return option?.label || props.placeholder
|
||||
})
|
||||
|
||||
// Проверка: выбран ли не-дефолтный вариант (первый option обычно "Все")
|
||||
const hasSelection = computed(() => {
|
||||
if (props.modelValue === null || props.modelValue === undefined) return false
|
||||
// Если первый option = null — значит "Все", проверяем что выбрано что-то другое
|
||||
const firstOption = props.options[0]
|
||||
return firstOption && props.modelValue !== firstOption.id
|
||||
})
|
||||
|
||||
const selectOption = (id) => {
|
||||
emit('update:modelValue', id)
|
||||
open.value = false
|
||||
@@ -191,6 +199,17 @@ onUpdated(refreshIcons)
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Подсветка когда выбран активный фильтр */
|
||||
.mobile-select-btn.has-selection {
|
||||
background: var(--accent-soft);
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.mobile-select-btn.has-selection .btn-icon {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.btn-icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
|
||||
Reference in New Issue
Block a user