@@ -3,18 +3,20 @@ import moment from 'moment';
3
3
import { connect } from 'react-redux' ;
4
4
import { cloneDeep } from 'lodash' ;
5
5
6
+ import BlockList from './BlockList' ;
7
+ import CommitBlock from './CommitBlock' ;
8
+ import Flex from './Flex' ;
9
+ import LoadingDots from './Loading' ;
6
10
import ScheduleHeader from './ScheduleHeader' ;
7
11
import SideBar from './SideBar' ;
8
- import Flex from './Flex' ;
9
- import SetBlock from './SetBlock' ;
10
12
import Text from './Text' ;
11
- import LoadingDots from './Loading' ;
12
- import CommitBlock from './CommitBlock' ;
13
- import { DEFAULT_SETBLOCKS } from '../constants/index' ;
13
+
14
+ import { DEFAULT_SETBLOCKS } from '../constants' ;
14
15
15
16
import {
16
17
fetchCurrentTeamMemberById ,
17
18
setEditModeSchedule ,
19
+ setEnableSubmit ,
18
20
setSelectedDay ,
19
21
updateUnsavedSetblocks
20
22
} from '../reducers/environment' ;
@@ -23,7 +25,6 @@ import {
23
25
class SchedulePage extends React . Component {
24
26
state = {
25
27
daysOfWeek : [ ] ,
26
- enableSubmit : false ,
27
28
}
28
29
29
30
componentDidMount ( ) {
@@ -72,7 +73,7 @@ class SchedulePage extends React.Component {
72
73
}
73
74
if ( ( editModeSchedule && currentTeamMember !== nextProps . currentTeamMember ) || selectedDay !== nextProps . selectedDay ) {
74
75
this . makeSetBlocksForEdit ( nextProps . currentWeeklySetblocks ) ;
75
- this . setState ( { enableSubmit : false } )
76
+ this . props . setEnableSubmit ( false )
76
77
}
77
78
}
78
79
@@ -89,61 +90,21 @@ class SchedulePage extends React.Component {
89
90
let replacedBlocks = 0 ;
90
91
setBlocks = _ . orderBy ( setBlocks , [ 'blockTime' ] , [ 'asc' ] ) ; // Use Lodash to sort array by 'name'
91
92
setBlocks = _ . uniqBy ( setBlocks , 'blockTime' ) ; // Use Lodash to delete repeated blockTimes
92
- defaultSetBlocks . forEach ( ( setBlock , index , theArray ) => {
93
- if ( setBlocks && replacedBlocks < setBlocks . length && setBlock . blockTime === setBlocks [ replacedBlocks ] . blockTime ) {
94
- theArray [ index ] = setBlocks [ replacedBlocks ] ;
95
- replacedBlocks ++ ;
96
- }
97
- } ) ;
98
- return defaultSetBlocks
99
- }
100
-
101
- updateUnsavedSetBlock ( selectedDay , index , editedSetBlock ) {
102
- const { unsavedSetBlocks } = this . props
103
- let dayEdited = unsavedSetBlocks [ selectedDay ] ;
104
- dayEdited [ index ] = editedSetBlock ; // index 0 = SetBlock with blockTime 1
105
- this . props . updateUnsavedSetblocks ( {
106
- ...unsavedSetBlocks ,
107
- [ selectedDay ] : dayEdited
108
- } )
109
- this . setState ( { enableSubmit : true } )
110
- }
111
-
112
- renderSetBlocks = ( selectedDay ) => {
113
- const { editModeSchedule, currentWeeklySetblocks, unsavedSetBlocks } = this . props ;
114
- selectedDay = moment ( selectedDay ) . format ( 'YYYY-MM-DD' )
115
- const setBlocksByDate = _ . groupBy ( currentWeeklySetblocks , 'date' )
116
- let setBlocks = setBlocksByDate [ selectedDay ] ;
117
-
118
- if ( editModeSchedule && unsavedSetBlocks ) {
119
- // If the match.params don't have a teamMemberId are u seeing your schedule
120
- // As it is your schedule, you can see the empty blocks, to complete then, that's why it is completed with the missing ones
121
- return this . completeWithEmptySetBlocks ( setBlocks ) . map ( ( setBlock , index ) => {
122
- return (
123
- < SetBlock
124
- data = { setBlock }
125
- key = { setBlock . id || ( index + selectedDay ) }
126
- editMode = { editModeSchedule }
127
- updateSetBlock = { ( editedSetBlock ) => this . updateUnsavedSetBlock ( selectedDay , index , editedSetBlock ) }
128
- />
129
- )
130
- } )
131
- } else if ( ! editModeSchedule && setBlocks ) {
132
- return setBlocks . map ( ( setBlock , index ) => {
133
- return < SetBlock data = { setBlock } key = { setBlock . id || index } />
134
- } )
135
- } else {
136
- return (
137
- < Text weight = '600' align = 'center' > This user hasn't committed any Setblocks for this day </ Text >
138
- )
93
+ if ( setBlocks && setBlocks . length > 0 ) { // To avoid iterate if the array is empty, return default
94
+ defaultSetBlocks . forEach ( ( setBlock , index , theArray ) => {
95
+ if ( setBlocks && replacedBlocks < setBlocks . length && setBlock . blockTime === setBlocks [ replacedBlocks ] . blockTime ) {
96
+ theArray [ index ] = setBlocks [ replacedBlocks ] ;
97
+ replacedBlocks ++ ;
98
+ }
99
+ } ) ;
139
100
}
101
+ return defaultSetBlocks
140
102
}
141
103
142
104
renderIfItReady ( ) {
143
105
const {
144
- match, currentTeamMember, fetchingData, selectedDay , editModeSchedule
106
+ match, currentTeamMember, fetchingData, editModeSchedule , enableSubmit
145
107
} = this . props
146
- const { enableSubmit } = this . state
147
108
148
109
if ( fetchingData ) {
149
110
return ( // If you are waiting for the API to respond, render a loading
@@ -164,7 +125,7 @@ class SchedulePage extends React.Component {
164
125
{ match . params . teamMemberId ? currentTeamMember . name : 'Your' }
165
126
{ ' Schedule\'s Page' }
166
127
</ Text >
167
- { this . renderSetBlocks ( selectedDay ) }
128
+ < BlockList />
168
129
{ editModeSchedule && ( < CommitBlock enableSubmit = { enableSubmit } /> ) }
169
130
</ Flex >
170
131
)
@@ -215,6 +176,7 @@ const mapDispatchToProps = (dispatch) => {
215
176
fetchCurrentTeamMemberById : ( params ) => dispatch ( fetchCurrentTeamMemberById ( params ) ) ,
216
177
setSelectedDay : ( selectedDay ) => dispatch ( setSelectedDay ( selectedDay ) ) ,
217
178
setEditModeSchedule : ( editMode ) => dispatch ( setEditModeSchedule ( editMode ) ) ,
179
+ setEnableSubmit : ( enableSubmit ) => dispatch ( setEnableSubmit ( enableSubmit ) ) ,
218
180
updateUnsavedSetblocks : ( unsavedSetBlocks ) => dispatch ( updateUnsavedSetblocks ( unsavedSetBlocks ) )
219
181
} ;
220
182
} ;
0 commit comments