import { StoreState } from 'app/common/store/store.types'; import { createSelector } from 'reselect'; import { getLoadingStatus } from 'app/shared/modules/loading/getStatus'; const tceDevelopmentStateSlice = (store: StoreState) => store.tceDevelopment; export const selectTceDevelopmentCommonData = (store: StoreState) => tceDevelopmentStateSlice(store)?.commonData; export const selectTceDevelopmentModalState = (store: StoreState) => tceDevelopmentStateSlice(store)?.modalOpened ?? false; export const selectTceDevelopmentData = (store: StoreState) => tceDevelopmentStateSlice(store)?.data; export const createTceDevelopmentIsLoadingSelector = (tceDevelopmentFetchCollectionSelector) => (state) => getLoadingStatus(tceDevelopmentFetchCollectionSelector)(state); export const selectTceDevelopmentModalData = createSelector( [ selectTceDevelopmentData, selectTceDevelopmentCommonData ], (tceDevelopmentData, commonData) => tceDevelopmentData?.vesselTceDevelopment?.map(tceDevelopmentPeriodData => ({ period: tceDevelopmentPeriodData.period, scrubber: commonData.hasScrubber, poolPoints: commonData.poolPoints, bunkerAdjustmentPerDay: commonData.bunkerAdjustmentPerDay, poolPointsEarnings: tceDevelopmentPeriodData.poolPointAllocated, bunkerAdjustment: tceDevelopmentPeriodData.bunkerAdjustment, scrubberBonus: tceDevelopmentPeriodData.scrubberBonus, waf: tceDevelopmentPeriodData.wafDta, specialCompensation: tceDevelopmentPeriodData.specialCompensations, tce: tceDevelopmentPeriodData.tce, monthlyAdjustment: tceDevelopmentPeriodData.previousPeriodImpact, totalAdjustmentToDate: tceDevelopmentPeriodData.totalAdjustmentToDate, previousPeriodImpact: tceDevelopmentPeriodData.payoutAdjustment, })) ?? [] );