import { useCallback, useRef } from 'react'; import { Flex } from '@chakra-ui/react'; import { motion } from 'framer-motion'; import { isSafari } from 'react-device-detect'; import { If, Then } from 'react-if'; import { Debugger, Greeting, Footer, Header } from '~/components'; import { useConfig } from '~/context'; import { useFormState } from '~/hooks'; import { ResetButton } from './resetButton'; import type { TFrame } from './types'; const AnimatedFlex = motion(Flex); export const Frame = (props: TFrame): JSX.Element => { const { developerMode } = useConfig(); const { setStatus, reset } = useFormState( useCallback(({ setStatus, reset }) => ({ setStatus, reset }), []), ); const containerRef = useRef({} as HTMLDivElement); function handleReset(): void { containerRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' }); setStatus('form'); reset(); } return ( <>
{props.children}