mirror of
https://github.com/stackblitz/bolt.new
synced 2025-06-26 18:17:50 +00:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import type { LoaderFunctionArgs } from '@remix-run/cloudflare';
|
|
import { json, type MetaFunction } from '@remix-run/cloudflare';
|
|
import { useLoaderData } from '@remix-run/react';
|
|
import { ClientOnly } from 'remix-utils/client-only';
|
|
import { BaseChat } from '~/components/chat/BaseChat';
|
|
import { GitUrlImport } from '~/components/git/GitUrlImport.client';
|
|
import { Header } from '~/components/header/Header';
|
|
|
|
export const meta: MetaFunction = () => {
|
|
return [{ title: 'Bolt' }, { name: 'description', content: 'Talk with Bolt, an AI assistant from StackBlitz' }];
|
|
};
|
|
|
|
interface LoaderData {
|
|
url: string;
|
|
}
|
|
|
|
export async function loader({ request }: LoaderFunctionArgs) {
|
|
const url = new URL(request.url);
|
|
const gitUrl = url.searchParams.get('url');
|
|
|
|
if (!gitUrl) {
|
|
throw new Response('No Git URL provided', { status: 400 });
|
|
}
|
|
|
|
return json<LoaderData>({ url: gitUrl });
|
|
}
|
|
|
|
export default function Index() {
|
|
const data = useLoaderData<typeof loader>();
|
|
|
|
return (
|
|
<div className="flex flex-col h-full w-full">
|
|
<Header />
|
|
<ClientOnly fallback={<BaseChat />}>{() => <GitUrlImport initialUrl={data.url} />}</ClientOnly>
|
|
</div>
|
|
);
|
|
}
|