Added search bar in pds
This commit is contained in:
48
resources/views/components/navigation-filter.blade.php
Normal file
48
resources/views/components/navigation-filter.blade.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<div x-data="sidebarSearch()" class="px-2 py-2">
|
||||
<x-filament::input.wrapper class="relative">
|
||||
<x-filament::input
|
||||
type="text"
|
||||
placeholder="Search…"
|
||||
x-ref="search"
|
||||
x-on:input.debounce.300ms="filterItems($event.target.value)"
|
||||
x-on:keydown.escape="clearSearch"
|
||||
class="w-full rounded border px-2 py-1 text-sm"
|
||||
/>
|
||||
</x-filament::input.wrapper>
|
||||
|
||||
<script>
|
||||
document.addEventListener('alpine:init', () => {
|
||||
Alpine.data('sidebarSearch', () => ({
|
||||
init() {
|
||||
this.$refs.search.value = ''
|
||||
},
|
||||
filterItems(searchTerm) {
|
||||
const groups = document.querySelectorAll('.fi-sidebar-nav-groups .fi-sidebar-group')
|
||||
searchTerm = searchTerm.toLowerCase()
|
||||
|
||||
groups.forEach(group => {
|
||||
const groupButton = group.querySelector('.fi-sidebar-group-button')
|
||||
const groupText = (groupButton?.textContent || '').toLowerCase()
|
||||
const items = group.querySelectorAll('.fi-sidebar-item')
|
||||
|
||||
let hasVisibleItems = false
|
||||
const groupMatches = groupText.includes(searchTerm)
|
||||
|
||||
items.forEach(item => {
|
||||
const itemText = item.textContent.toLowerCase()
|
||||
const isVisible = itemText.includes(searchTerm) || groupMatches
|
||||
item.style.display = isVisible ? '' : 'none'
|
||||
if (isVisible) hasVisibleItems = true
|
||||
})
|
||||
|
||||
group.style.display = (hasVisibleItems || groupMatches) ? '' : 'none'
|
||||
})
|
||||
},
|
||||
clearSearch() {
|
||||
this.$refs.search.value = ''
|
||||
this.filterItems('')
|
||||
},
|
||||
}))
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
Reference in New Issue
Block a user