summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/containers/app/results/PortfolioResultsContainer.js
blob: e60abe18d04e3e1581bfa402e29065511b3e7b9f (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
import React from 'react'
import { useSelector } from 'react-redux'
import PortfolioResultsComponent from '../../../components/app/results/PortfolioResultsComponent'

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

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

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

export default PortfolioResultsContainer