interface QueryParams extends BaseQueryParams<AllowColumnSorts> {
search?: string;
}
const { queryParams, saveQuery, apiParams } = useQueryParams<QueryParams>({
defaults: {
page: 1,
per_page: 25,
sort_by: 'created_at',
sort_direction: 'desc',
search: undefined,
},
mapQueryKey: (key) => {
if (key === 'search') return 'filters[search]';
return String(key);
},
transformForApi: (params) => ({
page: params.page,
per_page: params.per_page,
sort_by: params.sort_by,
sort_direction: params.sort_direction,
search: params.search,
}),
});
const toast = useToast();
const { data, status, error } = await useFetch<{
users: User[];
meta: Meta;
}>('/api/users', {
query: apiParams, // is a reactive object
watch: [apiParams],
onResponse: saveQuery,
});
interface QueryParams extends BaseQueryParams<AllowColumnSorts> {
search?: string;
}
const { queryParams, saveQuery, apiParams } = useQueryParams<QueryParams>({
defaults: {
page: 1,
per_page: 25,
sort_by: 'created_at',
sort_direction: 'desc',
search: undefined,
},
mapQueryKey: (key) => {
if (key === 'search') return 'filters[search]';
return String(key);
},
transformForApi: (params) => ({
page: params.page,
per_page: params.per_page,
sort_by: params.sort_by,
sort_direction: params.sort_direction,
search: params.search,
}),
});
const toast = useToast();
const { data, status, error } = await useFetch<{
users: User[];
meta: Meta;
}>('/api/users', {
query: apiParams, // is a reactive object
watch: [apiParams],
onResponse: saveQuery,
});