From 72b3574e9601133b09ad677f20202dd0dbaa670b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brandon=20Fern=C3=A1ndez?= <31634868+Bran18@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:31:28 -0600 Subject: [PATCH] [masterbots.ai] refactor: prelaunch ux/ui changes (#336) * refactor: replicate tooltip effect in desktop bot chatbot details * fix: add guard and removed re-render * fix: refactor mobile bot chatbot details * refactor: make chatPannel bigger * chore:add new bot card design + sidebar hover color * chore: delete public and private sw + icons * chore: include public + delete extra actions * chore: add sidebar bg * add sidebar new styles + lib fn * feat: add select bot * chore: cleaning * fix: build - removing BotMessageSquareIcon * fix: types/node version + node min ver req --------- Co-authored-by: sheriffjimoh Co-authored-by: Roberto Lucas --- apps/masterbots.ai/.package.json.swp | 1 + apps/masterbots.ai/app/globals.css | 40 +++ .../components/layout/header/header.tsx | 8 +- .../layout/sidebar/profile-sidebar.tsx | 35 +- .../layout/sidebar/sidebar-link.tsx | 323 ++++++++++-------- .../components/layout/sidebar/sidebar.tsx | 28 +- .../browse/browse-chatbot-mobile-details.tsx | 6 +- .../routes/chat/chat-chatbot-details.tsx | 16 +- .../components/routes/chat/chat-combobox.tsx | 60 +++- .../chat/chat-onboarding-chatbot-mobile.tsx | 36 ++ .../components/routes/chat/chat-options.tsx | 17 +- .../chat/chat-selected-chatbot-mobile.tsx | 78 +++++ .../chat/onboarding-chatbot-details.tsx | 116 ++++--- .../components/routes/chat/prompt-form.tsx | 41 ++- .../components/routes/thread/thread-popup.tsx | 1 - .../routes/thread/user-thread-panel.tsx | 8 +- apps/masterbots.ai/components/ui/tooltip.tsx | 10 +- apps/masterbots.ai/lib/utils.ts | 12 + apps/masterbots.ai/package.json | 5 +- bun.lockb | Bin 411728 -> 410224 bytes package.json | 5 +- 21 files changed, 563 insertions(+), 283 deletions(-) create mode 100644 apps/masterbots.ai/.package.json.swp create mode 100644 apps/masterbots.ai/components/routes/chat/chat-onboarding-chatbot-mobile.tsx create mode 100644 apps/masterbots.ai/components/routes/chat/chat-selected-chatbot-mobile.tsx diff --git a/apps/masterbots.ai/.package.json.swp b/apps/masterbots.ai/.package.json.swp new file mode 100644 index 00000000..5b62ad14 --- /dev/null +++ b/apps/masterbots.ai/.package.json.swp @@ -0,0 +1 @@ +VSCODE/2687189850603de9a75d45adef99401a387e9d23250d09139755010b98886a50 \ No newline at end of file diff --git a/apps/masterbots.ai/app/globals.css b/apps/masterbots.ai/app/globals.css index ef438bf6..cbe3e762 100644 --- a/apps/masterbots.ai/app/globals.css +++ b/apps/masterbots.ai/app/globals.css @@ -48,6 +48,13 @@ --tertiary: 288, 82%, 50%; --tertiary-foreground: 0 0% 98%; --font-size-base: 1rem; + + --background-chat-gradient: linear-gradient(180deg, rgba(115, 201, 97, 0.2) 0%, rgba(122, 214, 104, 0.4) 100%); + --background-chat-hover-gradient: linear-gradient(-180deg, rgba(113, 199, 96, 0.1) 0%, rgba(117, 205, 99, 0.3) 100%); + + /* Public route gradients */ + --background-public-gradient: linear-gradient(180deg, rgba(155, 22, 232, 0.2) 0%, rgba(190, 22, 232, 0.53) 100%); + --background-public-hover-gradient: linear-gradient(-180deg, rgba(166, 22, 232, 0.1) 0%, rgba(190, 22, 232, 0.3) 100%); } .dark { @@ -93,6 +100,13 @@ --tertiary: 120, 100%, 65%; --tertiary-foreground: 0 0% 98%; + + --background-chat-gradient: linear-gradient(180deg, rgba(115, 201, 97, 0.2) 0%, rgba(122, 214, 104, 0.4) 100%); + --background-chat-hover-gradient: linear-gradient(-180deg, rgba(113, 199, 96, 0.1) 0%, rgba(117, 205, 99, 0.3) 100%); + + /* Public route gradients */ + --background-public-gradient: linear-gradient(180deg, rgba(155, 22, 232, 0.2) 0%, rgba(190, 22, 232, 0.53) 100%); + --background-public-hover-gradient: linear-gradient(-180deg, rgba(166, 22, 232, 0.1) 0%, rgba(190, 22, 232, 0.3) 100%); } } @@ -304,3 +318,29 @@ .lucide { stroke-width: 1.25px; } + +/* Base sidebar gradient styles *//* Chat route styles */ + +.sidebar-gradient { + transition: background-image 0.3s ease; +} + +/* Chat route styles */ +[data-route="chat"] .sidebar-gradient:hover:not(.selected) { + background-image: var(--background-chat-hover-gradient); +} + +[data-route="chat"] .sidebar-gradient.selected { + background-image: var(--background-chat-gradient); +} + +/* Public route styles */ +[data-route="public"] .sidebar-gradient:hover:not(.selected) { + background-image: var(--background-public-hover-gradient); +} + +[data-route="public"] .sidebar-gradient.selected { + background-image: var(--background-public-gradient); +} + + diff --git a/apps/masterbots.ai/components/layout/header/header.tsx b/apps/masterbots.ai/components/layout/header/header.tsx index 7e926359..bc58e012 100644 --- a/apps/masterbots.ai/components/layout/header/header.tsx +++ b/apps/masterbots.ai/components/layout/header/header.tsx @@ -20,12 +20,8 @@ export function Header() {
- {appConfig.features.devMode && ( - <> - - - - )} + + {appConfig.features.devMode && }
diff --git a/apps/masterbots.ai/components/layout/sidebar/profile-sidebar.tsx b/apps/masterbots.ai/components/layout/sidebar/profile-sidebar.tsx index 15163be4..4b2e37e7 100644 --- a/apps/masterbots.ai/components/layout/sidebar/profile-sidebar.tsx +++ b/apps/masterbots.ai/components/layout/sidebar/profile-sidebar.tsx @@ -118,32 +118,31 @@ export function ProfileSidebar({ user }: ProfileSidebarProps) { Chat - {appConfig.features.devMode && ( - - )} - {appConfig.features.devMode && ( - + <> + + + )} diff --git a/apps/masterbots.ai/components/layout/sidebar/sidebar-link.tsx b/apps/masterbots.ai/components/layout/sidebar/sidebar-link.tsx index 8d69524b..c2a526f7 100755 --- a/apps/masterbots.ai/components/layout/sidebar/sidebar-link.tsx +++ b/apps/masterbots.ai/components/layout/sidebar/sidebar-link.tsx @@ -1,11 +1,11 @@ 'use client' -import { Checkbox } from "@/components/ui/checkbox" +import { Checkbox } from '@/components/ui/checkbox' import { IconCaretRight } from '@/components/ui/icons' import { useSidebar } from '@/lib/hooks/use-sidebar' import { urlBuilders } from '@/lib/url' -import { cn } from '@/lib/utils' -import { Category, Chatbot } from 'mb-genql' +import { cn, getRouteType } from '@/lib/utils' +import type { Category, Chatbot } from 'mb-genql' import { toSlug } from 'mb-lib' import Image from 'next/image' import Link from 'next/link' @@ -18,10 +18,15 @@ interface SidebarLinkProps { page?: string } -export default function SidebarLink({ category, isFilterMode, page }: SidebarLinkProps) { +export default function SidebarLink({ + category, + isFilterMode, + page +}: SidebarLinkProps) { const router = useRouter() const pathname = usePathname() const isBrowse = !/^\/(?:c|u)(?:\/|$)/.test(pathname) + const routeType = getRouteType(pathname) const { slug } = useParams() const { @@ -38,51 +43,73 @@ export default function SidebarLink({ category, isFilterMode, page }: SidebarLin } = useSidebar() const isExpanded = expandedCategories.includes(category.categoryId) - const handleClickCategory = useCallback((e: React.MouseEvent) => { - e.stopPropagation() - if (!isFilterMode) { - setExpandedCategories(prev => - prev.includes(category.categoryId) - ? [] - : [category.categoryId] - ) - setActiveCategory(prev => { - const newCategory = prev === category.categoryId ? null : category.categoryId - if (newCategory) { - setActiveChatbot(null) - navigateTo({ - page, - slug: typeof slug === 'string' ? slug : undefined, - categoryName: toSlug(category.name.toLowerCase()), - isBrowse - }) + // biome-ignore lint/correctness/useExhaustiveDependencies: + const handleClickCategory = useCallback( + (e: React.MouseEvent) => { + e.stopPropagation() + if (!isFilterMode) { + setExpandedCategories(prev => + prev.includes(category.categoryId) ? [] : [category.categoryId] + ) + setActiveCategory(prev => { + const newCategory = + prev === category.categoryId ? null : category.categoryId + if (newCategory) { + setActiveChatbot(null) + navigateTo({ + page, + slug: typeof slug === 'string' ? slug : undefined, + categoryName: toSlug(category.name.toLowerCase()), + isBrowse + }) + } else { + setActiveChatbot(null) + navigateTo({ + page, + slug: typeof slug === 'string' ? slug : undefined, + isBrowse + }) + } + return newCategory + }) + } + }, + [ + category.categoryId, + category.name, + setActiveCategory, + setExpandedCategories, + setActiveChatbot, + router, + isFilterMode, + isBrowse + ] + ) - } - else { - setActiveChatbot(null) - navigateTo({ - page, - slug: typeof slug === 'string' ? slug : undefined, - isBrowse - }) - } - return newCategory - }) - } - }, [category.categoryId, category.name, setActiveCategory, setExpandedCategories, setActiveChatbot, router, isFilterMode, isBrowse]) - - const handleCheckboxChange = useCallback((checked: boolean) => { - setSelectedCategories(prev => - checked - ? [...prev, category.categoryId] - : prev.filter(id => id !== category.categoryId) - ) - setSelectedChatbots(prev => - checked - ? [...prev, ...category.chatbots.map(chatbot => chatbot.chatbot.chatbotId)] - : prev.filter(id => !category.chatbots.some(chatbot => chatbot.chatbot.chatbotId === id)) - ) - }, [category.categoryId, category.chatbots]) + // biome-ignore lint/correctness/useExhaustiveDependencies: + const handleCheckboxChange = useCallback( + (checked: boolean) => { + setSelectedCategories(prev => + checked + ? [...prev, category.categoryId] + : prev.filter(id => id !== category.categoryId) + ) + setSelectedChatbots(prev => + checked + ? [ + ...prev, + ...category.chatbots.map(chatbot => chatbot.chatbot.chatbotId) + ] + : prev.filter( + id => + !category.chatbots.some( + chatbot => chatbot.chatbot.chatbotId === id + ) + ) + ) + }, + [category.categoryId, category.chatbots] + ) const isActive = activeCategory === category.categoryId const isSelected = selectedCategories.includes(category.categoryId) @@ -93,7 +120,7 @@ export default function SidebarLink({ category, isFilterMode, page }: SidebarLin e.stopPropagation()} + onClick={e => e.stopPropagation()} className="mr-2" /> )} @@ -109,12 +136,14 @@ export default function SidebarLink({ category, isFilterMode, page }: SidebarLin const childrenContent = (isExpanded || isFilterMode) && (
- {category.chatbots.map((chatbotCategory) => ( + {category.chatbots.map(chatbotCategory => ( +
+ {/* biome-ignore lint/a11y/useKeyWithClickEvents: */}
@@ -141,19 +171,20 @@ export default function SidebarLink({ category, isFilterMode, page }: SidebarLin } return ( -
+
+ {/* biome-ignore lint/a11y/useButtonType: */}
+ ) : ( + + {chatbot.name} + {chatbot.name} + + ) + } +) + diff --git a/apps/masterbots.ai/components/layout/sidebar/sidebar.tsx b/apps/masterbots.ai/components/layout/sidebar/sidebar.tsx index 308ff070..2b13a088 100644 --- a/apps/masterbots.ai/components/layout/sidebar/sidebar.tsx +++ b/apps/masterbots.ai/components/layout/sidebar/sidebar.tsx @@ -10,20 +10,21 @@ import { useThread } from '@/lib/hooks/use-thread' export function Sidebar({ className }: React.ComponentProps<'div'>) { const { isSidebarOpen, isLoading } = useSidebar() - const prevPathRef = React.useRef(usePathname()); - const pathname = usePathname(); - const { setActiveThread, setIsOpenPopup } = useThread() - const rootAndChatRegex = /^\/(?:c)?$/; + const prevPathRef = React.useRef(usePathname()) + const pathname = usePathname() + const { setActiveThread, setIsOpenPopup } = useThread() + const rootAndChatRegex = /^\/(?:c)?$/ + const isChatRoute = pathname?.startsWith('/c') + // biome-ignore lint/correctness/useExhaustiveDependencies: React.useEffect(() => { if (rootAndChatRegex.test(pathname)) { - setActiveThread(null); - setIsOpenPopup(false); + setActiveThread(null) + setIsOpenPopup(false) } - prevPathRef.current = pathname; - }, [pathname]); + prevPathRef.current = pathname + }, [pathname]) - if (isLoading) return null return ( @@ -32,12 +33,15 @@ export function Sidebar({ className }: React.ComponentProps<'div'>) { data-state={isSidebarOpen ? 'open' : 'closed'} className={cn( className, - 'h-full flex flex-col dark:bg-zinc-950 z-40' + 'h-full flex flex-col z-40', + isChatRoute + ? 'bg-[#eeffea] dark:bg-[#081D02]' // For /c routes + : 'bg-[#fae8ff] dark:bg-[#17021D]' // For other routes )} >
-
+
@@ -45,3 +49,5 @@ export function Sidebar({ className }: React.ComponentProps<'div'>) { ) } + +export default Sidebar; \ No newline at end of file diff --git a/apps/masterbots.ai/components/routes/browse/browse-chatbot-mobile-details.tsx b/apps/masterbots.ai/components/routes/browse/browse-chatbot-mobile-details.tsx index ddd4e8b8..0cbee6fb 100644 --- a/apps/masterbots.ai/components/routes/browse/browse-chatbot-mobile-details.tsx +++ b/apps/masterbots.ai/components/routes/browse/browse-chatbot-mobile-details.tsx @@ -6,7 +6,7 @@ import { cn, numberShortener } from '@/lib/utils' import type { BrowseChatbotLayoutProps } from '@/types/types' import { Bot, - BotMessageSquareIcon, + MessageSquareIcon, ChevronLeft, MessageSquarePlusIcon, Users @@ -43,7 +43,7 @@ export function BrowseChatbotMobileDetails({ {chatbot.name}
- + Threads: {chatbot.threads.length} @@ -65,7 +65,7 @@ export function BrowseChatbotMobileDetails({ alt={`${chatbot.name} avatar`} width={74} height={74} - className="object-cover size-full p-0 m-0" + className="object-cover p-0 m-0 size-full" />
diff --git a/apps/masterbots.ai/components/routes/chat/chat-chatbot-details.tsx b/apps/masterbots.ai/components/routes/chat/chat-chatbot-details.tsx index 9ad6f9f6..e31e1e5f 100644 --- a/apps/masterbots.ai/components/routes/chat/chat-chatbot-details.tsx +++ b/apps/masterbots.ai/components/routes/chat/chat-chatbot-details.tsx @@ -8,7 +8,8 @@ import { useEffect, useState } from 'react' import { useRouter } from 'next/navigation' import type { SocialFollowing } from 'mb-genql' import { OnboardingChatbotDetails } from '@/components/routes/chat/onboarding-chatbot-details' -import { OnboardingMobileChatbotDetails } from '@/components/routes/chat/onboarding-chatbot-mobile-details' +import { OnboardingMobileView } from '@/components/routes/chat/chat-onboarding-chatbot-mobile' +import { SelectedBotMobileView } from '@/components/routes/chat/chat-selected-chatbot-mobile' import { useSonner } from '@/lib/hooks/useSonner' export default function ChatChatbotDetails() { @@ -119,7 +120,7 @@ export default function ChatChatbotDetails() { } fetchData() - }, [activeCategory, activeChatbot, session?.user]) + }, [activeCategory, activeChatbot]) if (isLoading || !session?.user) return @@ -152,7 +153,16 @@ export default function ChatChatbotDetails() { return ( <> - + {isWelcomeView ? ( + + ) : ( + + )}{' '} ) } diff --git a/apps/masterbots.ai/components/routes/chat/chat-combobox.tsx b/apps/masterbots.ai/components/routes/chat/chat-combobox.tsx index f42d0b2e..112ef3b7 100644 --- a/apps/masterbots.ai/components/routes/chat/chat-combobox.tsx +++ b/apps/masterbots.ai/components/routes/chat/chat-combobox.tsx @@ -31,7 +31,7 @@ import { usePowerUp } from '@/lib/hooks/use-power-up' //* Model options available in the combobox, each with label, value, and logo icon. const models = [ - { label: 'GPT-4o', value: AIModels.Default, logo: "MB" }, + { label: 'GPT-4o', value: AIModels.Default, logo: 'MB' }, { label: 'GPT-4', value: AIModels.GPT4, logo: }, { label: 'Claude3', value: AIModels.Claude3, logo: }, { label: 'llama3_8', value: AIModels.llama3_8b, logo: }, @@ -45,6 +45,7 @@ export function ChatCombobox() { const [open, setOpen] = React.useState(false) const [value, setValue] = React.useState(selectedModel as string) const { isPowerUp } = usePowerUp() + const isDevEnv = process.env.NEXT_PUBLIC_APP_ENV !== 'prod' return ( @@ -54,8 +55,11 @@ export function ChatCombobox() { role="combobox" aria-expanded={open} className={cn( - buttonVariants({ size: 'sm', variant: isPowerUp ? 'powerUp' : 'outline' }), - 'absolute left-0 top-4 size-8 rounded-full p-0 sm:left-4' + buttonVariants({ + size: 'sm', + variant: isPowerUp ? 'powerUp' : 'outline' + }), + 'absolute left-0 top-5 size-8 rounded-full p-0 sm:left-4' )} > {/* Renders the selected model's logo or default icon */} @@ -74,32 +78,52 @@ export function ChatCombobox() { No model found. - {/* Iterates over models to create selectable items */} - {models.map(model => ( - { + {/* Render models only in dev or local environments, otherwise show default */} + {isDevEnv ? ( + models.map(model => ( + { process.env.NEXT_PUBLIC_APP_ENV !== 'prod' - ? (setValue(currentValue === value ? '' : currentValue), changeModel(currentValue as AIModels)) - : '' - setOpen(false) // Closes the popover after selection. + ? (setValue(currentValue === value ? '' : currentValue), + changeModel(currentValue as AIModels)) + : '' + setOpen(false) // Closes the popover after selection. + }} + > + {model.label} + + + )) + ) : ( + { + setValue(AIModels.Default) + changeModel(AIModels.Default) + setOpen(false) }} > - {model.label} - {/* Visual checkmark icon for the selected model */} + Masterbot's Model - ))} + )} ) -} \ No newline at end of file +} diff --git a/apps/masterbots.ai/components/routes/chat/chat-onboarding-chatbot-mobile.tsx b/apps/masterbots.ai/components/routes/chat/chat-onboarding-chatbot-mobile.tsx new file mode 100644 index 00000000..7db24577 --- /dev/null +++ b/apps/masterbots.ai/components/routes/chat/chat-onboarding-chatbot-mobile.tsx @@ -0,0 +1,36 @@ +import { Card, CardHeader } from '@/components/ui/card' +import { PanelLeft } from 'lucide-react' + +export function OnboardingMobileView() { + return ( +
+ + +
+
+

+ Welcome to Masterbots! +

+
+
+ +
+

+ Here you can create new threads and share them to your network! + Navigate with the sidebar and pick any bot of your interest. +

+
+
+
+ +

+ Go To Sidebar And Select One Bot +

+
+
+
+ + +
+ ) +} diff --git a/apps/masterbots.ai/components/routes/chat/chat-options.tsx b/apps/masterbots.ai/components/routes/chat/chat-options.tsx index 267d9420..4c8cd12e 100644 --- a/apps/masterbots.ai/components/routes/chat/chat-options.tsx +++ b/apps/masterbots.ai/components/routes/chat/chat-options.tsx @@ -1,4 +1,3 @@ -import { FontSizeSelector } from '@/components/shared/font-size-selector' import { AlertDialog, AlertDialogAction, @@ -19,7 +18,7 @@ import { } from '@/components/ui/dropdown-menu' import { IconSpinner } from '@/components/ui/icons' import { useThreadVisibility } from '@/lib/hooks/use-thread-visibility' -import { BadgeCheck, Eye, EyeOff, MoreVertical, Trash } from 'lucide-react' +import { Eye, EyeOff, MoreVertical, Trash } from 'lucide-react' import type { Thread } from 'mb-genql' import { toSlug } from 'mb-lib' import type React from 'react' @@ -101,13 +100,6 @@ export function ChatOptions({ threadId, thread, isBrowse }: ChatOptionsProps) { {!isBrowse && (
-
- {thread?.isApproved ? ( - - ) : ( - - )} -
{thread?.isPublic ? 'Public' : 'Private'} @@ -131,13 +123,6 @@ export function ChatOptions({ threadId, thread, isBrowse }: ChatOptionsProps) { align="end" className="w-[160px] sm:w-[180px] px-0" > - {/* Font Size Selector */} - event.preventDefault()} - > - - {/* Toggle thread visibility option (only for thread owner) */} {isUser && ( diff --git a/apps/masterbots.ai/components/routes/chat/chat-selected-chatbot-mobile.tsx b/apps/masterbots.ai/components/routes/chat/chat-selected-chatbot-mobile.tsx new file mode 100644 index 00000000..da28a282 --- /dev/null +++ b/apps/masterbots.ai/components/routes/chat/chat-selected-chatbot-mobile.tsx @@ -0,0 +1,78 @@ +import { Card, CardFooter, CardHeader } from '@/components/ui/card' +import { cn } from '@/lib/utils' +import { Bot, ArrowBigDown } from 'lucide-react' +import Image from 'next/image' + +interface SelectedBotMobileViewProps { + botName: string + description: string + avatar: string + onNewChat: () => void +} + +export function SelectedBotMobileView({ + botName, + description, + avatar, + onNewChat +}: SelectedBotMobileViewProps) { + return ( +
+ + +
+
+

+ {botName} +

+
+ +
+ + bio: +
+ +
+ {/* Avatar container positioned absolutely */} +
+
+ {`${botName} +
+
+ + {/* Separator line */} +
+
+ +
+

+ {description} +

+
+
+ + + +

+ + Start Chatting Below +

+
+ +
+ ) +} + +export default SelectedBotMobileView diff --git a/apps/masterbots.ai/components/routes/chat/onboarding-chatbot-details.tsx b/apps/masterbots.ai/components/routes/chat/onboarding-chatbot-details.tsx index 4b6c1370..1fc72908 100644 --- a/apps/masterbots.ai/components/routes/chat/onboarding-chatbot-details.tsx +++ b/apps/masterbots.ai/components/routes/chat/onboarding-chatbot-details.tsx @@ -1,88 +1,104 @@ -import { Button } from '@/components/ui/button' import { Card, CardContent, CardFooter, CardHeader } from '@/components/ui/card' +import { ArrowBigLeft, ArrowBigDown, Bot, BotMessageSquareIcon, Users } from 'lucide-react' import { cn, numberShortener, isFollowed } from '@/lib/utils' import type { ChatbotDetailsProps } from '@/types/types' -import { Bot, BotMessageSquareIcon, Users } from 'lucide-react' import Image from 'next/image' import { useSession } from 'next-auth/react' +import { Button } from '@/components/ui/button' export function OnboardingChatbotDetails({ - botName = 'BuildBot', + botName, avatar = '', description, - threadCount = 0, - followersCount = 3200, isWelcomeView = true, - categoryName, onNewChat, onFollow, - followers + followers, + threadCount }: ChatbotDetailsProps) { const { data: session } = useSession() const followed = isFollowed({followers, userId: session?.user?.id || ''}) return ( -
- - -

- {isWelcomeView ? 'Welcome to Masterbots!' : botName} -

- -
-
-
- {`${botName} + //
+ //
+
+ + +

+ {isWelcomeView ? 'Welcome to Masterbots!' : botName} +

+ {!isWelcomeView && ( +
+ + bio: +
+ )} +
+
+
+ {`${botName} +
-
- + - -

- {isWelcomeView - ? 'Here you can create new threads and share them to your network! Navigate with the sidebar and pick any bot of your interest.' - : description} -

+ +

+ {isWelcomeView + ? 'Here you can create new threads and share them to your network! Navigate with the sidebar and pick any bot of your interest.' + : description} +

- {isWelcomeView && ( -
-

- Your Journey Begins Here! -

-

- Try and start with: {botName} -

-
+ {isWelcomeView && ( +
+

+ + Go To Sidebar And Select One Bot +

+
+ )} +
+ + {!isWelcomeView && ( + +
+
+

+ + Start Chatting Below +

+
+
+
)} -
- Threads: {numberShortener(threadCount)} + Threads: {numberShortener(threadCount || 0)}
Followers:{' '} - {numberShortener(followersCount)} + {numberShortener(followers?.length || 0)}
diff --git a/apps/masterbots.ai/components/routes/thread/user-thread-panel.tsx b/apps/masterbots.ai/components/routes/thread/user-thread-panel.tsx index 7cd25afa..95a319bb 100755 --- a/apps/masterbots.ai/components/routes/thread/user-thread-panel.tsx +++ b/apps/masterbots.ai/components/routes/thread/user-thread-panel.tsx @@ -213,9 +213,11 @@ export default function UserThreadPanel({ const showChatbotDetails = !loading && !searchTerm && threads.length === 0 return ( <> -
- -
+ {threads.length > 0 && ( +
+ +
+ )} {loading ? ( diff --git a/apps/masterbots.ai/components/ui/tooltip.tsx b/apps/masterbots.ai/components/ui/tooltip.tsx index af1d48be..30fc44d9 100644 --- a/apps/masterbots.ai/components/ui/tooltip.tsx +++ b/apps/masterbots.ai/components/ui/tooltip.tsx @@ -1,9 +1,9 @@ -'use client' +"use client" -import * as React from 'react' -import * as TooltipPrimitive from '@radix-ui/react-tooltip' +import * as React from "react" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" -import { cn } from '@/lib/utils' +import { cn } from "@/lib/utils" const TooltipProvider = TooltipPrimitive.Provider @@ -19,7 +19,7 @@ const TooltipContent = React.forwardRef< ref={ref} sideOffset={sideOffset} className={cn( - 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1', + "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className )} {...props} diff --git a/apps/masterbots.ai/lib/utils.ts b/apps/masterbots.ai/lib/utils.ts index 21c08234..e0723a68 100644 --- a/apps/masterbots.ai/lib/utils.ts +++ b/apps/masterbots.ai/lib/utils.ts @@ -349,3 +349,15 @@ export function numberShortener(number: number): string { if (number < 1000000000) return (number / 1000000).toFixed(2) + 'm' return (number / 1000000000).toFixed(3) + 'b' } + +/** + * Determines the route type based on the pathname + * @param pathname - The current pathname from Next.js usePathname() + * @returns 'chat' | 'public' | '' + */ +export function getRouteType(pathname: string | null): 'chat' | 'public' | '' { + if (!pathname) return '' + if (pathname.startsWith('/c')) return 'chat' + if (pathname.startsWith('/')) return 'public' + return '' +} \ No newline at end of file diff --git a/apps/masterbots.ai/package.json b/apps/masterbots.ai/package.json index f8d6d9b3..e6ba74d6 100644 --- a/apps/masterbots.ai/package.json +++ b/apps/masterbots.ai/package.json @@ -33,7 +33,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.1", - "@radix-ui/react-tooltip": "^1.1.3", + "@radix-ui/react-tooltip": "^1.1.6", "@stripe/react-stripe-js": "^2.8.1", "@stripe/stripe-js": "^3.5.0", "@vercel/analytics": "^1.3.2", @@ -51,7 +51,7 @@ "geist": "^1.3.1", "lodash": "^4.17.21", "lottie-react": "^2.4.0", - "lucide-react": "^0.468.0", + "lucide-react": "^0.473.0", "mb-env": "workspace:*", "mb-genql": "workspace:*", "mb-lib": "workspace:*", @@ -82,7 +82,6 @@ "@tailwindcss/typography": "^0.5.15", "@types/bcrypt": "^5.0.2", "@types/lodash": "^4.17.13", - "@types/node": "^20.17.6", "@types/nodemailer": "^6.4.16", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", diff --git a/bun.lockb b/bun.lockb index f0409a3a34fd5f775bf1854c41369cdf2abc8f2c..a39867ee8e7ab1463945856e2bb2f91a988d3caf 100755 GIT binary patch delta 85513 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 B8>9dL delta 86399 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 SZZ}zdxudOuN*^c6H~tUORZCp} diff --git a/package.json b/package.json index df38ad29..8df8a8ee 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,14 @@ "format": "prettier --write \"**/*.{ts,tsx,md}\"" }, "devDependencies": { - "@types/node": "^20.17.6", + "@types/node": "^20.x", "eslint": "^8.57.1", "prettier": "^3.3.3", "turbo": "^1.13.4" }, + "engines": { + "node": ">=20.0.0" + }, "workspaces": [ "apps/*", "packages/*"