From 1cc630da4247e75a18629d960768d06239b0175b Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 24 Aug 2021 18:40:19 +0200 Subject: details and gallery --- src/views/App.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/views/App.js (limited to 'src/views/App.js') diff --git a/src/views/App.js b/src/views/App.js new file mode 100644 index 0000000..c5a7f83 --- /dev/null +++ b/src/views/App.js @@ -0,0 +1,42 @@ +/** + * Main React app logic + */ + +import React, { useState, useEffect, useCallback } from "react"; + +import Detail from "./Detail.js"; +import buildGraph from "../graph.js"; + +export default function App() { + const [db, setDb] = useState(null); + const [node, setNode] = useState(null); + const [detailVisible, setDetailVisible] = useState(null); + + useEffect(async () => { + const newDb = await loadDB(); + setDb(newDb); + buildGraph(newDb, { + click: handleClick, + }); + }, []); + + const handleClick = useCallback((node) => { + setNode(node); + setDetailVisible(true); + }); + + const handleClose = useCallback((node) => { + setDetailVisible(false); + }); + + return ( +
+ +
+ ); +} + +async function loadDB() { + const request = await fetch("/assets/db.json"); + return await request.json(); +} -- cgit v1.2.3-70-g09d2