wikimedica-disease-search/app/src/components/App.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

import React from 'react';
import TermInput from './TermInput.js';
import DiseaseGraph from './DiseaseGraph.js';
import {useAsync, useQuery} from '../util.js';
import {
diseasesBySymptoms,
exploreSymptoms,
2019-12-04 23:54:44 +00:00
} from '../data/mock';
const App = () =>
{
const {
query,
addTerm: addQueryTerm,
removeTerm: removeQueryTerm,
} = useQuery();
// Récupération des résultats de la recherche
const diseases = useAsync([], diseasesBySymptoms, query);
const terms = useAsync([], exploreSymptoms, diseases);
// Tous les termes compatibles avec la recherche qui napparaissent pas
// dans la recherche
const availableTerms = terms.filter(({id}) =>
!query.some(({id: termId}) => termId === id)
);
return (
<div className="App">
<TermInput
query={query}
addQueryTerm={addQueryTerm}
removeQueryTerm={removeQueryTerm}
availableTerms={availableTerms}
2019-12-04 04:20:06 +00:00
/>
<DiseaseGraph
terms={terms}
query={query}
addQueryTerm={addQueryTerm}
removeQueryTerm={removeQueryTerm}
/>
</div>
);
};
export default App;