import React, { ChangeEvent, KeyboardEvent, useState } from 'react' import Greeting from './Greeting' import { UserType } from './HW3' type GreetingContainerPropsType = { users: any // need to fix any addUserCallback: any // need to fix any } export const pureAddUser = (name: any, setError: any, setName: any, addUserCallback: any) => { // если имя пустое - показать ошибку, иначе - добавить юзера и очистить инпут if (!name.trim()) { setError('name is required!') } else { addUserCallback(name) setName('') } } export const pureOnBlur = (name: any, setError: any) => { // если имя пустое - показать ошибку if (!name.trim()) { setError('name is required!') } } export const pureOnEnter = (e: any, addUser: any) => { // если нажата кнопка Enter - добавить if (e.key === 'Enter') { addUser() } } // более простой и понятный для новичков // function GreetingContainer(props: GreetingPropsType) { // более современный и удобный для про :) const GreetingContainer: React.FC = ({ users, addUserCallback, }) => { // деструктуризация пропсов const [name, setName] = useState('') // need to fix any const [error, setError] = useState('') // need to fix any const setNameCallback = (e: any) => { // need to fix any setName(e.currentTarget.value) // need to fix error && setError('') } const addUser = () => { pureAddUser(name, setError, setName, addUserCallback) } const onBlur = () => { pureOnBlur(name, setError) } const onEnter = (e: any) => { pureOnEnter(e, addUser) } const totalUsers = users.length // need to fix const lastUserName = users[users.length - 1]?.name // need to fix return ( ) } export default GreetingContainer