UNPKG

vineanova-redux-artifacts

Version:

## Overview

63 lines (54 loc) 1.73 kB
import { createSelector } from 'reselect'; import isEmpty from 'lodash/isEmpty'; import {isValid, format} from 'date-fns'; import isNil from 'lodash/isNil'; import has from 'lodash/has'; const viewDateFormat = 'dd/MM/yyyy'; export const getWorkRecordsPieceworkGroupRowsEntity = state => state.entities.workRecordsPieceworkGroupRows; export const getWorkRecordsPieceworkGroupRowsEntityMeta = createSelector( [getWorkRecordsPieceworkGroupRowsEntity], reference => { const { isLoading, isLoaded, hasError, error } = reference; return { isLoading, isLoaded, hasError, error, }; }, ); export const getWorkRecordsPieceworkGroupRowsEntityData = createSelector( [getWorkRecordsPieceworkGroupRowsEntity], reference => { const { data = [] } = reference; const refData = isEmpty(data) ? [] : data; if (!Array.isArray(refData) || isNil(refData)) return []; const formattedData = refData.map(d => { let hasDates = false; let fromDate = ''; let toDate = ''; let fromTo = ''; if(has(d, 'effectiveToDate') && has(d, 'effectiveFromDate')){ hasDates = true; toDate = !isEmpty(d.effectiveToDate) && isValid(new Date(d.effectiveToDate)) ? format(new Date(d.effectiveToDate), viewDateFormat) : ''; fromDate = !isEmpty(d.effectiveFromDate) && isValid(new Date(d.effectiveFromDate)) ? format(new Date(d.effectiveFromDate), viewDateFormat) : ''; } return { ...d, ...(hasDates && { fromDate, toDate, fromTo, }) }; }); return formattedData; }, );