import { Cross1Icon } from '@radix-ui/react-icons'; import { Form, useLoaderData } from '@remix-run/react'; import type { ActionArgs, LoaderArgs } from '@remix-run/server-runtime'; import { json, redirect } from '@remix-run/server-runtime'; import { useContext } from 'react'; import { getSignedInUser, sessionStorage } from '../auth.server'; import { BlurredInputWithCopy } from '../components/BlurredInputWithCopy'; import { Button } from '../components/Button'; import { IconButton } from '../components/IconButton'; import { ArrowNarrowRight } from '../icons/ArrowNarrowRight'; import type { CreateAppFlowType } from '../types'; import { makeMultipageHandler } from '../utils/utils.server'; import { CloseContext } from './_dashboard.apps.create-app'; export async function action({ request }: ActionArgs) { const session = await sessionStorage.getSession(request.headers.get('Cookie')); const sessionHandler = makeMultipageHandler({ session, namespace: 'create-app' }); const currentData = sessionHandler.getPage(2); if (!currentData) { throw redirect('/apps/create-app/explorer-tag'); } const id = currentData.appId; const redirectUrl = `/app/${id}` as const; sessionHandler.deleteAll(); const newHeader = await sessionStorage.commitSession(session); throw redirect(redirectUrl, { headers: { 'Set-Cookie': newHeader } }); } export async function loader({ request }: LoaderArgs) { const [user] = await getSignedInUser(request); if (!user) throw redirect('/login'); // shouldn't happen const session = await sessionStorage.getSession(request.headers.get('Cookie')); const sessionHandler = makeMultipageHandler({ session, namespace: 'create-app' }); const pageOneData = sessionHandler.getPage(0); const pageTwoData = sessionHandler.getPage(1); const pageThreeData = sessionHandler.getPage(2); if (!pageOneData) { throw redirect('/apps/create-app'); } if (!pageTwoData || !pageThreeData) { throw redirect('/apps/create-app/explorer-tag'); } return json({ apiKey: pageThreeData.apiKey, }); } export default function ExplorerTag() { const { apiKey } = useLoaderData(); const close = useContext(CloseContext); return (

API key


Copy your API key

This key will allow you to authenticate API requests to 0x. {' '} Specify the key in your requests via the 0x-api-key header parameter.

); }