feat: Add navigation link to return to creator page in PaymentCompleted and PaymentFailed views, update styles for improved layout
This commit is contained in:
@@ -1,6 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<!-- Navigation Link at the top -->
|
||||||
|
<div class="navigation-link">
|
||||||
|
<button class="link-button" @click="goBack()">
|
||||||
|
<v-icon>mdi-arrow-left</v-icon>
|
||||||
|
{{ t('returnToCreator') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
{{ t('title') }}
|
{{ t('title') }}
|
||||||
@@ -28,19 +35,8 @@
|
|||||||
<p>
|
<p>
|
||||||
{{ t('receipt') }}
|
{{ t('receipt') }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- Continue Button -->
|
|
||||||
<div class="card-actions">
|
|
||||||
<button
|
|
||||||
class="action-button"
|
|
||||||
@click="goBack()">
|
|
||||||
{{ t('continue') }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -66,28 +62,31 @@ function goBack() {
|
|||||||
"message": "Your payment has been processed successfully.",
|
"message": "Your payment has been processed successfully.",
|
||||||
"usernameDefault": "the creator",
|
"usernameDefault": "the creator",
|
||||||
"receipt": "A receipt has been sent to your email.",
|
"receipt": "A receipt has been sent to your email.",
|
||||||
"continue": "Continue to"
|
"continue": "Continue to",
|
||||||
|
"returnToCreator": "Return to creator page"
|
||||||
},
|
},
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Paiement réussi !",
|
"title": "Paiement réussi !",
|
||||||
"message": "Votre paiement a été traité avec succès.",
|
"message": "Votre paiement a été traité avec succès.",
|
||||||
"usernameDefault": "le créateur",
|
"usernameDefault": "le créateur",
|
||||||
"receipt": "Un reçu a été envoyé à votre email.",
|
"receipt": "Un reçu a été envoyé à votre email.",
|
||||||
"continue": "Continuer vers"
|
"continue": "Continuer vers",
|
||||||
|
"returnToCreator": "Retourner à la page du créateur"
|
||||||
},
|
},
|
||||||
"es": {
|
"es": {
|
||||||
"title": "¡Pago exitoso!",
|
"title": "¡Pago exitoso!",
|
||||||
"message": "Su pago ha sido procesado con éxito.",
|
"message": "Su pago ha sido procesado con éxito.",
|
||||||
"usernameDefault": "el creador",
|
"usernameDefault": "el creador",
|
||||||
"receipt": "Se ha enviado un recibo a su correo electrónico.",
|
"receipt": "Se ha enviado un recibo a su correo electrónico.",
|
||||||
"continue": "Continuar a"
|
"continue": "Continuar a",
|
||||||
|
"returnToCreator": "Volver a la página del creador"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.container {
|
.container {
|
||||||
@apply min-h-screen;
|
@apply p-5;
|
||||||
@apply flex items-center justify-center;
|
@apply flex items-center justify-center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,29 +94,49 @@ function goBack() {
|
|||||||
@apply bg-hSurface text-hOnSurface;
|
@apply bg-hSurface text-hOnSurface;
|
||||||
@apply p-8;
|
@apply p-8;
|
||||||
@apply font-sans;
|
@apply font-sans;
|
||||||
@apply rounded-3xl;
|
@apply rounded-2xl;
|
||||||
|
@apply shadow-2xl;
|
||||||
|
@apply relative;
|
||||||
|
@apply w-full;
|
||||||
|
@apply max-w-2xl;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-actions {
|
.card::before {
|
||||||
@apply flex items-center justify-end;
|
@apply absolute inset-0;
|
||||||
|
@apply rounded-2xl;
|
||||||
|
@apply p-[1px];
|
||||||
|
content: '';
|
||||||
|
background: linear-gradient(135deg, rgba(64, 64, 64, 1) 0%, rgba(64, 64, 64, 0) 20%, rgba(64, 64, 64, 0.5) 100%);
|
||||||
|
mask: linear-gradient(#fff 0 0) content-box,
|
||||||
|
linear-gradient(#fff 0 0);
|
||||||
|
mask-composite: exclude;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-link {
|
||||||
|
@apply flex items-center;
|
||||||
|
@apply mb-6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-button {
|
||||||
|
@apply flex items-center gap-2;
|
||||||
|
@apply text-hutopyPrimary hover:text-hutopySecondary;
|
||||||
|
@apply transition-colors;
|
||||||
|
@apply duration-300;
|
||||||
|
@apply font-medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@apply text-6xl;
|
@apply text-6xl;
|
||||||
@apply font-medium;
|
@apply font-medium;
|
||||||
@apply mb-8;
|
@apply mb-8;
|
||||||
|
@apply text-center;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
@apply text-lg;
|
@apply text-lg;
|
||||||
@apply font-medium;
|
@apply font-medium;
|
||||||
@apply mb-8;
|
@apply mb-8;
|
||||||
}
|
@apply text-center;
|
||||||
|
|
||||||
.action-button {
|
|
||||||
@apply bg-hPrimary text-hOnPrimary;
|
|
||||||
@apply p-4 m-4;
|
|
||||||
@apply text-lg;
|
|
||||||
@apply rounded-xl;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h1>{{ t('title') }}</h1>
|
<!-- Navigation Link at the top -->
|
||||||
<p>{{ t('message') }}</p>
|
<div class="navigation-link">
|
||||||
<div class="card-actions">
|
<button class="link-button" @click="goBack()">
|
||||||
<button class="action-button" @click="goBack()">
|
<v-icon>mdi-arrow-left</v-icon>
|
||||||
{{ t('retry') }}
|
{{ t('returnToCreator') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<h1>{{ t('title') }}</h1>
|
||||||
|
<p>{{ t('message') }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -31,54 +34,77 @@ function goBack() {
|
|||||||
"en": {
|
"en": {
|
||||||
"title": "Payment Failed",
|
"title": "Payment Failed",
|
||||||
"message": "We couldn't process your payment.",
|
"message": "We couldn't process your payment.",
|
||||||
"retry": "Try Again"
|
"retry": "Try Again",
|
||||||
|
"returnToCreator": "Return to creator page"
|
||||||
},
|
},
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Échec du paiement",
|
"title": "Échec du paiement",
|
||||||
"message": "Nous n'avons pas pu traiter votre paiement.",
|
"message": "Nous n'avons pas pu traiter votre paiement.",
|
||||||
"retry": "Réessayer"
|
"retry": "Réessayer",
|
||||||
|
"returnToCreator": "Retourner à la page du créateur"
|
||||||
},
|
},
|
||||||
"es": {
|
"es": {
|
||||||
"title": "Pago fallido",
|
"title": "Pago fallido",
|
||||||
"message": "No pudimos procesar su pago.",
|
"message": "No pudimos procesar su pago.",
|
||||||
"retry": "Intentar de nuevo"
|
"retry": "Intentar de nuevo",
|
||||||
|
"returnToCreator": "Volver a la página del creador"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.container {
|
.container {
|
||||||
@apply min-h-screen;
|
|
||||||
@apply flex items-center justify-center;
|
@apply flex items-center justify-center;
|
||||||
|
@apply p-5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
@apply bg-hSurface text-hOnSurface;
|
@apply bg-hSurface text-hOnSurface;
|
||||||
@apply p-8;
|
@apply p-8;
|
||||||
@apply font-sans;
|
@apply font-sans;
|
||||||
@apply rounded-3xl;
|
@apply rounded-2xl;
|
||||||
|
@apply shadow-2xl;
|
||||||
|
@apply relative;
|
||||||
|
@apply w-full;
|
||||||
|
@apply max-w-2xl;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-actions {
|
.card::before {
|
||||||
@apply flex items-center justify-end;
|
content: '';
|
||||||
|
@apply absolute inset-0;
|
||||||
|
@apply rounded-2xl;
|
||||||
|
@apply p-[1px];
|
||||||
|
background: linear-gradient(135deg, rgba(64, 64, 64, 1) 0%, rgba(64, 64, 64, 0) 20%, rgba(64, 64, 64, 0.5) 100%);
|
||||||
|
mask: linear-gradient(#fff 0 0) content-box,
|
||||||
|
linear-gradient(#fff 0 0);
|
||||||
|
mask-composite: exclude;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-link {
|
||||||
|
@apply flex items-center;
|
||||||
|
@apply mb-6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-button {
|
||||||
|
@apply flex items-center gap-2;
|
||||||
|
@apply text-hutopyPrimary hover:text-hutopySecondary;
|
||||||
|
@apply transition-colors;
|
||||||
|
@apply duration-300;
|
||||||
|
@apply font-medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@apply text-6xl;
|
@apply text-6xl;
|
||||||
@apply font-medium;
|
@apply font-medium;
|
||||||
@apply mb-8;
|
@apply mb-8;
|
||||||
|
@apply text-center;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
@apply text-lg;
|
@apply text-lg;
|
||||||
@apply font-medium;
|
@apply font-medium;
|
||||||
@apply mb-8;
|
@apply mb-8;
|
||||||
}
|
@apply text-center;
|
||||||
|
|
||||||
.action-button {
|
|
||||||
@apply bg-hPrimary text-hOnPrimary;
|
|
||||||
@apply p-4 m-4;
|
|
||||||
@apply text-lg;
|
|
||||||
@apply rounded-xl;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user