diff --git a/quartz-cli/src/index.tsx b/quartz-cli/src/index.tsx index c73e847c8..5748eb97e 100644 --- a/quartz-cli/src/index.tsx +++ b/quartz-cli/src/index.tsx @@ -1,10 +1,10 @@ import ReactDOM from 'react-dom'; -import List from './state/List'; +import UserSearch from './state/UserSearch' const App = () => { return (
- +
); }; diff --git a/quartz-cli/src/state/List.tsx b/quartz-cli/src/state/List.tsx index 9f36482aa..61c64d7d2 100644 --- a/quartz-cli/src/state/List.tsx +++ b/quartz-cli/src/state/List.tsx @@ -2,13 +2,22 @@ import { useState } from 'react'; const List: React.FC = () => { const [name, setName] = useState(''); + const [users, setUsers] = useState([]); + + const onClick = () => { + setName(''); + setUsers([...users, name]); // Take current users array and add current name to the end + + } return (

List

- + setName(e.target.value)} /> - +
); }; diff --git a/quartz-cli/src/state/UserSearch.tsx b/quartz-cli/src/state/UserSearch.tsx new file mode 100644 index 000000000..e6cd56332 --- /dev/null +++ b/quartz-cli/src/state/UserSearch.tsx @@ -0,0 +1,32 @@ +import { useState } from 'react'; + +const users = [ + { name: 'Hello', age: 20 }, + { name: 'There', age: 20 }, + { name: 'World', age: 20 }, +]; + +const UserSearch: React.FC = () => { + const [name, setName] = useState(''); + const [user, setUser] = useState<{ name: string, age: number } | undefined>(); // Two types of values/results from a search + + const onClick = () => { + const foundUser = users.find((user) => { + return user.name === name; // Connect the result of the search to the `foundUser` variable + }); + + setUser(foundUser); + }; + + return
+ User Search + setName(e.target.value)} /> + +
+ {user && user.name} + {user && user.age} +
+
; +} + +export default UserSearch; \ No newline at end of file