import { Form, Outlet, useSubmit } from '@remix-run/react'; import type { ActionArgs } from '@remix-run/server-runtime'; import { redirect } from '@remix-run/server-runtime'; import { createContext, useCallback, useRef } from 'react'; import { sessionStorage } from '../auth.server'; import * as Drawer from '../components/Drawer'; import type { CreateAppFlowType } from '../types'; import { makeMultipageHandler } from '../utils/utils.server'; export async function action({ request }: ActionArgs) { const session = await sessionStorage.getSession(request.headers.get('Cookie')); const sessionHandler = makeMultipageHandler({ session, namespace: 'create-app' }); sessionHandler.deleteAll(); throw redirect('/apps', { headers: { 'Set-Cookie': await sessionStorage.commitSession(session) } }); } export const CloseContext = createContext<() => void>(() => {}); export default function AppApiKey() { const ref = useRef(null); const submit = useSubmit(); const flushCookieSession = useCallback(() => { if (ref.current) { submit(ref.current); } }, [ref, submit]); return ( { if (!open) { flushCookieSession(); } }} > ); }