dyad pro users who disable it shouldn't see nudge messages (#330)
Fixes #272
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user