import { action } from '@ember/object'; import { service } from '@ember/service'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import '@simplewebauthn/browser'; import { startAuthentication, startRegistration, } from '@simplewebauthn/browser'; import type AuthService from 'frontend-reactive/services/auth'; export interface PasskeySignature { // The arguments accepted by the component Args: {}; // Any blocks yielded by the component Blocks: { default: []; }; // The element to which `...attributes` is applied in the component template Element: null; } export default class Auth extends Component { @tracked username: string = ''; @tracked error: string | undefined; @tracked isLogin = true; @service declare auth: AuthService; @action async startLogin() { try { this.auth.startLogin(this.username); } catch (error: any) { this.error = 'Error: ' + error.message; } } @action async startRegistration() { try { this.auth.startRegistration(this.username); } catch (error: any) { this.error = 'Error: ' + error.message; } } }