import { styled } from "@mui/system" import { useCallback, useState } from "react" import { texts } from "../../../AppConfig" type Props = { name: string isSigned: boolean setSigned: (signed: boolean) => void } const SignButton = ({ name, isSigned, setSigned }: Props) => { const [writtenName, setWrittenName] = useState("") const [signing, setSigning] = useState(false) const sign = useCallback((index: number) => { !signing && setSigning(true) if (index < name.length-1) { index++ setWrittenName((t) => t + name[index]) setTimeout(function () { sign(index); }, 150); } if (index === name.length - 1) setSigned(true) },[name, setSigned, signing]) return ( !signing && sign(-1)}> {texts.signHereText}
{writtenName}
) } export default SignButton type ContainerProps = { issigned: boolean } const Container = styled("div")` display: flex; flex-direction: column; padding: 20px; justify-content: center; width: 100%; font-size: 1.7rem; height: 100%; border: 1px solid #000; margin-bottom: 20px; cursor: ${(props) => !!props.issigned ? "initial" : "pointer"}; ` const SignHere = styled("div")` font-size: 0.7rem; margin-bottom: auto; justify-self: flex-start; `