UNPKG

@git-temporal/git-temporal-react

Version:

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

61 lines (60 loc) 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const reselect_1 = require("reselect"); const ActionTypes_1 = require("app/actions/ActionTypes"); const search_1 = require("./search"); const dates_1 = require("./dates"); const stateVars_1 = require("./stateVars"); exports.getFilteredCommits = reselect_1.createSelector(stateVars_1.getCommits, stateVars_1.getSearch, stateVars_1.getStartDate, stateVars_1.getEndDate, dates_1.getDefaultedStartDate, dates_1.getDefaultedEndDate, (commits, search, startDate, endDate, defaultedStartDate, defaultedEndDate) => { const filteredCommits = !search_1.hasSearch(search) && !dates_1.hasDates(startDate, endDate) ? commits.slice(0) : commits.filter(commit => { return (search_1.commitsMatchSearch(commit, search) && dates_1.commitsMatchDates(commit, defaultedStartDate, defaultedEndDate)); }); return filteredCommits; }); exports.getFirstFilteredCommit = reselect_1.createSelector(exports.getFilteredCommits, commits => { return commits[0]; }); exports.getLastFilteredCommit = reselect_1.createSelector(exports.getFilteredCommits, commits => { return commits[commits.length - 1]; }); exports.getFilteredSortedCommits = reselect_1.createSelector(exports.getFilteredCommits, stateVars_1.getCommitsContainerSort, (commits, commitsContainerSort) => { return commits.sort((a, b) => { switch (commitsContainerSort) { case ActionTypes_1.CommitsContainerSorts.LINES: return (b.linesAdded + b.linesDeleted - (a.linesAdded + a.linesDeleted)); case ActionTypes_1.CommitsContainerSorts.TIME: return b.authorDate - a.authorDate; } return 0; }); }); exports.getAreCommitsFiltered = reselect_1.createSelector(stateVars_1.getStartDate, stateVars_1.getEndDate, stateVars_1.getSearch, (startDate, endDate, search) => { return startDate || endDate || (search != null && search.trim().length > 0); }); exports.getCommitsForTimeplot = reselect_1.createSelector(stateVars_1.getCommits, stateVars_1.getSearch, (commits, search) => { const filteredCommits = !search_1.hasSearch(search) ? commits.slice(0) : commits.filter(commit => { return search_1.commitsMatchSearch(commit, search); }); return filteredCommits; }); exports.getAuthorDateRange = reselect_1.createSelector(exports.getFilteredCommits, commits => { let minAuthorDate = Date.now(); let maxAuthorDate = 0; for (const commit of commits) { if (commit.authorDate < minAuthorDate) { minAuthorDate = commit.authorDate; } if (commit.authorDate > maxAuthorDate) { maxAuthorDate = commit.authorDate; } } return { minAuthorDate, maxAuthorDate, }; });