From dbcff8d406ac5e4e0bdb2fddca6f0d699b564446 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Fri, 2 May 2025 15:40:25 +0100 Subject: [PATCH] Topic AI changes --- src/components/CustomRoadmap/CustomRoadmap.tsx | 1 + src/components/TopicDetail/TopicDetail.tsx | 5 ++++- .../TopicDetail/TopicDetailsTabs.tsx | 18 +++++++++++++----- src/pages/[roadmapId]/index.astro | 1 + .../[bestPracticeId]/index.astro | 1 + 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/CustomRoadmap/CustomRoadmap.tsx b/src/components/CustomRoadmap/CustomRoadmap.tsx index b8bba0b13..a4c94da60 100644 --- a/src/components/CustomRoadmap/CustomRoadmap.tsx +++ b/src/components/CustomRoadmap/CustomRoadmap.tsx @@ -118,6 +118,7 @@ export function CustomRoadmap(props: CustomRoadmapProps) { resourceId={roadmap!._id} resourceTitle={roadmap!.title} resourceType="roadmap" + renderer='editor' isEmbed={isEmbed} canSubmitContribution={false} /> diff --git a/src/components/TopicDetail/TopicDetail.tsx b/src/components/TopicDetail/TopicDetail.tsx index ccfad8c43..09864c27f 100644 --- a/src/components/TopicDetail/TopicDetail.tsx +++ b/src/components/TopicDetail/TopicDetail.tsx @@ -25,7 +25,7 @@ import { Ban, FileText, HeartHandshake, Star, X } from 'lucide-react'; import { getUrlParams, parseUrl } from '../../lib/browser'; import { Spinner } from '../ReactIcons/Spinner'; import { GitHubIcon } from '../ReactIcons/GitHubIcon.tsx'; -import { resourceTitleFromId } from '../../lib/roadmap.ts'; +import { resourceTitleFromId, type AllowedRoadmapRenderer } from '../../lib/roadmap.ts'; import { lockBodyScroll } from '../../lib/dom.ts'; import { TopicDetailLink } from './TopicDetailLink.tsx'; import { ResourceListSeparator } from './ResourceListSeparator.tsx'; @@ -44,6 +44,7 @@ type TopicDetailProps = { resourceId?: string; resourceTitle?: string; resourceType?: ResourceType; + renderer?: AllowedRoadmapRenderer; isEmbed?: boolean; canSubmitContribution: boolean; @@ -93,6 +94,7 @@ export function TopicDetail(props: TopicDetailProps) { canSubmitContribution, resourceId: defaultResourceId, isEmbed = false, + renderer = 'balsamiq', resourceTitle, } = props; @@ -397,6 +399,7 @@ export function TopicDetail(props: TopicDetailProps) { )}
void; + hasAITutor?: boolean; }; export function TopicDetailsTabs(props: TopicDetailsTabsProps) { - const { activeTab, setActiveTab } = props; + const { activeTab, setActiveTab, hasAITutor = true } = props; return (
@@ -23,6 +24,7 @@ export function TopicDetailsTabs(props: TopicDetailsTabsProps) { icon={WandSparkles} label="AI Tutor" isNew={true} + isDisabled={!hasAITutor} onClick={() => setActiveTab('ai')} />
@@ -34,27 +36,33 @@ type TopicDetailsTabProps = { icon: LucideIcon; label: string; isNew?: boolean; + isDisabled?: boolean; onClick: () => void; }; function TopicDetailsTab(props: TopicDetailsTabProps) { - const { isActive, icon: Icon, label, isNew, onClick } = props; + const { isActive, icon: Icon, label, isNew, isDisabled, onClick } = props; return ( ); } diff --git a/src/pages/[roadmapId]/index.astro b/src/pages/[roadmapId]/index.astro index 3716bcb05..a46a14ef0 100644 --- a/src/pages/[roadmapId]/index.astro +++ b/src/pages/[roadmapId]/index.astro @@ -102,6 +102,7 @@ const courses = roadmapData.courses || []; resourceTitle={roadmapData.title} resourceId={roadmapId} resourceType='roadmap' + renderer={roadmapData.renderer} client:idle canSubmitContribution={true} /> diff --git a/src/pages/best-practices/[bestPracticeId]/index.astro b/src/pages/best-practices/[bestPracticeId]/index.astro index 3caebc118..08af742a4 100644 --- a/src/pages/best-practices/[bestPracticeId]/index.astro +++ b/src/pages/best-practices/[bestPracticeId]/index.astro @@ -108,6 +108,7 @@ const ogImageUrl = getOpenGraphImageUrl({ resourceId={bestPracticeId} resourceTitle={bestPracticeData.title} resourceType='best-practice' + renderer={'balsamiq'} client:idle canSubmitContribution={true} />