fix(wishes): TypeError в toggleForm — lucide заменял <i> на <svg>
Кнопка «Поделиться идеей» падала: btn.querySelector('i') возвращал null, т.к. lucide.createIcons
при первом рендере заменяет <i data-lucide> на <svg>. Обернул иконку в стабильный
контейнер #wq-new-ic и пере-вставляю свежий <i> в его innerHTML перед icons() (с guard).
Headless-смоук toggleForm 5/5 (open/close, смена иконки chevron-up/plus, без throw).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -140,7 +140,7 @@
|
||||
<div class="page-sub" id="w-sub">Есть идея, как сделать систему лучше? Расскажите — мы прочитаем и ответим.</div>
|
||||
</div>
|
||||
<button class="wq-new-btn" id="wq-new-btn" onclick="toggleForm()">
|
||||
<i data-lucide="plus" style="width:15px;height:15px"></i> <span id="wq-new-lbl">Поделиться идеей</span>
|
||||
<span id="wq-new-ic"><i data-lucide="plus" style="width:15px;height:15px"></i></span> <span id="wq-new-lbl">Поделиться идеей</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -224,7 +224,9 @@
|
||||
const btn = document.getElementById('wq-new-btn');
|
||||
btn.classList.toggle('open', _formOpen);
|
||||
document.getElementById('wq-new-lbl').textContent = _formOpen ? 'Свернуть' : 'Поделиться идеей';
|
||||
btn.querySelector('i').setAttribute('data-lucide', _formOpen ? 'chevron-up' : 'plus');
|
||||
// lucide заменяет <i> на <svg> при рендере, поэтому пере-вставляем свежий <i> в контейнер.
|
||||
const ic = document.getElementById('wq-new-ic');
|
||||
if (ic) ic.innerHTML = `<i data-lucide="${_formOpen ? 'chevron-up' : 'plus'}" style="width:15px;height:15px"></i>`;
|
||||
icons();
|
||||
if (_formOpen) setTimeout(() => document.getElementById('wf-title').focus(), 80);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user