Appearance
SearchFilter Component ​
File Information ​
- Path:
app/components/search/SearchFilter.vue - Purpose: Advanced search filter panel with tags, file types, date ranges, and custom fields. Supports infinite scroll pagination.
- Type: Search Component
Overview ​
Advanced search filter panel with tags, file types, date ranges, and custom fields. Supports infinite scroll pagination.
Features ​
Level-1 menu items ​
The v-list.menu-list.searchFilterMenuList renders each entry of filterListLevel (from useSearchFilter) with the first matching branch:
menu.is_divider-v-dividerbetween the default filters and custom fields.- Level 1 and
slug === 'orientation'- item wrapped in a tooltip "Applicable to only Images". menu.is_tooltip(custom fields) - item wrapped in a bottom tooltip whose text ismenu.tag_name(the full field label). Added in fdc9fcd.- Anything else - plain
v-list-item.
Disabled filters (disabledFilters[menu.slug]) ignore clicks; enabled ones call captureFilterOption(menu).
Since 6417154 menu.label is rendered inside a <v-list-item-title> in the default slot instead of a <span class="ml-2"> inside the #prepend slot. That moves the text into .v-list-item__content, where _menu-list.scss applies min-width: 0; overflow: hidden and the title gets white-space: nowrap; text-overflow: ellipsis. Combined with max-width: 230px on .searchFilterMenuList, long custom-field labels are cut with "..." and shown in full in the tooltip.
Props ​
Refer to the component source code for prop definitions. Components use TypeScript for type-safe props.
Events ​
Refer to the component source code for event definitions. Components emit typed events.
Usage Example ​
vue
<template>
<SearchFilter />
</template>
<script setup lang="ts">
import SearchFilter from '~/components/search/SearchFilter.vue'
</script>Related Components ​
- See Components Overview for all components
Related Documentation ​
- Components Overview - All components
- Types - TypeScript type definitions
- Styling - SCSS styling system