import { PenSquare, RefreshCcw } from 'lucide-react'; import { useRef, useState } from 'react'; import { useOutsideClick } from '../../hooks/use-outside-click'; import { cn } from '../../lib/classname'; import { UpgradeAccountModal } from '../Billing/UpgradeAccountModal'; import { ModifyCoursePrompt } from './ModifyCoursePrompt'; import { isLoggedIn } from '../../lib/jwt'; import { showLoginPopup } from '../../lib/popup'; type RegenerateLessonProps = { onRegenerateLesson: (prompt?: string) => void; isForkable: boolean; onForkCourse: () => void; }; export function RegenerateLesson(props: RegenerateLessonProps) { const { onRegenerateLesson, isForkable, onForkCourse } = props; const [isDropdownVisible, setIsDropdownVisible] = useState(false); const [showUpgradeModal, setShowUpgradeModal] = useState(false); const [showPromptModal, setShowPromptModal] = useState(false); const ref = useRef(null); useOutsideClick(ref, () => setIsDropdownVisible(false)); return ( <> {showUpgradeModal && ( { setShowUpgradeModal(false); }} /> )} {showPromptModal && ( setShowPromptModal(false)} onSubmit={(prompt) => { setShowPromptModal(false); if (!isLoggedIn()) { showLoginPopup(); return; } if (isForkable) { onForkCourse(); return; } onRegenerateLesson(prompt); }} /> )}
{isDropdownVisible && (
)}
); }