diff --git a/src/components/FilterForm.jsx b/src/components/FilterForm.jsx new file mode 100644 index 0000000..1da1866 --- /dev/null +++ b/src/components/FilterForm.jsx @@ -0,0 +1,18 @@ +import React from 'react' + +export default function FilterForm({ filterCallback }) { + let updateInput = (e) => { + e.preventDefault() + console.log(JSON.stringify(e, 0, 2)) + filterCallback(e) + } + + return ( +
+
+ + +
+
+ ) +} diff --git a/src/components/Team.jsx b/src/components/Team.jsx index 063477e..ed7cad8 100644 --- a/src/components/Team.jsx +++ b/src/components/Team.jsx @@ -6,9 +6,11 @@ export default function Team({ teams, users, selectTeam, selectUser }) { diff --git a/src/views/Home.jsx b/src/views/Home.jsx index 86cb3f0..67fc223 100644 --- a/src/views/Home.jsx +++ b/src/views/Home.jsx @@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react' import axios from 'axios' import config from '../config.json' import Team from '../components/Team.jsx' +import FilterForm from '../components/FilterForm.jsx' export default function Home() { // MARK: State @@ -11,18 +12,19 @@ export default function Home() { let [teams, setTeams] = useState([]) let [users, setUsers] = useState([]) let [teamDetails, setTeamDetails] = useState([]) + let [filteredTeams, setFilteredTeams] = useState([]) // MARK: Effects - // MARK: - Load teams from Tempo backend on initialization + // MARK: - Load teams useEffect(() => { let fetchData = async() => { setLoading(true) try { let result = await axios(config.api + '/team/') if (result.data) { - console.log('teams fetched') setTeams(result.data) + setFilteredTeams(result.data) } setLoading(false) } @@ -97,18 +99,28 @@ export default function Home() { console.log('Selected user ' + selectedUser) } + let filterCallback = (e) => { + let filtered = teams.filter(team => { + return team.name.toUpperCase().includes(e.target.value.toUpperCase()) + }) + + setFilteredTeams(filtered) + } + // MARK: Return return (

Tempo

+ + {loading || loadingUsers ? (
Loading...
) : ( teams !== undefined && )}