summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/containers/app/results/PortfolioResultsContainer.js
blob: ce7d5514da174e577c1ba9047373c31bac0a88e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import React from 'react'
import { useSelector } from 'react-redux'
import PortfolioResultsComponent from '../../../components/app/results/PortfolioResultsComponent'
import { useRouter } from 'next/router'

const PortfolioResultsContainer = (props) => {
    const router = useRouter()
    const { portfolio: currentPortfolioId } = router.query
    const { scenarios, portfolio } = useSelector((state) => {
        if (
            !currentPortfolioId ||
            !state.objects.portfolio[currentPortfolioId] ||
            state.objects.portfolio[currentPortfolioId].scenarioIds
                .map((scenarioId) => state.objects.scenario[scenarioId])
                .some((s) => s === undefined)
        ) {
            return {
                portfolio: undefined,
                scenarios: [],
            }
        }

        return {
            portfolio: state.objects.portfolio[currentPortfolioId],
            scenarios: state.objects.portfolio[currentPortfolioId].scenarioIds.map(
                (scenarioId) => state.objects.scenario[scenarioId]
            ),
        }
    })

    return <PortfolioResultsComponent {...props} scenarios={scenarios} portfolio={portfolio} />
}

export default PortfolioResultsContainer