| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  | <div class="accounts-page"> | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |   {#if loading} | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     <LoadingPage /> | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |   {:elseif accounts && accounts.length} | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     <ul class="accounts-results"> | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |       {#each accounts as account} | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |         <AccountSearchResult | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |           {account} | 
					
						
							|  |  |  |           actions={accountActions} | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |           on:click="onClickAction(event)" | 
					
						
							|  |  |  |         /> | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |       {/each} | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     </ul> | 
					
						
							| 
									
										
										
										
											2018-05-01 17:05:36 -07:00
										 |  |  |   {/if} | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  | </div> | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |   .accounts-page { | 
					
						
							|  |  |  |     padding: 20px 20px; | 
					
						
							| 
									
										
										
										
											2018-02-10 16:03:28 -08:00
										 |  |  |     position: relative; | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |   } | 
					
						
							|  |  |  |   .accounts-results { | 
					
						
							|  |  |  |     list-style: none; | 
					
						
							|  |  |  |     box-sizing: border-box; | 
					
						
							|  |  |  |     border: 1px solid var(--main-border); | 
					
						
							|  |  |  |     border-radius: 2px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   @media (max-width: 767px) { | 
					
						
							|  |  |  |     .accounts-page { | 
					
						
							|  |  |  |       padding: 20px 10px; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |   import { store } from '../_store/store' | 
					
						
							|  |  |  |   import LoadingPage from '../_components/LoadingPage.html' | 
					
						
							|  |  |  |   import AccountSearchResult from '../_components/search/AccountSearchResult.html' | 
					
						
							|  |  |  |   import { toast } from '../_utils/toast' | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |   import { on } from '../_utils/eventBus' | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |   // TODO: paginate | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |   export default { | 
					
						
							| 
									
										
										
										
											2018-04-19 21:38:01 -07:00
										 |  |  |     async oncreate () { | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |       try { | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |         await this.refreshAccounts() | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |       } catch (e) { | 
					
						
							|  |  |  |         toast.say('Error: ' + (e.name || '') + ' ' + (e.message || '')) | 
					
						
							|  |  |  |       } finally { | 
					
						
							| 
									
										
										
										
											2018-08-29 21:42:57 -07:00
										 |  |  |         this.set({ loading: false }) | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |       on('refreshAccountsList', this, () => this.refreshAccounts()) | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     }, | 
					
						
							|  |  |  |     data: () => ({ | 
					
						
							|  |  |  |       loading: true, | 
					
						
							| 
									
										
										
										
											2018-04-30 19:06:08 -07:00
										 |  |  |       accounts: [], | 
					
						
							|  |  |  |       accountActions: void 0 | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     }), | 
					
						
							|  |  |  |     store: () => store, | 
					
						
							|  |  |  |     components: { | 
					
						
							|  |  |  |       LoadingPage, | 
					
						
							|  |  |  |       AccountSearchResult | 
					
						
							| 
									
										
										
										
											2018-04-28 14:19:39 -07:00
										 |  |  |     }, | 
					
						
							|  |  |  |     methods: { | 
					
						
							|  |  |  |       onClickAction (event) { | 
					
						
							|  |  |  |         let { action, accountId } = event | 
					
						
							|  |  |  |         action.onclick(accountId) | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       async refreshAccounts () { | 
					
						
							|  |  |  |         let { accountsFetcher } = this.get() | 
					
						
							|  |  |  |         let accounts = await accountsFetcher() | 
					
						
							|  |  |  |         this.set({ accounts: accounts }) | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2018-02-10 15:31:26 -08:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </script> |