12345678910111213141516171819202122232425262728293031
  1. <script setup>
  2. import { ref, watch } from 'vue'
  3. import { Inertia } from '@inertiajs/inertia'
  4. import { pickBy } from 'lodash'
  5. const props = defineProps({
  6. url: {
  7. type: String,
  8. required: true,
  9. },
  10. initialSearch: {
  11. required: true,
  12. },
  13. })
  14. const search = ref(props.initialSearch)
  15. watch(search, () => {
  16. Inertia.get(props.url, pickBy({ search: search.value }), {
  17. preserveState: true,
  18. })
  19. })
  20. </script>
  21. <template>
  22. <div class="flex align-items-center gap-3">
  23. <InputText v-bind="$attrs" v-model="search" />
  24. <i class="pi pi-search" />
  25. </div>
  26. </template>