import type { PropsWithChildren } from "react"
import { Authenticator, useAuthenticator } from "@aws-amplify/ui-react"
import { Amplify } from "aws-amplify"
import { useCallback } from "react"
import "@aws-amplify/ui-react/styles.css"
interface AmplifyShellProps {
outputs: Record<string, unknown>
function AmplifyShell(props: PropsWithChildren<AmplifyShellProps>) {
const configure = useCallback(() => {
Amplify.configure(props.outputs)
<Authenticator>{props.children}</Authenticator>
const { user } = useAuthenticator()
<p>Hello {user.signInDetails?.loginId}</p>
interface AppProps extends AmplifyShellProps {}
export function App(props: AppProps) {
<AmplifyShell outputs={props.outputs} title={props.title}>