From 278ff39c911d491e9aa7d5c5bea92d377ea2b004 Mon Sep 17 00:00:00 2001 From: Arik Chakma Date: Tue, 10 Jun 2025 12:39:21 +0600 Subject: [PATCH] wip --- package.json | 1 + pnpm-lock.yaml | 27 +++++++++++++++++++++++++++ src/components/AIChat/AIChat.tsx | 26 +++++++++++++++++++++++++- src/styles/global.css | 1 + 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 23b0a7828..7fc07c199 100644 --- a/package.json +++ b/package.json @@ -119,6 +119,7 @@ "prettier": "^3.5.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.11", + "tailwind-scrollbar": "^4.0.2", "tsx": "^4.19.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4cb7b0aa6..969483f4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -267,6 +267,9 @@ importers: prettier-plugin-tailwindcss: specifier: ^0.6.11 version: 0.6.11(prettier-plugin-astro@0.14.1)(prettier@3.5.3) + tailwind-scrollbar: + specifier: ^4.0.2 + version: 4.0.2(react@19.1.0)(tailwindcss@4.1.7) tsx: specifier: ^4.19.4 version: 4.19.4 @@ -3496,6 +3499,11 @@ packages: engines: {node: '>=14'} hasBin: true + prism-react-renderer@2.4.1: + resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==} + peerDependencies: + react: '>=16.0.0' + prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -3919,6 +3927,12 @@ packages: tailwind-merge@3.3.0: resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} + tailwind-scrollbar@4.0.2: + resolution: {integrity: sha512-wAQiIxAPqk0MNTPptVe/xoyWi27y+NRGnTwvn4PQnbvB9kp8QUBiGl/wsfoVBHnQxTmhXJSNt9NHTmcz9EivFA==} + engines: {node: '>=12.13.0'} + peerDependencies: + tailwindcss: 4.x + tailwindcss@4.1.5: resolution: {integrity: sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==} @@ -7548,6 +7562,12 @@ snapshots: prettier@3.5.3: {} + prism-react-renderer@2.4.1(react@19.1.0): + dependencies: + '@types/prismjs': 1.26.5 + clsx: 2.1.1 + react: 19.1.0 + prismjs@1.30.0: {} prompts@2.4.2: @@ -8144,6 +8164,13 @@ snapshots: tailwind-merge@3.3.0: {} + tailwind-scrollbar@4.0.2(react@19.1.0)(tailwindcss@4.1.7): + dependencies: + prism-react-renderer: 2.4.1(react@19.1.0) + tailwindcss: 4.1.7 + transitivePeerDependencies: + - react + tailwindcss@4.1.5: {} tailwindcss@4.1.7: {} diff --git a/src/components/AIChat/AIChat.tsx b/src/components/AIChat/AIChat.tsx index 119f2d977..9a6540938 100644 --- a/src/components/AIChat/AIChat.tsx +++ b/src/components/AIChat/AIChat.tsx @@ -37,6 +37,7 @@ import { showLoginPopup } from '../../lib/popup'; import { UpgradeAccountModal } from '../Billing/UpgradeAccountModal'; import { readChatStream } from '../../lib/chat'; import { chatHistoryOptions } from '../../queries/chat-history'; +import { cn } from '../../lib/classname'; export const aiChatRenderer: Record = { 'roadmap-recommendations': (options) => { @@ -382,10 +383,15 @@ export function AIChat(props: AIChatProps) { scrollToBottom('instant'); }, []); + const shouldShowUpgradeBanner = !isPaidUser && aiChatHistory.length > 0; + return (
@@ -433,6 +439,24 @@ export function AIChat(props: AIChatProps) { className="pointer-events-none absolute right-0 bottom-0 left-0 mx-auto w-full max-w-3xl px-4" ref={chatContainerRef} > + {shouldShowUpgradeBanner && ( +
+
+
+ +

Upgrade to Pro to keep your conversations.

+
+ +
+
+ )} +