1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-03 06:12:53 +02:00
This commit is contained in:
Arik Chakma
2025-07-02 23:00:05 +06:00
parent e3bb896df2
commit 70d0f7c82e

View File

@@ -22,7 +22,6 @@ export function AIQuiz(props: AIQuizProps) {
const { quizSlug: defaultQuizSlug } = props;
const [quizSlug, setQuizSlug] = useState(defaultQuizSlug);
const toast = useToast();
const [showUpgradeModal, setShowUpgradeModal] = useState(false);
const [isRegenerating, setIsRegenerating] = useState(false);
@@ -43,55 +42,6 @@ export function AIQuiz(props: AIQuizProps) {
const { data: userBillingDetails, isLoading: isBillingDetailsLoading } =
useQuery(billingDetailsOptions(), queryClient);
const isLimitExceeded = (tokenUsage?.used || 0) >= (tokenUsage?.limit || 0);
const isPaidUser = userBillingDetails?.status === 'active';
const handleRegenerate = async (prompt?: string) => {
if (!isLoggedIn()) {
showLoginPopup();
return;
}
if (!isPaidUser && isLimitExceeded) {
setShowUpgradeModal(true);
return;
}
flushSync(() => {
setIsRegenerating(true);
});
queryClient.cancelQueries(aiQuizOptions(quizSlug));
queryClient.setQueryData(aiQuizOptions(quizSlug).queryKey, (old) => {
if (!old) {
return old;
}
return {
...old,
data: '',
svgHtml: '',
};
});
await generateAIQuiz({
quizSlug: aiQuiz?.slug || '',
term: aiQuiz?.keyword || '',
format: aiQuiz?.format || '',
prompt,
isForce: true,
onStreamingChange: setIsRegenerating,
onError: (error) => {
toast.error(error);
},
onFinish: () => {
setIsRegenerating(false);
refetchTokenUsage();
queryClient.invalidateQueries(aiQuizOptions(quizSlug));
},
});
};
const isLoading =
isLoadingBySlug ||
isRegenerating ||