Co-authored-by: domfelipe <53182096+domfelipe@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot] 2026-04-17 16:51:56 +00:00
parent faa10d9a72
commit 52c43fd510
2 changed files with 65 additions and 35 deletions

View file

@ -1,4 +1,6 @@
import { Outlet, Link, createRootRoute, HeadContent, Scripts } from "@tanstack/react-router"; import { Outlet, createRootRoute, HeadContent, Scripts } from "@tanstack/react-router";
import { Toaster } from "@/components/ui/sonner";
import { ThemeProvider } from "@/components/theme-provider";
import appCss from "../styles.css?url"; import appCss from "../styles.css?url";
@ -7,17 +9,17 @@ function NotFoundComponent() {
<div className="flex min-h-screen items-center justify-center bg-background px-4"> <div className="flex min-h-screen items-center justify-center bg-background px-4">
<div className="max-w-md text-center"> <div className="max-w-md text-center">
<h1 className="text-7xl font-bold text-foreground">404</h1> <h1 className="text-7xl font-bold text-foreground">404</h1>
<h2 className="mt-4 text-xl font-semibold text-foreground">Page not found</h2> <h2 className="mt-4 text-xl font-semibold text-foreground">Página não encontrada</h2>
<p className="mt-2 text-sm text-muted-foreground"> <p className="mt-2 text-sm text-muted-foreground">
The page you're looking for doesn't exist or has been moved. A página que você procura não existe ou foi movida.
</p> </p>
<div className="mt-6"> <div className="mt-6">
<Link <a
to="/" href="/"
className="inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90" className="inline-flex items-center justify-center rounded-lg bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary-dark"
> >
Go home Ir para o início
</Link> </a>
</div> </div>
</div> </div>
</div> </div>
@ -29,19 +31,40 @@ export const Route = createRootRoute({
meta: [ meta: [
{ charSet: "utf-8" }, { charSet: "utf-8" },
{ name: "viewport", content: "width=device-width, initial-scale=1" }, { name: "viewport", content: "width=device-width, initial-scale=1" },
{ title: "Lovable App" }, { title: "Mika — Seu assistente de IA pessoal no Telegram" },
{ name: "description", content: "Lovable Generated Project" }, {
{ name: "author", content: "Lovable" }, name: "description",
{ property: "og:title", content: "Lovable App" }, content:
{ property: "og:description", content: "Lovable Generated Project" }, "Agentes de IA personalizados que aprendem com você e te atendem direto no Telegram. Planos a partir de R$ 69,90/mês.",
},
{ name: "author", content: "DOMCO" },
{ name: "theme-color", content: "#6366F1" },
{ property: "og:title", content: "Mika — Seu assistente de IA pessoal no Telegram" },
{
property: "og:description",
content:
"Agentes de IA personalizados que aprendem com você e te atendem direto no Telegram. Planos a partir de R$ 69,90/mês.",
},
{ property: "og:type", content: "website" }, { property: "og:type", content: "website" },
{ name: "twitter:card", content: "summary" }, { property: "og:locale", content: "pt_BR" },
{ name: "twitter:site", content: "@Lovable" }, { property: "og:url", content: "https://mika.domco.ai" },
{ property: "og:image", content: "https://mika.domco.ai/og.svg" },
{ name: "twitter:card", content: "summary_large_image" },
{ name: "twitter:title", content: "Mika — Seu assistente de IA pessoal no Telegram" },
{
name: "twitter:description",
content: "Agentes de IA personalizados, em português, direto no Telegram.",
},
{ name: "twitter:image", content: "https://mika.domco.ai/og.svg" },
], ],
links: [ links: [
{ rel: "stylesheet", href: appCss },
{ rel: "icon", href: "/favicon.svg", type: "image/svg+xml" },
{ rel: "canonical", href: "https://mika.domco.ai" },
{ rel: "preconnect", href: "https://rsms.me" },
{ {
rel: "stylesheet", rel: "stylesheet",
href: appCss, href: "https://rsms.me/inter/inter.css",
}, },
], ],
}), }),
@ -52,7 +75,7 @@ export const Route = createRootRoute({
function RootShell({ children }: { children: React.ReactNode }) { function RootShell({ children }: { children: React.ReactNode }) {
return ( return (
<html lang="en"> <html lang="pt-BR">
<head> <head>
<HeadContent /> <HeadContent />
</head> </head>
@ -65,5 +88,10 @@ function RootShell({ children }: { children: React.ReactNode }) {
} }
function RootComponent() { function RootComponent() {
return <Outlet />; return (
<ThemeProvider>
<Outlet />
<Toaster richColors position="top-right" />
</ThemeProvider>
);
} }

View file

@ -1,26 +1,28 @@
import { createFileRoute } from "@tanstack/react-router"; import { createFileRoute } from "@tanstack/react-router";
import { LandingHeader } from "@/components/mika/LandingHeader";
import { HeroSection } from "@/components/mika/HeroSection";
import { FeaturesSection } from "@/components/mika/FeaturesSection";
import { HowItWorksSection } from "@/components/mika/HowItWorksSection";
import { PlansSection } from "@/components/mika/PlansSection";
import { FaqSection } from "@/components/mika/FaqSection";
import { LandingFooter } from "@/components/mika/LandingFooter";
export const Route = createFileRoute("/")({ export const Route = createFileRoute("/")({
component: Index, component: LandingPage,
}); });
// IMPORTANT: Replace this placeholder. For sites with multiple pages (About, Services, Contact, etc.), function LandingPage() {
// create separate route files (about.tsx, services.tsx, contact.tsx) — don't put all pages in this file.
function PlaceholderIndex() {
return ( return (
<div <div className="min-h-screen bg-background text-foreground">
className="flex min-h-screen items-center justify-center" <LandingHeader />
style={{ backgroundColor: "#fcfbf8" }} <main>
> <HeroSection />
<img <FeaturesSection />
data-lovable-blank-page-placeholder="REMOVE_THIS" <HowItWorksSection />
src="https://cdn.gpteng.co/blank-app-v1.svg" <PlansSection />
alt="Your app will live here!" <FaqSection />
/> </main>
<LandingFooter />
</div> </div>
); );
} }
function Index() {
return <PlaceholderIndex />;
}