Co-authored-by: domfelipe <53182096+domfelipe@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot] 2026-04-24 10:33:35 +00:00
parent 16c7baa860
commit a3c35c61fb

View file

@ -33,6 +33,7 @@ function DashboardPage() {
const search = Route.useSearch(); const search = Route.useSearch();
const navigate = Route.useNavigate(); const navigate = Route.useNavigate();
const [wizardOpen, setWizardOpen] = useState(false); const [wizardOpen, setWizardOpen] = useState(false);
const previousStatusRef = useRef<string | null>(null);
// Auto-open do wizard ao voltar com ?status=success // Auto-open do wizard ao voltar com ?status=success
useEffect(() => { useEffect(() => {
@ -51,6 +52,18 @@ function DashboardPage() {
} }
}, [search.status, agent, isLoading]); }, [search.status, agent, isLoading]);
// Toast quando agente sair de provisioning → active (uma única vez)
useEffect(() => {
if (!agent) return;
const prev = previousStatusRef.current;
if (prev === "provisioning" && agent.status === "active") {
toast.success("Sua Mika está pronta! 🎉", {
description: "Abra o Telegram e mande uma mensagem para começar.",
});
}
previousStatusRef.current = agent.status;
}, [agent]);
if (isLoading) { if (isLoading) {
return ( return (
<div className="space-y-4"> <div className="space-y-4">
@ -79,10 +92,16 @@ function DashboardPage() {
{subscription && {subscription &&
(subscription.status === "incomplete" || subscription.status === "active") && (subscription.status === "incomplete" || subscription.status === "active") &&
agent?.status === "provisioning" && <ProvisioningCard />} agent?.status === "provisioning" && (
<ProvisioningCard
telegramConnected={!!agent.telegram_bot_username}
railwayServiceCreated={false /* não temos campo direto; mostramos como "em andamento" */}
/>
)}
{subscription && subscription.status === "active" && agent?.status === "active" && ( {subscription && subscription.status === "active" && agent?.status === "active" && (
<> <>
{agent.telegram_bot_username && <ActiveSuccessCard botUsername={agent.telegram_bot_username} />}
<AutoPausedBanner /> <AutoPausedBanner />
<div className="grid gap-6 lg:grid-cols-2"> <div className="grid gap-6 lg:grid-cols-2">
<SkillsDashboardWidget /> <SkillsDashboardWidget />