import { NEW_PASSWORD } from '@graphql/mutations/auth.js'; import type { INewPasswordResponse } from '@types'; export function useNewPassword() { const { t } = useI18n(); const router = useRouter(); const { $notify } = useNuxtApp(); const localePath = useLocalePath(); const token = useRouteQuery('token', ''); const uid = useRouteQuery('uid', ''); const { mutate, loading, error } = useMutation(NEW_PASSWORD); async function newPassword(password: string, confirmPassword: string) { const result = await mutate({ password, confirmPassword, token: token.value, uid: uid.value, }); if (result?.data?.confirmResetPassword.success) { $notify({ message: t('popup.success.newPassword'), type: 'success', }); await router.push({ path: '/', }); navigateTo(localePath('/')); } } watch(error, (err) => { if (!err) return; console.error('useNewPassword error:', err); let message = t('popup.errors.defaultError'); if (isGraphQLError(err)) { message = err.graphQLErrors?.[0]?.message || message; } else { message = err.message; } $notify({ message, type: 'error', title: t('popup.errors.main'), }); }); return { newPassword, loading, }; }