@@ -8,8 +8,10 @@ import {
88 LOAD_PROJECTS_PENDING ,
99 LOAD_PROJECTS_SUCCESS ,
1010 RESET_SIDEBAR_ACTIVE_PARAMS ,
11- UNLOAD_PROJECTS_SUCCESS
11+ UNLOAD_PROJECTS_SUCCESS ,
12+ PROJECTS_PAGE_SIZE
1213} from '../config/constants'
14+ import { checkAdmin } from '../util/tc'
1315import _ from 'lodash'
1416
1517/**
@@ -28,15 +30,15 @@ export function setActiveProject (projectId) {
2830/**
2931 * Loads projects of the authenticated user
3032 */
31- export function loadProjects ( filterProjectName = '' , myProjects = true , paramFilters = { } ) {
32- return ( dispatch ) => {
33+ export function loadProjects ( filterProjectName = '' , paramFilters = { } ) {
34+ return ( dispatch , getState ) => {
3335 dispatch ( {
3436 type : LOAD_PROJECTS_PENDING
3537 } )
3638
3739 const filters = {
38- status : 'active' ,
3940 sort : 'lastActivityAt desc' ,
41+ perPage : PROJECTS_PAGE_SIZE ,
4042 ...paramFilters
4143 }
4244 if ( ! _ . isEmpty ( filterProjectName ) ) {
@@ -47,21 +49,43 @@ export function loadProjects (filterProjectName = '', myProjects = true, paramFi
4749 }
4850 }
4951
50- // filters['perPage'] = 20
51- // filters['page'] = 1
52- if ( myProjects ) {
52+ if ( ! checkAdmin ( getState ( ) . auth . token ) ) {
5353 filters [ 'memberOnly' ] = true
5454 }
5555
56- fetchMemberProjects ( filters ) . then ( projects => dispatch ( {
56+ // eslint-disable-next-line no-debugger
57+ const state = getState ( ) . sidebar
58+ fetchMemberProjects ( filters ) . then ( ( { projects, pagination } ) => dispatch ( {
5759 type : LOAD_PROJECTS_SUCCESS ,
58- projects
60+ projects : _ . uniqBy ( ( state . projects || [ ] ) . concat ( projects ) , 'id' ) ,
61+ total : pagination . xTotal ,
62+ page : pagination . xPage
5963 } ) ) . catch ( ( ) => dispatch ( {
6064 type : LOAD_PROJECTS_FAILURE
6165 } ) )
6266 }
6367}
6468
69+ /**
70+ * Load more projects for the authenticated user
71+ */
72+ export function loadMoreProjects ( filterProjectName = '' , paramFilters = { } ) {
73+ return ( dispatch , getState ) => {
74+ const state = getState ( ) . sidebar
75+
76+ loadProjects ( filterProjectName , _ . assignIn ( { } , paramFilters , {
77+ perPage : PROJECTS_PAGE_SIZE ,
78+ page : state . page + 1
79+ } ) ) ( dispatch , getState )
80+ }
81+ }
82+
83+ export function loadTaasProjects ( filterProjectName = '' , paramFilters = { } ) {
84+ return loadProjects ( filterProjectName , Object . assign ( {
85+ type : 'talent-as-a-service'
86+ } , paramFilters ) )
87+ }
88+
6589/**
6690 * Unloads projects of the authenticated user
6791 */
0 commit comments