const {
data: subreddits = [],
isPending: isSubredditsPending,
error: subredditsError,
refetch,
} = useSearchSubreddits(authFetch, isAuth?.id, searchTerm);
// custom hook
export function useSearchSubreddits(authFetch, userId, searchTerm) {
return useQuery({
queryKey: ["searchSubreddits", userId],
queryFn: async ({ signal }) => {
const res = await authFetch(
`${import.meta.env.VITE_SERVER_URL}/api?q=${searchTerm.trim()}`,
{ signal },
);
const data = await res.json();
if (!res.ok) {
throw new Error("Failed to search subreddits");
}
return data;
},
enabled: false,
staleTime: 0,
gcTime: 0,
});
}
// loading state check
{/* Subreddit List */}
<div className="overflow-y-auto flex flex-col flex-1 p-4 text-gray-500">
{isSubredditsPending && searchTerm.trim() ? (
// Loader
<div className="flex justify-center items-center py-8">
<ImSpinner className="animate-spin text-2xl" />
</div>
const {
data: subreddits = [],
isPending: isSubredditsPending,
error: subredditsError,
refetch,
} = useSearchSubreddits(authFetch, isAuth?.id, searchTerm);
// custom hook
export function useSearchSubreddits(authFetch, userId, searchTerm) {
return useQuery({
queryKey: ["searchSubreddits", userId],
queryFn: async ({ signal }) => {
const res = await authFetch(
`${import.meta.env.VITE_SERVER_URL}/api?q=${searchTerm.trim()}`,
{ signal },
);
const data = await res.json();
if (!res.ok) {
throw new Error("Failed to search subreddits");
}
return data;
},
enabled: false,
staleTime: 0,
gcTime: 0,
});
}
// loading state check
{/* Subreddit List */}
<div className="overflow-y-auto flex flex-col flex-1 p-4 text-gray-500">
{isSubredditsPending && searchTerm.trim() ? (
// Loader
<div className="flex justify-center items-center py-8">
<ImSpinner className="animate-spin text-2xl" />
</div>