File: //home/arjun/projects/buyercall/buyercall/assets/vue/widgets/Worklist/store/tasks/getters.js
import {
TASK_GETTER_LATEST_TASK_CREATED_DATE,
TASK_GETTER,
TASK_GETTER_GET_TASK_LIST,
TASK_GETTER_SHOW_VIEW_MORE_BUTTON,
} from '../../constants';
import * as _ from 'lodash';
import moment from 'moment';
export default {
[TASK_GETTER_LATEST_TASK_CREATED_DATE]({ tasks }) {
if (!tasks.length) {
return null;
}
return tasks[0]['createdAt'];
},
[TASK_GETTER](state) {
return state;
},
[TASK_GETTER_SHOW_VIEW_MORE_BUTTON](state) {
if (state.totalRecordCount > 0) {
const totalNumberOfPages = Math.ceil(
state.totalRecordCount / state.taskfetchLimit,
);
if (totalNumberOfPages !== state.currentpage) {
return true;
}
}
return false;
},
[TASK_GETTER_GET_TASK_LIST]({ tasks }) {
let tempTasks = _.map(tasks, n => {
const createdAt = new Date(n.createdAt);
const createdDay = moment(createdAt).format('L');
const isyesterday =
createdDay ===
moment()
.subtract(1, 'days')
.format('L');
const istoday = createdDay === moment().format('L');
return {
...n,
createdAt,
createdByDay: moment(createdAt).format('L'),
timeFormattedString: moment(createdAt).fromNow(),
dateFormattedString: moment(createdAt).format('MMM Do'),
isyesterday,
istoday,
};
});
tempTasks = _.groupBy(tempTasks, 'createdByDay');
return _.map(
_.orderBy(_.keys(tempTasks), k => moment(k), ['desc']),
d => ({
day: d,
tasks: _.orderBy(tempTasks[d], k => moment(k.createdAt), ['desc']),
}),
);
},
};