Merge pull request #662 from escapade-mckv/toasts-fix

Toasts fix
This commit is contained in:
Bobbie 2025-06-06 16:11:55 +05:30 committed by GitHub
commit 2847a076d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 17 deletions

View File

@ -13,9 +13,9 @@ import {
createProject,
createThread,
addUserMessage,
startAgent,
BillingError,
} from '@/lib/api';
import { useStartAgentMutation } from '@/hooks/react-query/threads/use-agent-run';
import { generateThreadName } from '@/lib/actions/threads';
import GoogleSignIn from '@/components/GoogleSignIn';
import { Input } from '@/components/ui/input';
@ -59,6 +59,7 @@ export function HeroSection() {
const { data: accounts } = useAccounts();
const personalAccount = accounts?.find((account) => account.personal_account);
const { onOpen } = useModal();
const startAgentMutation = useStartAgentMutation();
// Auth dialog state
const [authDialogOpen, setAuthDialogOpen] = useState(false);
@ -123,32 +124,23 @@ export function HeroSection() {
description: '',
});
// 2. Create a new thread for this project
const thread = await createThread(newAgent.id);
// 3. Add the user message to the thread
await addUserMessage(thread.thread_id, inputValue.trim());
// 4. Start the agent with the thread ID
await startAgent(thread.thread_id, {
stream: true,
await startAgentMutation.mutateAsync({
threadId: thread.thread_id,
options: {
model_name: 'openrouter/deepseek/deepseek-chat',
stream: true,
},
});
// 5. Navigate to the new agent's thread page
router.push(`/agents/${thread.thread_id}`);
// Clear input on success
router.push(`/projects/${newAgent.id}/thread/${thread.thread_id}`);
setInputValue('');
} catch (error: any) {
console.error('Error creating agent:', error);
// Check specifically for BillingError (402)
if (error instanceof BillingError) {
console.log('Handling BillingError from hero section:', error.detail);
// Open the payment required dialog modal instead of showing the alert
onOpen("paymentRequiredDialog");
// Don't show toast for billing errors
} else {
// Handle other errors (e.g., network, other API errors)
const isConnectionError =
error instanceof TypeError &&
error.message.includes('Failed to fetch');