@@ -53,11 +53,21 @@ class TicketDashboard extends Component {
5353 } ) ;
5454 } ;
5555
56- componentWillReceiveProps ( nextProps ) {
57- this . setState ( {
58- all : nextProps . tickets . tickets ,
59- filtered : nextProps . tickets . tickets ,
60- } ) ;
56+ // componentWillReceiveProps(nextProps) {
57+ // this.setState({
58+ // all: nextProps.tickets.tickets,
59+ // filtered: nextProps.tickets.tickets,
60+ // });
61+ // }
62+
63+ componentDidUpdate ( prevProps ) {
64+ const { tickets } = this . props ;
65+ if ( JSON . stringify ( prevProps . tickets . tickets ) !== JSON . stringify ( tickets . tickets ) ) {
66+ this . setState ( {
67+ all : tickets . tickets ,
68+ filtered : tickets . tickets ,
69+ } )
70+ }
6171 }
6272
6373 setFilteredTickets = ( tickets ) => {
@@ -138,7 +148,7 @@ class TicketDashboard extends Component {
138148 } ) ;
139149 } ;
140150
141- handleRemoveTag = async ( id , tagName ) => {
151+ handleRemoveTag = ( id , tagName ) => {
142152 const tickets = [ ...this . state . all ] ;
143153 tickets . forEach ( ( ele ) => {
144154 if ( ele . _id === id ) {
@@ -166,7 +176,48 @@ class TicketDashboard extends Component {
166176 } ;
167177
168178 render ( ) {
169- const { spinner, editorMode, viewingTicket, ticket, all, filtered, notificationDrawer, notifications } = this . state ;
179+ const {
180+ spinner,
181+ editorMode,
182+ viewingTicket,
183+ ticket,
184+ all,
185+ filtered,
186+ notificationDrawer,
187+ notifications,
188+ } = this . state ;
189+ const ticketDashboard = (
190+ < React . Fragment >
191+ < div className = "ticket-status" >
192+ < TicketFilter
193+ tickets = { all }
194+ filtered = { filtered }
195+ clear = { this . clearFilters }
196+ toggleNewTicketEditor = { this . toggleNewTicketEditor }
197+ setFiltered = { this . setFilteredTickets }
198+ />
199+ </ div >
200+ { ! ! all . length && (
201+ < div className = "ticket-content" >
202+ < TicketContent
203+ viewTicket = { this . handleViewTicket }
204+ tickets = { filtered }
205+ />
206+ </ div >
207+ ) }
208+ </ React . Fragment >
209+ ) ;
210+ const ticeketDiscussion = (
211+ < TicketDisscussion
212+ addTag = { this . handleAddTag }
213+ back = { this . handleViewTicket }
214+ currentUser = { this . props . user }
215+ removeTag = { this . handleRemoveTag }
216+ deleteTicket = { this . deleteTicket }
217+ ticketId = { viewingTicket }
218+ singleUpdate = { this . handleTicketSingleUpdate }
219+ />
220+ ) ;
170221 return (
171222 < div className = "ticket" >
172223 < div className = "navigation" >
@@ -194,44 +245,14 @@ class TicketDashboard extends Component {
194245 < NotificationsNoneOutlinedIcon />
195246 </ Button >
196247 </ div >
197- { ! editorMode && ! viewingTicket && (
198- < React . Fragment >
199- < div className = "ticket-status" >
200- < TicketFilter
201- tickets = { all }
202- filtered = { filtered }
203- clear = { this . clearFilters }
204- toggleNewTicketEditor = { this . toggleNewTicketEditor }
205- setFiltered = { this . setFilteredTickets }
206- />
207- </ div >
208- { ! ! all . length && (
209- < div className = "ticket-content" >
210- < TicketContent
211- viewTicket = { this . handleViewTicket }
212- tickets = { filtered }
213- />
214- </ div >
215- ) }
216- </ React . Fragment >
217- ) }
248+ { ! editorMode && ! viewingTicket && ticketDashboard }
218249 { editorMode && ! viewingTicket && (
219250 < NewTicketEditor
220251 save = { this . handleCreateNewTicket }
221252 cancel = { ( ) => this . toggleNewTicketEditor ( false ) }
222253 />
223254 ) }
224- { viewingTicket && (
225- < TicketDisscussion
226- addTag = { this . handleAddTag }
227- back = { this . handleViewTicket }
228- currentUser = { this . props . user }
229- removeTag = { this . handleRemoveTag }
230- deleteTicket = { this . deleteTicket }
231- ticketId = { viewingTicket }
232- singleUpdate = { this . handleTicketSingleUpdate }
233- />
234- ) }
255+ { viewingTicket && ticeketDiscussion }
235256 </ div >
236257 </ LoadingOverlay >
237258 < Drawer
0 commit comments