This commit is contained in:
louiscklaw
2025-04-29 22:55:21 +08:00
parent 9d3e832081
commit 51935d203a
9 changed files with 198 additions and 95 deletions

View File

@@ -0,0 +1,28 @@
import { QuizMFQuestion } from '../types/QuizMFQuestion';
import { usePocketBase } from './usePocketBase';
import { QueryClient } from '@tanstack/react-query';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: Infinity,
},
},
});
const fetchMFQuestions = async (cat_id: string, pb: any) => {
const response = await queryClient.fetchQuery({
queryKey: ['fetchData'],
staleTime: 60 * 1000,
queryFn: async () => {
return await pb.collection('QuizMFQuestions').getList<QuizMFQuestion>(1, 9999, {
filter: `cat_id = "${cat_id}"`,
$autoCancel: false,
});
},
});
return response;
};
export default fetchMFQuestions;

View File

@@ -0,0 +1,44 @@
import { QuizMFQuestion } from '../types/QuizMFQuestion';
import { usePocketBase } from './usePocketBase';
import { QueryClient } from '@tanstack/react-query';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: Infinity,
},
},
});
const useListQuizMFQuestionsByCategoryId = (cat_id: string) => {
const { user, pb } = usePocketBase();
const fetchData = async () => {
const response = await queryClient.fetchQuery({
queryKey: ['fetchData'],
staleTime: 60 * 1000,
queryFn: async () => {
return await pb.collection('QuizMFQuestions').getList<QuizMFQuestion>(1, 9999, {
filter: `cat_id = "${cat_id}"`,
$autoCancel: false,
});
},
});
return response;
};
return useQuery({
queryKey: ['useListQuizMFQuestionsByCategoryId'],
staleTime: 60 * 1000,
queryFn: async () => {
return await pb.collection('QuizMFQuestions').getList<QuizMFQuestion>(1, 9999, {
filter: `cat_id = "${cat_id}"`,
$autoCancel: false,
});
},
// enabled: !!user.id,
});
};
export default useListQuizMFQuestionsByCategoryId;