|  |  | @ -1,7 +1,7 @@ | 
			
		
	
		
			
				
					|  |  |  | <script lang="ts"> | 
			
		
	
		
			
				
					|  |  |  |   import type {CognitoUser} from "amazon-cognito-identity-js"; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   import { signIn } from "../clients/amplify";   | 
			
		
	
		
			
				
					|  |  |  |   import { forgotPassword, forgotPasswordSubmit, signIn } from "../clients/amplify";   | 
			
		
	
		
			
				
					|  |  |  |   import authStore from "../stores/auth"; | 
			
		
	
		
			
				
					|  |  |  |   import Modal from "../components/Modal.svelte"; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -10,10 +10,21 @@ | 
			
		
	
		
			
				
					|  |  |  |   let password = ""; | 
			
		
	
		
			
				
					|  |  |  |   let newPassword = ""; | 
			
		
	
		
			
				
					|  |  |  |   let newPasswordRepeat = ""; | 
			
		
	
		
			
				
					|  |  |  |   let resetCode = ""; | 
			
		
	
		
			
				
					|  |  |  |   let settingNewPassword = false; | 
			
		
	
		
			
				
					|  |  |  |   let resettingPassword = false; | 
			
		
	
		
			
				
					|  |  |  |   let error = null; | 
			
		
	
		
			
				
					|  |  |  |   let done = false; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   function startPasswordReset() { | 
			
		
	
		
			
				
					|  |  |  |     forgotPassword(username).then(() => { | 
			
		
	
		
			
				
					|  |  |  |       settingNewPassword = true; | 
			
		
	
		
			
				
					|  |  |  |       resettingPassword = true; | 
			
		
	
		
			
				
					|  |  |  |     }).catch(err => { | 
			
		
	
		
			
				
					|  |  |  |       error = "Reset request failed: " + err.message; | 
			
		
	
		
			
				
					|  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   function login() { | 
			
		
	
		
			
				
					|  |  |  |     error = null; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -23,6 +34,15 @@ | 
			
		
	
		
			
				
					|  |  |  |         return; | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       if (resettingPassword) { | 
			
		
	
		
			
				
					|  |  |  |         forgotPasswordSubmit(username, resetCode, newPassword).then(() => { | 
			
		
	
		
			
				
					|  |  |  |           authStore.check(); | 
			
		
	
		
			
				
					|  |  |  |           settingNewPassword = false; | 
			
		
	
		
			
				
					|  |  |  |           resettingPassword = false; | 
			
		
	
		
			
				
					|  |  |  |         }).catch(err => { | 
			
		
	
		
			
				
					|  |  |  |           error = "Reset submit failed: " + err.message; | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |       } else {   | 
			
		
	
		
			
				
					|  |  |  |         user.completeNewPasswordChallenge(newPassword, null, { | 
			
		
	
		
			
				
					|  |  |  |           onSuccess: () => { | 
			
		
	
		
			
				
					|  |  |  |             done = true; | 
			
		
	
	
		
			
				
					|  |  | @ -32,6 +52,7 @@ | 
			
		
	
		
			
				
					|  |  |  |             error = err | 
			
		
	
		
			
				
					|  |  |  |           }, | 
			
		
	
		
			
				
					|  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |       signIn(username, password).then(newUser => { | 
			
		
	
		
			
				
					|  |  |  |         if (!newUser) { | 
			
		
	
	
		
			
				
					|  |  | @ -49,7 +70,7 @@ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         user = newUser; | 
			
		
	
		
			
				
					|  |  |  |       }).catch(err => { | 
			
		
	
		
			
				
					|  |  |  |         error = err | 
			
		
	
		
			
				
					|  |  |  |         error = err.message | 
			
		
	
		
			
				
					|  |  |  |       }); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
	
		
			
				
					|  |  | @ -59,16 +80,24 @@ | 
			
		
	
		
			
				
					|  |  |  |   <form on:submit|preventDefault={login}> | 
			
		
	
		
			
				
					|  |  |  |     <label for="username">Username</label> | 
			
		
	
		
			
				
					|  |  |  |     <input name="username" type="text" bind:value={username} /> | 
			
		
	
		
			
				
					|  |  |  |     {#if !resettingPassword} | 
			
		
	
		
			
				
					|  |  |  |       <label for="password">Password</label> | 
			
		
	
		
			
				
					|  |  |  |       <input name="password" type="password" bind:value={password} /> | 
			
		
	
		
			
				
					|  |  |  |     {:else} | 
			
		
	
		
			
				
					|  |  |  |       <label for="resetCode">Code From Email</label> | 
			
		
	
		
			
				
					|  |  |  |       <input name="resetCode" type="text" bind:value={resetCode} /> | 
			
		
	
		
			
				
					|  |  |  |     {/if} | 
			
		
	
		
			
				
					|  |  |  |     {#if settingNewPassword} | 
			
		
	
		
			
				
					|  |  |  |       <label for="newPassword">New Password</label> | 
			
		
	
		
			
				
					|  |  |  |       <input name="newPassword" type="password" bind:value={newPassword} /> | 
			
		
	
		
			
				
					|  |  |  |       <label for="newPasswordRepeat">New Password</label> | 
			
		
	
		
			
				
					|  |  |  |       <label for="newPasswordRepeat">Repeat Password</label> | 
			
		
	
		
			
				
					|  |  |  |       <input name="newPasswordRepeat" type="password" bind:value={newPasswordRepeat} /> | 
			
		
	
		
			
				
					|  |  |  |     {/if} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <hr /> | 
			
		
	
		
			
				
					|  |  |  |     <button type="submit">Login</button> | 
			
		
	
		
			
				
					|  |  |  |     {#if !settingNewPassword} | 
			
		
	
		
			
				
					|  |  |  |       <button disabled={username === ""} on:click|preventDefault={startPasswordReset}>Forgot Password</button> | 
			
		
	
		
			
				
					|  |  |  |     {/if} | 
			
		
	
		
			
				
					|  |  |  |   </form> | 
			
		
	
		
			
				
					|  |  |  | </Modal> |