Усилена проверка single-select в компоненте поиска товаров
- Добавлено явное приведение к String при сравнении ID товаров
- Исправлена инициализация selected в методе destroy() (null вместо {})
- Добавлена версия к JS файлу (?v=2) для сброса кэша браузера
- Улучшены комментарии о том, что только ОДИН товар может быть выбран
- Гарантирован корректный single-select режим работы компонента
This commit is contained in:
@@ -327,7 +327,8 @@
|
||||
products.forEach(function(product) {
|
||||
// Извлекаем ID (убираем префикс "product_")
|
||||
var productId = String(product.id).replace('product_', '');
|
||||
var isSelected = self.state.selected && self.state.selected.id === productId;
|
||||
// Проверка: выбран ли этот товар (только ОДИН может быть выбран)
|
||||
var isSelected = self.state.selected && String(self.state.selected.id) === String(productId);
|
||||
|
||||
var html = self.state.currentView === 'grid'
|
||||
? self._renderGridCard(product, productId, isSelected)
|
||||
@@ -475,7 +476,8 @@
|
||||
var card = this.elements.grid.querySelector('[data-product-id="' + productId + '"]');
|
||||
if (!card) return;
|
||||
|
||||
var isSelected = this.state.selected && this.state.selected.id === productId;
|
||||
// Проверка: выбран ли этот товар
|
||||
var isSelected = this.state.selected && String(this.state.selected.id) === String(productId);
|
||||
|
||||
if (isSelected) {
|
||||
card.classList.add('selected');
|
||||
@@ -577,7 +579,7 @@
|
||||
ProductSearchPicker.prototype.destroy = function() {
|
||||
// Очистить состояние
|
||||
this.state.products = [];
|
||||
this.state.selected = {};
|
||||
this.state.selected = null;
|
||||
|
||||
// Удалить из хранилища
|
||||
if (this.container.id && instances[this.container.id]) {
|
||||
|
||||
Reference in New Issue
Block a user