// noinspection DuplicatedCode import '@maicol07/mwc-card'; import '@maicol07/mwc-layout-grid'; import '../WebComponents/TextField'; import {Inertia} from '@inertiajs/inertia'; import type {Cash} from 'cash-dom'; import type { Vnode, VnodeDOM } from 'mithril'; import redaxios from 'redaxios'; // eslint-disable-next-line import/no-absolute-path import logoUrl from '/images/logo_completo.png'; import LoadingButton from '../Components/LoadingButton'; import Mdi from '../Components/Mdi'; import Page from '../Components/Page'; import {ErrorResponse} from '../types'; import { getFormData, isFormValid, showSnackbar, validatePassword } from '../utils'; export default class ResetPasswordPage extends Page { loading: Cash; parameters: URLSearchParams; oninit(vnode: Vnode) { super.oninit(vnode); this.parameters = new URLSearchParams(window.location.search); } view() { return ( {__('OpenSTAManager')}

{__('Reimposta password')}

); } oncreate(vnode: VnodeDOM) { super.oncreate(vnode); this.loading = $(this.element).find('#reset-password mwc-circular-progress'); } async onResetPasswordButtonClicked(event: PointerEvent) { event.preventDefault(); this.loading.show(); const form = $(this.element).find('#reset-password'); // noinspection DuplicatedCode const password: HTMLElement | undefined = form.find('#password').get(0); const passwordConfirm: HTMLElement | undefined = form.find('#password_confirm').get(0); validatePassword(password as HTMLInputElement, passwordConfirm as HTMLInputElement); if (!isFormValid(form)) { this.loading.hide(); return; } const formData = getFormData(form); formData._token = $('meta[name="csrf-token"]').attr('content') as string; try { await redaxios.put(route('password.resetPassword'), formData); } catch (error: any) { this.loading.hide(); await showSnackbar(Object.values((error as ErrorResponse).data.errors).join(' '), false); return; } Inertia.visit('/'); await showSnackbar( __('Reset della password effettuato con successo. Puoi ora accedere.') ); } }