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

{__('Reimposta password')}

); } oncreate(vnode) { 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'); const password: TextField = form.find('#password').get(0); const passwordConfirm: TextField = form.find('#password_confirm').get(0); passwordConfirm.setCustomValidity( password.value !== passwordConfirm.value ? __('Le password non corrispondono') : '' ); if (!isFormValid(form)) { this.loading.hide(); return; } const formData = getFormData(form); formData._token = $('meta[name="csrf-token"]').attr('content'); try { await redaxios.put(window.route('password.resetPassword'), formData); } catch (error) { // noinspection ES6MissingAwait showSnackbar(Object.values(error.data.errors).join(' '), false); this.loading.hide(); return; } Inertia.visit('/'); // noinspection ES6MissingAwait showSnackbar(__('Reset della password effettuato con successo. Puoi ora accedere.')); } }