This commit is contained in:
Sebastian Seedorf
2022-08-18 09:20:00 +02:00
parent 92b762bbd2
commit de95f57b18
60 changed files with 3450 additions and 994 deletions

View File

@@ -1,13 +1,12 @@
import type { NextPage } from 'next'
import {GroupProvider} from "../../components/contexts/GroupProvider";
import {getServerSidePropsGroupProvider, PropsGroupProvider} from "../../src/getServerSideProps";
import {PageDetails} from "../../components/visualize/PageDetails";
import { GroupProvider } from '../../components/contexts/GroupProvider'
import { getServerSidePropsGroupProvider, PropsGroupProvider } from '../../src/getServerSideProps'
import { PageDetails } from '../../components/visualize/PageDetails'
const Page: NextPage<PropsGroupProvider> = ({id, ...initial}) => {
const Page: NextPage<PropsGroupProvider> = ({ id, ...initial }) => {
return (
<GroupProvider id={id} initial={initial}>
<PageDetails/>
<PageDetails />
</GroupProvider>
)
}

View File

@@ -1,36 +1,31 @@
import type {NextPage} from 'next'
import type { NextPage } from 'next'
import Head from 'next/head'
import {GroupProvider, 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";
import {getServerSidePropsGroupProvider, PropsGroupProvider} from "../../src/getServerSideProps";
import { GroupProvider, 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'
import { getServerSidePropsGroupProvider, PropsGroupProvider } from '../../src/getServerSideProps'
const Page: NextPage<PropsGroupProvider> = ({id, ...initial}) => {
const {
exportedFactories,
ignoredFactories,
baseFactories,
groups
} = useGroups()
const {
findFactory
} = useFactories()
const Page: NextPage<PropsGroupProvider> = ({ id, ...initial }) => {
const { exportedFactories, baseFactories, groups } = useGroups()
const { findFactory } = useFactories()
useEffect(() => {
document.body.classList.add("scroll");
return () => document.body.classList.remove("scroll")
}, []);
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
@@ -40,19 +35,19 @@ const Page: NextPage<PropsGroupProvider> = ({id, ...initial}) => {
icons: [...group.exports, ...group.malls],
linkOut: `./visualize/${fixedEncodeURIComponent(group.name)}`
}))
}, [baseFactories, exportedFactories, findFactory, groups, ignoredFactories])
}, [baseFactories, exportedFactories, findFactory, groups])
return (
<GroupProvider id={id} initial={initial}>
<Head>
<title>Factorio Microservices</title>
<meta name="description" content="Create Factorio microservices" />
<link rel="icon" href="/public/favicon.ico" />
<meta name='description' content='Create Factorio microservices' />
<link rel='icon' href='/public/favicon.ico' />
</Head>
<main>
<ScrollContainer>
<h1>Factorio Microservices</h1>
<ProducingGraph nodes={producingNodes} inputs={baseFactories} childType={NodeOverview}/>
<ProducingGraph nodes={producingNodes} inputs={baseFactories} childType={NodeOverview} />
</ScrollContainer>
</main>
</GroupProvider>