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