I'm new to vue and am trying to create a view that uses code to verify an email after someone signs up. I currently only have views and nothing to connect to the email or generate code. I'm using pug, typescript and scss in this vue project. I know this problem is usually due to typos, but I can't find it. idea?
.vue file:
<template lang="pug"> .Verify .Verify__focus .Verify__title Verify Your Email .Verify__form .Verify__field va-input.Verify__textInput( type="text", name="verificationCode", placeholder="Verification Code", v-model="text", @keyup.enter="verifyUser()" ) template(v-slot:prependInner="") va-icon(name="check_circle") .Login__buttonRow va-button.Login__submitButton(@click="verifyUser") Verify </template> <script lang="ts"> import {defineComponent, ref} from "vue"; import useVerify from "@/views/Signup/Verify/useVerify"; /** * Assemble the Verify reactivity. * * @returns Data for the component to use. * - verificationCode: verification code the user is sent * - verifyUser: function to call to carry out the verification operation. */ function setup() { const verificationCode = ref(""); const { verifyUser } = useVerify(verificationCode); return { verificationCode, verifyUser, }; } export default defineComponent({ name: "Verify", setup, }); </script> <style lang="scss"> .Verify { position: fixed; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; &__focus { width: 360px; max-width: 95vw; } &__field { padding-bottom: 0.5em; } &__buttonRow { display: flex; justify-content: flex-end; } &__title { font-size: 1.2em; padding-bottom: 0.5em; text-align: center; } } </style>
.ts file:
import { Ref } from "vue"; import { useApolloClient } from "@vue/apollo-composable"; import { ValidatedUser } from "@/models"; import { gql } from "graphql-tag"; const query = gql` query Verify($input: Verify) { Verify(input: $input) { __typename token user { email id } } } `; /** * Retrive apollo client and provide useVerify * function to validate input and execute Verify process. * * @param verificationCode - reactively wrapped email address of the user signing up. * @returns useVerify composition functionality. */ export default function useVerify(verificationCode: Ref<string>): { verifyUser: () => Promise<void>; } { const { resolveClient } = useApolloClient(); /** * Execute the Verify process for the given verification code. */ async function verifyUser(): Promise<void> { if (verificationCode.value !== "123456") { return; } else{ console.log("worked"); //TODO: auth here } const client = resolveClient(); const variables = { input: { username: verificationCode.value }, }; const response = await client.query({ query, variables }); const validatedUser: ValidatedUser = response.data.Verify; console.log("USER:", validatedUser); console.log("verificationCode: ", variables); } return { verifyUser }; }
Thanks in advance!
It seems this line triggered an error in the template