import type { HeadersFunction, LoaderFunctionArgs } from "react-router"; import { Outlet, useLoaderData, useRouteError } from "react-router"; import { boundary } from "@shopify/shopify-app-react-router/server"; import { AppProvider } from "@shopify/shopify-app-react-router/react"; import { authenticate } from "../shopify.server"; export const loader = async ({ request }: LoaderFunctionArgs) => { await authenticate.admin(request); return { apiKey: process.env.SHOPIFY_API_KEY || "" }; }; export default function App() { const { apiKey } = useLoaderData(); return ( Today Bookings Locations & hours Product rules Fresh stock Rush control Driver run sheet Why unavailable? Settings ); } // Shopify needs React Router to catch some thrown responses so headers are included. export function ErrorBoundary() { return boundary.error(useRouteError()); } export const headers: HeadersFunction = (headersArgs) => boundary.headers(headersArgs);