Skip to content
Snippets Groups Projects
display.tsx 1.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • // import * as Helpers from "./helpers";
    import * as Config from "../config";
    import { FilterOverlay } from "./overlays/filteroverlay";
    import { NodeInfoOverlay } from "./overlays/nodeinfo";
    import Graph from "./graph";
    // import screenfull from "screenfull";
    import React from "react";
    
    // function loadComponents() {
    //
    // }
    //
    // function createFullScreenButton() {
    //     const sceneNode = Helpers.getCanvasDivNode() as HTMLElement;
    //     const overlayNode = Helpers.createDiv("fullscreen-button", sceneNode, {
    //         innerHTML: "<p>&#10530;</p>",
    //         title: "Vollbild",
    //     });
    //     overlayNode.classList.add("no-select");
    //     overlayNode.addEventListener("click", function () {
    //         if (screenfull.isEnabled) {
    //             screenfull.toggle(sceneNode);
    //             G.resize();
    //         } else {
    //             console.log("No fullscreen mode available :(");
    //         }
    //     });
    // }
    
    class Display extends React.PureComponent {
        G: Graph;
        filterOverlay: FilterOverlay;
        infoOverlay: NodeInfoOverlay;
    
        componentDidMount() {
            this.G = new Graph(Config.SPACE, this.loadGraphComponents.bind(this));
            this.filterOverlay = new FilterOverlay(this.G, "node");
            this.infoOverlay = new NodeInfoOverlay(this.G);
            this.G.infoOverlay = this.infoOverlay;
        }
    
        loadGraphComponents() {
            this.filterOverlay.create();
            this.infoOverlay.create();
            // filterOverlay.filterChangedCallback = (cls) =>
            //     infoOverlay.bottomMenu.toggleTabVisibility(cls);
            // createFullScreenButton();
        }
    
        render() {
            return <div id="3d-graph"></div>;
        }
    }
    
    export default Display;