Mark done, undone

feat/ai-courses
Kamran Ahmed 2 months ago
parent addbc1ea9b
commit f50a2cba0c
  1. 2
      src/components/GenerateCourse/AICourseContent.tsx
  2. 12
      src/components/GenerateCourse/AICourseModuleView.tsx

@ -288,7 +288,7 @@ export function AICourseContent(props: AICourseContentProps) {
return ( return (
<div <div
key={key} key={key}
className="flex cursor-pointer items-center gap-2 rounded-md px-2 py-2.5 transition-colors hover:bg-gray-100" className="flex cursor-pointer items-center gap-2 px-2 py-2.5 transition-colors hover:bg-gray-100"
onClick={() => { onClick={() => {
setActiveModuleIndex(moduleIdx); setActiveModuleIndex(moduleIdx);
setActiveLessonIndex(lessonIdx); setActiveLessonIndex(lessonIdx);

@ -17,7 +17,7 @@ import {
} from '../../lib/markdown'; } from '../../lib/markdown';
import { useMutation, useQuery } from '@tanstack/react-query'; import { useMutation, useQuery } from '@tanstack/react-query';
import { queryClient } from '../../stores/query-client'; import { queryClient } from '../../stores/query-client';
import { httpPost } from '../../lib/query-http'; import { httpPatch, httpPost } from '../../lib/query-http';
import { slugify } from '../../lib/slugger'; import { slugify } from '../../lib/slugger';
import { import {
getAiCourseLimitOptions, getAiCourseLimitOptions,
@ -151,10 +151,10 @@ export function AICourseModuleView(props: AICourseModuleViewProps) {
}); });
}; };
const { mutate: markAsDone, isPending: isMarkingAsDone } = useMutation( const { mutate: toggleDone, isPending: isTogglingDone } = useMutation(
{ {
mutationFn: () => { mutationFn: () => {
return httpPost(`/v1-mark-as-done-ai-lesson/${courseSlug}`, { return httpPatch(`/v1-toggle-done-ai-lesson/${courseSlug}`, {
lessonId, lessonId,
}); });
}, },
@ -203,9 +203,11 @@ export function AICourseModuleView(props: AICourseModuleViewProps) {
disabled={isLoading} disabled={isLoading}
className={cn( className={cn(
'absolute right-3 top-3 flex items-center gap-1 rounded-full bg-black py-1 pl-2 pr-3 text-sm text-white hover:bg-gray-800 disabled:opacity-50', 'absolute right-3 top-3 flex items-center gap-1 rounded-full bg-black py-1 pl-2 pr-3 text-sm text-white hover:bg-gray-800 disabled:opacity-50',
isLessonDone ? 'bg-red-500 hover:bg-red-600' : 'bg-green-500 hover:bg-green-600', isLessonDone
? 'bg-red-500 hover:bg-red-600'
: 'bg-green-500 hover:bg-green-600',
)} )}
onClick={() => markAsDone()} onClick={() => toggleDone()}
> >
{isLessonDone ? ( {isLessonDone ? (
<> <>

Loading…
Cancel
Save