|
|
@@ -16,69 +16,51 @@
|
|
|
name="mdi-arrow-left"
|
|
|
size="sm"
|
|
|
color="primary"
|
|
|
- @click="$router.back()"
|
|
|
+ @click="currentStep === 'resend-email' ? currentStep = 'email-data' : $router.back()"
|
|
|
/>
|
|
|
<span class="text-h6 text-weight-regular">Esqueci minha senha</span>
|
|
|
</div>
|
|
|
|
|
|
- <div class="column items-center full-width">
|
|
|
- <q-img
|
|
|
- :src="Logo"
|
|
|
- style="max-width: 379px; max-height: 106px; height: 100%; width: 100%"
|
|
|
- />
|
|
|
-
|
|
|
- <div
|
|
|
- class="items-center full-width q-px-lg q-mt-xl"
|
|
|
- style="display: flex; gap: 12px"
|
|
|
- >
|
|
|
- <div class="bg-primary" style="height: 1px; flex: 1"></div>
|
|
|
- <q-icon name="mdi-chevron-down" size="lg" color="warning" />
|
|
|
- <div class="bg-primary" style="height: 1px; flex: 1"></div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="text-body1 q-my-lg text-primary" style="font-weight: 400">
|
|
|
- Informe o seu e-mail para redefinir sua senha
|
|
|
- </div>
|
|
|
-
|
|
|
- <q-form class="full-width q-px-lg column q-gutter-y-lg q-mt-xs">
|
|
|
- <DefaultInput
|
|
|
- v-model="email"
|
|
|
- type="email"
|
|
|
- lazy-rules
|
|
|
- :label="$t('common.terms.email')"
|
|
|
- :rules="[inputRules.required]"
|
|
|
- />
|
|
|
+ <EmailDataStep
|
|
|
+ v-if="currentStep === 'email-data'"
|
|
|
+ :loading
|
|
|
+ @submit="handleSubmit"
|
|
|
+ />
|
|
|
|
|
|
- <div>
|
|
|
- <q-btn
|
|
|
- class="full-width q-mt-md"
|
|
|
- color="primary-2"
|
|
|
- label="Continuar"
|
|
|
- size="md"
|
|
|
- padding="sm"
|
|
|
- type="submit"
|
|
|
- :loading
|
|
|
- >
|
|
|
- <template #loading>
|
|
|
- <q-spinner />
|
|
|
- </template>
|
|
|
- </q-btn>
|
|
|
- </div>
|
|
|
- </q-form>
|
|
|
- </div>
|
|
|
+ <ResendEmailStep
|
|
|
+ v-else-if="currentStep === 'resend-email'"
|
|
|
+ :email
|
|
|
+ :loading
|
|
|
+ @resend="handleResend"
|
|
|
+ />
|
|
|
</div>
|
|
|
</q-page>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import Logo from "src/assets/images/logo.svg";
|
|
|
-import DefaultInput from "src/components/defaults/DefaultInput.vue";
|
|
|
-import { useInputRules } from "src/composables/useInputRules";
|
|
|
import { ref } from "vue";
|
|
|
+import EmailDataStep from "./forgot-password/EmailDataStep.vue";
|
|
|
+import ResendEmailStep from "./forgot-password/ResendEmailStep.vue";
|
|
|
|
|
|
+const currentStep = ref("email-data");
|
|
|
const email = ref("");
|
|
|
+const loading = ref(false);
|
|
|
+
|
|
|
+async function handleSubmit(submittedEmail) {
|
|
|
+ loading.value = true;
|
|
|
+ email.value = submittedEmail;
|
|
|
+ // TODO: chamar API de recuperação de senha
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 500));
|
|
|
+ loading.value = false;
|
|
|
+ currentStep.value = "resend-email";
|
|
|
+}
|
|
|
|
|
|
-const { inputRules } = useInputRules();
|
|
|
+async function handleResend() {
|
|
|
+ loading.value = true;
|
|
|
+ // TODO: chamar API de recuperação de senha
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 500));
|
|
|
+ loading.value = false;
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|