dyad pro users who disable it shouldn't see nudge messages (#330)

Fixes #272
This commit is contained in:
Will Chen
2025-06-03 23:58:34 -07:00
committed by GitHub
parent 9d1a0f7ad7
commit 2ba22e83e7
2 changed files with 25 additions and 19 deletions

View File

@@ -16,6 +16,8 @@ import { IpcClient } from "@/ipc/ipc_client";
import { chatMessagesAtom } from "@/atoms/chatAtoms"; import { chatMessagesAtom } from "@/atoms/chatAtoms";
import { useLanguageModelProviders } from "@/hooks/useLanguageModelProviders"; import { useLanguageModelProviders } from "@/hooks/useLanguageModelProviders";
import { useSettings } from "@/hooks/useSettings"; import { useSettings } from "@/hooks/useSettings";
import { useUserBudgetInfo } from "@/hooks/useUserBudgetInfo";
interface MessagesListProps { interface MessagesListProps {
messages: Message[]; messages: Message[];
messagesEndRef: React.RefObject<HTMLDivElement | null>; messagesEndRef: React.RefObject<HTMLDivElement | null>;
@@ -32,6 +34,7 @@ export const MessagesList = forwardRef<HTMLDivElement, MessagesListProps>(
const [isUndoLoading, setIsUndoLoading] = useState(false); const [isUndoLoading, setIsUndoLoading] = useState(false);
const [isRetryLoading, setIsRetryLoading] = useState(false); const [isRetryLoading, setIsRetryLoading] = useState(false);
const selectedChatId = useAtomValue(selectedChatIdAtom); const selectedChatId = useAtomValue(selectedChatIdAtom);
const { userBudget } = useUserBudgetInfo();
return ( return (
<div <div
@@ -217,24 +220,27 @@ export const MessagesList = forwardRef<HTMLDivElement, MessagesListProps>(
</div> </div>
)} )}
{isStreaming && !settings?.enableDyadPro && messages.length > 0 && ( {isStreaming &&
<div className="max-w-3xl mx-auto mt-4 py-2 px-1 border border-blue-500 rounded-lg bg-blue-50 text-center"> !settings?.enableDyadPro &&
<p className="text-sm text-blue-700"> !userBudget &&
Tired of waiting on AI? messages.length > 0 && (
<a <div className="max-w-3xl mx-auto mt-4 py-2 px-1 border border-blue-500 rounded-lg bg-blue-50 text-center">
onClick={() => <p className="text-sm text-blue-700">
IpcClient.getInstance().openExternalUrl( Tired of waiting on AI?
"https://dyad.sh/pro#ai", <a
) onClick={() =>
} IpcClient.getInstance().openExternalUrl(
className=" text-blue-600 hover:text-blue-800 underline ml-1 cursor-pointer" "https://dyad.sh/pro#ai",
> )
Get Dyad Pro }
</a>{" "} className=" text-blue-600 hover:text-blue-800 underline ml-1 cursor-pointer"
for faster edits with Turbo Edits. >
</p> Get Dyad Pro
</div> </a>{" "}
)} for faster edits with Turbo Edits.
</p>
</div>
)}
<div ref={messagesEndRef} /> <div ref={messagesEndRef} />
</div> </div>
); );

View File

@@ -2,7 +2,7 @@ import fetch from "node-fetch"; // Electron main process might need node-fetch
import log from "electron-log"; import log from "electron-log";
import { createLoggedHandler } from "./safe_handle"; import { createLoggedHandler } from "./safe_handle";
import { readSettings } from "../../main/settings"; // Assuming settings are read this way import { readSettings } from "../../main/settings"; // Assuming settings are read this way
import { UserBudgetInfoSchema } from "../ipc_types"; import { UserBudgetInfo, UserBudgetInfoSchema } from "../ipc_types";
const logger = log.scope("pro_handlers"); const logger = log.scope("pro_handlers");
const handle = createLoggedHandler(logger); const handle = createLoggedHandler(logger);