import type {NextPage} from 'next' import Head from 'next/head' import {useGroups} from "../../components/contexts/GroupProvider"; import {useFactories} from "../../src/hooks/useFactories"; import {ProducingGraph} from "../../components/shared/ProducingGraph/ProducingGraph"; import {useEffect, useMemo} from "react"; import {calculateInputs} from "../../src/calculateInputs"; import {NodeOverview, OverviewGraphNode} from "../../components/visualize/NodeOverview/NodeOverview"; import {fixedEncodeURIComponent} from "../../src/utils"; import {ScrollContainer} from "../../components/shared/ScrollContainer/ScrollContainer"; const Page: NextPage = () => { const { exportedFactories, ignoredFactories, baseFactories, groups } = useGroups() const { findFactory } = useFactories() useEffect(() => { document.body.classList.add("scroll"); return () => document.body.classList.remove("scroll") }, []); const producingNodes: OverviewGraphNode[] = useMemo(() => { return Object.values(groups).map(group => ({ inputs: calculateInputs( [...group.exports, ...group.malls], ignoredFactories, baseFactories, exportedFactories, findFactory )[0], outputs: group.exports, name: group.name, icons: [...group.exports, ...group.malls], linkOut: `./visualize/${fixedEncodeURIComponent(group.name)}` })) }, [baseFactories, exportedFactories, findFactory, groups, ignoredFactories]) return ( <> Factorio Microservices

Factorio Microservices

) } export default Page