1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-03 06:12:53 +02:00

fix: ai roadmap regenerate

This commit is contained in:
Arik Chakma
2025-06-25 00:01:34 +06:00
parent b0c3b1505c
commit 83720b387c
2 changed files with 7 additions and 3 deletions

View File

@@ -23,7 +23,9 @@ export function AIRoadmap(props: AIRoadmapProps) {
const toast = useToast(); const toast = useToast();
const [showUpgradeModal, setShowUpgradeModal] = useState(false); const [showUpgradeModal, setShowUpgradeModal] = useState(false);
const [isRegenerating, setIsRegenerating] = useState(false); const [isRegenerating, setIsRegenerating] = useState(false);
const [regeneratedSvgHtml, setRegeneratedSvgHtml] = useState(''); const [regeneratedSvgHtml, setRegeneratedSvgHtml] = useState<string | null>(
null,
);
// only fetch the guide if the guideSlug is provided // only fetch the guide if the guideSlug is provided
// otherwise we are still generating the guide // otherwise we are still generating the guide
@@ -35,6 +37,7 @@ export function AIRoadmap(props: AIRoadmapProps) {
const handleRegenerate = async (prompt?: string) => { const handleRegenerate = async (prompt?: string) => {
flushSync(() => { flushSync(() => {
setIsRegenerating(true); setIsRegenerating(true);
setRegeneratedSvgHtml(null);
}); });
queryClient.cancelQueries(aiRoadmapOptions(roadmapSlug)); queryClient.cancelQueries(aiRoadmapOptions(roadmapSlug));
@@ -50,6 +53,7 @@ export function AIRoadmap(props: AIRoadmapProps) {
}; };
}); });
setRegeneratedSvgHtml('');
await generateAIRoadmap({ await generateAIRoadmap({
roadmapSlug: aiRoadmap?.slug || '', roadmapSlug: aiRoadmap?.slug || '',
term: aiRoadmap?.term || '', term: aiRoadmap?.term || '',
@@ -81,7 +85,7 @@ export function AIRoadmap(props: AIRoadmapProps) {
<div className="grow overflow-y-auto p-4 pt-0"> <div className="grow overflow-y-auto p-4 pt-0">
{roadmapSlug && ( {roadmapSlug && (
<AIRoadmapContent <AIRoadmapContent
svgHtml={regeneratedSvgHtml || aiRoadmap?.svgHtml || ''} svgHtml={regeneratedSvgHtml ?? aiRoadmap?.svgHtml ?? ''}
isLoading={isLoadingBySlug || isRegenerating} isLoading={isLoadingBySlug || isRegenerating}
onRegenerate={handleRegenerate} onRegenerate={handleRegenerate}
roadmapSlug={roadmapSlug} roadmapSlug={roadmapSlug}

View File

@@ -25,7 +25,7 @@ export function AIRoadmapContent(props: AIRoadmapContentProps) {
dangerouslySetInnerHTML={{ __html: svgHtml }} dangerouslySetInnerHTML={{ __html: svgHtml }}
/> />
{isLoading && ( {isLoading && !svgHtml && (
<div className="absolute inset-0 flex items-center justify-center"> <div className="absolute inset-0 flex items-center justify-center">
<LoadingChip message="Please wait..." /> <LoadingChip message="Please wait..." />
</div> </div>