diff --git a/src/components/GuestBookForm.vue b/src/components/GuestBookForm.vue index ba06d13..aaa63d8 100644 --- a/src/components/GuestBookForm.vue +++ b/src/components/GuestBookForm.vue @@ -14,9 +14,10 @@
-
+ {{ $t('guestbook.sign') }} @@ -138,4 +139,9 @@ export default defineComponent({ .icon-parent:hover svg { @apply transform scale-110; } +.button { + position: absolute; + top: 0.25rem; + right: 0.25rem; +} diff --git a/src/locales/en-EN.ts b/src/locales/en-EN.ts index 0b23b25..60c050c 100755 --- a/src/locales/en-EN.ts +++ b/src/locales/en-EN.ts @@ -15,7 +15,8 @@ export default { projects: 'My projects', contact: 'Contact me', env: 'My environment', - guestbook: 'My guestbook' + guestbook: 'My guestbook', + newsletter: 'My newsletter' }, footer: { @@ -200,6 +201,20 @@ export default { success: 'Thank you for your message 😉' }, + newsletter: { + description: 'My newsletter provides a behind-the-scenes look into what I\'m working on and writing about. I frequently share some of my favorite articles I\'ve read, as well as anything fascinating about technology.', + title: 'Subscribe to my newsletter', + subtitle: 'Get emails from me about web development, tech, and early access to new articles.', + placeholder: 'elon@tesla.com', + subscribe: 'Subscribe', + error: 'Error during your subscription ❌', + success: 'Thank you for your subscription 😉', + count: '{count} subscriber(s)', + infos: 'Your information is only used to receive new emails from me.', + no_spam: 'No spam.', + exist: "The email address is already subscribed 👍" + }, + date: { today: 'Today' }, diff --git a/src/locales/fr-FR.ts b/src/locales/fr-FR.ts index 3264c55..39fdca5 100755 --- a/src/locales/fr-FR.ts +++ b/src/locales/fr-FR.ts @@ -15,7 +15,8 @@ export default { projects: 'Mes projets', blog: 'Mon blog', env: 'Mon environnement', - guestbook: "Mon livre d'or" + guestbook: "Mon livre d'or", + newsletter: 'Ma newsletter' }, footer: { @@ -200,6 +201,20 @@ export default { success: 'Merci pour votre message 😉' }, + newsletter: { + description: 'Ma newsletter fournit un aperçu des coulisses de ce sur quoi je travaille et sur quoi j\'écris. Je partage fréquemment certains de mes articles préférés que j\'ai lus, ainsi que tout ce qui est fascinant sur la technologie.', + title: 'Abonnez-vous à ma newsletter', + subtitle: "Recevez des e-mails de ma part sur le développement Web, la technologie et l'accès anticipé aux nouveaux articles.", + placeholder: 'elon@tesla.com', + subscribe: "S'abonner", + error: "Erreur lors de votre abonnement ❌", + success: 'Merci pour votre abonnement 😉', + count: '{count} abonné(s)', + infos: 'Vos informations ne sont utilisées uniquement pour recevoir de nouveaux mails de ma part.', + no_spam: 'Pas de spam.', + exist: "L'adresse email est déjà abonnée 👍" + }, + date: { today: "Aujourd'hui" }, diff --git a/src/pages/blog/_slug.vue b/src/pages/blog/_slug.vue index b6e2988..31125ac 100755 --- a/src/pages/blog/_slug.vue +++ b/src/pages/blog/_slug.vue @@ -145,6 +145,7 @@ export default defineComponent({ likes.value = response.data.likes }).catch((error) => { $sentry.captureEvent(error) + app.error({statusCode: 500}) }) }) @@ -161,6 +162,7 @@ export default defineComponent({ $storage.removeCookie(`${slug.value}`) } else { $sentry.captureEvent(response.data) + app.error({statusCode: 500}) } } else { const response = await $axios.post(`/posts/${post.value?.slug}/like`, {}, { @@ -176,6 +178,7 @@ export default defineComponent({ }) } else { $sentry.captureEvent(response.data) + app.error({statusCode: 500}) } } } diff --git a/src/pages/guestbook.vue b/src/pages/guestbook.vue index 34ef986..73f89c7 100644 --- a/src/pages/guestbook.vue +++ b/src/pages/guestbook.vue @@ -30,7 +30,7 @@ export default defineComponent({ } }, setup() { - const { $axios, $sentry } = useContext() + const { $axios, $sentry, app } = useContext() const guestbook_messages = ref([]) useAsync(async () => { @@ -43,6 +43,7 @@ export default defineComponent({ guestbook_messages.value = response.data.guestbook_messages }) .catch(error => { + app.error({statusCode: 500}) $sentry.captureEvent(error) }) }) diff --git a/src/pages/newsletter.vue b/src/pages/newsletter.vue new file mode 100644 index 0000000..ef2e9f1 --- /dev/null +++ b/src/pages/newsletter.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/types/types.ts b/types/types.ts index a5a99b8..773a947 100755 --- a/types/types.ts +++ b/types/types.ts @@ -65,4 +65,8 @@ interface GuestbookForm { message: string } -export { Form, InfoData, Skill, Experience, Formation, Post, Tag, Project, GuestbookForm } +interface NewsletterForm { + email: string +} + +export { Form, InfoData, Skill, Experience, Formation, Post, Tag, Project, GuestbookForm, NewsletterForm }