| 1 |
import { KB_HOST } from '@constants'; |
| 2 |
import useSWRImmutable from 'swr/immutable'; |
| 3 |
|
| 4 |
export const fetcher = async (search) => { |
| 5 |
if (search.length < 3) return null; |
| 6 |
const urlParams = new URLSearchParams({ |
| 7 |
lang: window.extSharedData.wpLanguage || null, |
| 8 |
search, |
| 9 |
}); |
| 10 |
return await fetch(`${KB_HOST}/api/posts?${urlParams.toString()}`, { |
| 11 |
method: 'POST', |
| 12 |
}).then((res) => { |
| 13 |
if (!res.ok) throw new Error(res.statusText); |
| 14 |
return res.json(); |
| 15 |
}); |
| 16 |
}; |
| 17 |
|
| 18 |
export const useSearchArticles = (search) => { |
| 19 |
const { data, error } = useSWRImmutable(search || null, fetcher); |
| 20 |
return { data, error, loading: !data && !error }; |
| 21 |
}; |
| 22 |
|