/**
 * 🔍 افزودن جستجوی زنده در باکس دسته‌بندی محصولات
 * هدف: فیلتر درون div#product_cat-all.tabs-panel
 * تست‌شده روی WooCommerce 8+ و Woodmart
 */
add_action( 'admin_footer', function() {
    $screen = get_current_screen();
    if ( ! $screen || 'product' !== $screen->post_type ) return;
    ?>
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        const wrapper = document.querySelector('#product_cat-all.tabs-panel');
        if (!wrapper) return;

        // پیدا کردن لیست دسته‌ها
        const catList = wrapper.querySelector('ul.categorychecklist');
        if (!catList) return;

        // اگر قبلاً ساخته شده، دوباره نساز
        if (wrapper.querySelector('#searchProductCategory')) return;

        // ساخت فیلد جستجو
        const searchInput = document.createElement('input');
        searchInput.type = 'search';
        searchInput.id = 'searchProductCategory';
        searchInput.placeholder = '🔍 search';
        Object.assign(searchInput.style, {
            width: '100%',
            marginBottom: '8px',
            padding: '6px',
            border: '1px solid #ccc',
            borderRadius: '4px',
            boxSizing: 'border-box',
            fontSize: '13px'
        });

        // قرار دادن فیلد بالای لیست
        wrapper.insertBefore(searchInput, catList);

        // جلوگیری از رفرش صفحه هنگام Enter
        searchInput.addEventListener('keydown', e => {
            if (e.key === 'Enter') e.preventDefault();
        });

        // عملکرد جستجو
        searchInput.addEventListener('input', function() {
            const term = this.value.trim().toLowerCase();
            const items = catList.querySelectorAll('li');
            items.forEach(li => {
                const label = li.querySelector('label');
                if (!label) return;
                const text = label.textContent.toLowerCase();
                const match = text.includes(term) || term === '';
                li.style.display = match ? '' : 'none';

                // اگر فرزند match شد والد هم دیده بشه
                if (match && term.length > 0) {
                    let parent = li.parentElement.closest('li');
                    while (parent) {
                        parent.style.display = '';
                        parent = parent.parentElement.closest('li');
                    }
                }
            });
        });
    });
    </script>
    <?php
});
