diff --git a/src/s2-homeworks/hw03/Greeting.tsx b/src/s2-homeworks/hw03/Greeting.tsx index f92d8b2..e80d7eb 100644 --- a/src/s2-homeworks/hw03/Greeting.tsx +++ b/src/s2-homeworks/hw03/Greeting.tsx @@ -5,6 +5,7 @@ type GreetingPropsType = { name: string // need to fix any setNameCallback: (e: ChangeEvent) => void // need to fix any addUser: () => void // need to fix any + onBlur: () => void // need to fix any onEnter: (e: KeyboardEvent) => void error: string // need to fix any totalUsers: number // need to fix any @@ -13,7 +14,7 @@ type GreetingPropsType = { // презентационная компонента (для верстальщика) const Greeting: React.FC = ( - {name, setNameCallback, addUser, onEnter, error, totalUsers, lastUser} // деструктуризация пропсов + {name, setNameCallback, addUser, onEnter, error, totalUsers, lastUser, onBlur} // деструктуризация пропсов ) => { const inputClass = error ? s.errorInput : s.input // need to fix with (?:) @@ -26,7 +27,7 @@ const Greeting: React.FC = ( onChange={setNameCallback} className={inputClass} onKeyDown={onEnter} - onBlur={setNameCallback} + onBlur={onBlur} />
{error}
diff --git a/src/s2-homeworks/hw03/GreetingContainer.tsx b/src/s2-homeworks/hw03/GreetingContainer.tsx index 3382fbe..d4ec924 100644 --- a/src/s2-homeworks/hw03/GreetingContainer.tsx +++ b/src/s2-homeworks/hw03/GreetingContainer.tsx @@ -20,14 +20,17 @@ const GreetingContainer: React.FC = ({users, addUser error && setError('') } const addUser = () => { + addUserCallback(name) + setName('') + } + + const onBlur = () => { const trimmedName = name.trim() - if (trimmedName) { - addUserCallback(trimmedName) // need to fix - } else { + if (!trimmedName) { setError('name is require!') } - setName('') + setName(trimmedName) // need to fix } const onEnter = (e: KeyboardEvent) => { @@ -44,6 +47,7 @@ const GreetingContainer: React.FC = ({users, addUser return (