diff --git a/packages/web/src/app/[domain]/components/homepage/askSourcebotDemoCards.tsx b/packages/web/src/app/[domain]/components/homepage/askSourcebotDemoCards.tsx
index 532c9e06..fc8ef092 100644
--- a/packages/web/src/app/[domain]/components/homepage/askSourcebotDemoCards.tsx
+++ b/packages/web/src/app/[domain]/components/homepage/askSourcebotDemoCards.tsx
@@ -33,11 +33,11 @@ export const AskSourcebotDemoCards = ({
const getContextIcon = (context: DemoSearchContext, size: number = 20) => {
const sizeClass = size === 12 ? "h-3 w-3" : "h-5 w-5";
-
+
if (context.type === "set") {
return ;
}
@@ -63,40 +63,48 @@ export const AskSourcebotDemoCards = ({
return;
}
- if (context.type === "set") {
- const searchContext = searchContexts.find((item) => item.name === context.value);
- if (!searchContext) {
- console.error(`Search context ${context.value} not found on handleContextClick`);
- return;
- }
-
- const isSelected = selectedItems.some(
- (selected) => selected.type === 'context' && selected.value === context.value
- );
- const newSelectedItems = isSelected
- ? selectedItems.filter(
- (selected) => !(selected.type === 'context' && selected.value === context.value)
- )
- : [...selectedItems, { type: 'context', value: context.value, name: context.displayName, repoCount: searchContext.repoNames.length } as SearchContextItem];
+ const isDemoMode = process.env.NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT === "demo";
+ const isSelected = selectedItems.some((item) => item.value === context.value);
+ if (isSelected) {
+ setSelectedItems(selectedItems.filter((item) => item.value !== context.value));
+ return;
+ }
- setSelectedItems(newSelectedItems);
+ const getNewSelectedItem = (): ContextItem | null => {
+ if (context.type === "set") {
+ const searchContext = searchContexts.find((item) => item.name === context.value);
+ if (!searchContext) {
+ console.error(`Search context ${context.value} not found on handleContextClick`);
+ return null;
+ }
+
+ return {
+ type: 'context',
+ value: context.value,
+ name: context.displayName,
+ repoCount: searchContext.repoNames.length
+ } as SearchContextItem;
+ } else {
+ const repo = repos.find((repo) => repo.repoName === context.value);
+ if (!repo) {
+ console.error(`Repo ${context.value} not found on handleContextClick`);
+ return null;
+ }
+
+ return {
+ type: 'repo',
+ value: context.value,
+ name: context.displayName,
+ codeHostType: repo.codeHostType
+ } as RepoContextItem;
+ }
+ }
+
+ const newSelectedItem = getNewSelectedItem();
+ if (newSelectedItem) {
+ setSelectedItems(isDemoMode ? [newSelectedItem] : [...selectedItems, newSelectedItem]);
} else {
- const repo = repos.find((repo) => repo.repoName === context.value);
- if (!repo) {
- console.error(`Repo ${context.value} not found on handleContextClick`);
- return;
- }
-
- const isSelected = selectedItems.some(
- (selected) => selected.type === 'repo' && selected.value === context.value
- );
- const newSelectedItems = isSelected
- ? selectedItems.filter(
- (selected) => !(selected.type === 'repo' && selected.value === context.value)
- )
- : [...selectedItems, { type: 'repo', value: context.value, name: context.displayName, codeHostType: repo.codeHostType } as RepoContextItem];
-
- setSelectedItems(newSelectedItems);
+ console.error(`No new selected item found on handleContextClick`);
}
}
@@ -107,7 +115,7 @@ export const AskSourcebotDemoCards = ({
Select the context you want to ask questions about
+ {example.description} +
+- {example.description} -
-