useFilter
Locale-Aware string filtering
useFilter provides utility functions for performing locale-aware string filtering using Intl.Collator. It ensures proper Unicode handling and allows customization via Intl.CollatorOptions.
Options
You can customize the behavior using Intl.CollatorOptions. See MDN Docs for more details.
ts
const { startsWith } = useFilter({ sensitivity: 'base' })
console.log(startsWith('Résumé', 'resume')) // true (case-insensitive)Usage
Example Usage
ts
import { useFilter } from 'reka-ui'
const { startsWith, endsWith, contains } = useFilter()
console.log(startsWith('hello', 'he')) // true
console.log(endsWith('hello', 'lo')) // true
console.log(contains('hello', 'ell')) // trueUsing useFilter in a Vue Component
vue
<script setup>
import { ref } from 'vue'
import { useFilter } from '@/composables/useFilter'
const { contains } = useFilter()
const searchQuery = ref('')
const items = ref(['Apple', 'Banana', 'Cherry', 'Date'])
const filteredItems = computed(() =>
items.value.filter(item => contains(item, searchQuery.value))
)
</script>
<template>
<div>
<input v-model="searchQuery" placeholder="Search...">
<ul>
<li v-for="item in filteredItems" :key="item">
{{ item }}
</li>
</ul>
</div>
</template>