import React from 'react';
import HoverInfo from 'app/shared/components/hoverInfo/hoverInfo';
import datePipe from 'app/shared/pipes/date.pipe';
import moneyPipe from 'app/shared/pipes/money.pipe';
import numberPipe from 'app/shared/pipes/number.pipe';
import { useSelector } from 'react-redux';
import {
createDashboardIsLoadingSelector,
getDashboardCurrentKeyFigures,
} from 'app/modules/dashboard/store/dashboard.selectors';
import { Spinner } from 'app/shared/components/spinner/spinner';
import { DASHBOARD } from 'app/modules/dashboard/store/dashboard.constants';
import { Dot } from 'app/shared/components/dot/dot';
import * as Text from 'app/shared/components/text/text';
import { Caption, Paragraph } from 'app/shared/components/text/text';
import { DashboardKeyFigure } from '../store/dashboard.types';
import { Figures, InfoBox } from 'app/shared/components/infoBox/infoBox';
import cx from 'classnames';
const NOT_AVAILABLE = 'N/A';
const createInfoBoxes = (keyFigure: DashboardKeyFigure) => {
const figures: Figures[][] = [
[ {
value: keyFigure.bunkerPrice ? '$' + numberPipe.format(keyFigure.bunkerPrice, 2, 2) : NOT_AVAILABLE,
type: 'text',
description: 'Price',
additionalDescription: 'Compliant',
unit: '/mt',
} ],
];
if (keyFigure.isScrubber) {
figures.push([ {
value: keyFigure.bunkerPriceWithScrubber ?
'$' + numberPipe.format(keyFigure.bunkerPriceWithScrubber, 2, 2) :
NOT_AVAILABLE,
type: 'text',
description: 'Price',
additionalDescription: 'Non compliant',
unit: '/mt',
} ]);
}
return figures;
};
export const DashboardKeyFigures = () => {
const keyFigures = useSelector(getDashboardCurrentKeyFigures);
const infoBoxes = createInfoBoxes(keyFigures);
const dashboardFetchCollectionSelector = [ DASHBOARD.FETCH_KEY_FIGURES_SELECTOR ];
const loadingStatus = useSelector(createDashboardIsLoadingSelector(dashboardFetchCollectionSelector));
return loadingStatus ?