feat: implement email unsubscribe page

- Create /email/unsubscribe/[id] route with page and component
- Add share-id validation and 404 on invalid links
- Add bilingual translations (English/Croatian)
- Implement unsubscribe UI with success/error states
- Call unsubscribeTenantEmail server action on button click

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Knee Cola
2025-12-29 18:32:04 +01:00
parent 2bc7bcdc1e
commit 0f06394984
4 changed files with 172 additions and 0 deletions

View File

@@ -446,6 +446,33 @@
"unknown": "An error occurred during verification. Please try again or contact your landlord."
}
},
"email-unsubscribe-page": {
"title": "Unsubscribe from Email Notifications",
"about": {
"title": "About Evidencija Režija",
"description": "Evidencija Režija is a utility bills tracking application that helps landlords manage their properties and notify tenants about rent and utility bills."
},
"why": {
"title": "Why are you receiving emails?",
"description": "Your landlord has configured the application to send rent due and/or utility bills notifications to your email address."
},
"what-happens": {
"title": "What happens after unsubscribing?",
"description": "After you unsubscribe, you will no longer receive any rent due or utility bill notifications via email. Your landlord will need to contact you through other means."
},
"button": {
"unsubscribe": "Confirm Unsubscribe",
"unsubscribing": "Unsubscribing..."
},
"success": {
"title": "Successfully Unsubscribed",
"message": "You have been unsubscribed from email notifications. You will no longer receive rent or utility bill reminders."
},
"error": {
"title": "Unsubscribe Failed",
"unknown": "An error occurred while unsubscribing. Please try again or contact your landlord."
}
},
"privacy-policy-page": {
"title": "Privacy Policy for the Utility Bill Tracking Web App",
"meta": {

View File

@@ -443,6 +443,33 @@
"unknown": "Došlo je do greške prilikom potvrde. Molimo pokušajte ponovno ili kontaktirajte vašeg vlasnika nekretnine."
}
},
"email-unsubscribe-page": {
"title": "Odjava od Email Obavijesti",
"about": {
"title": "O aplikaciji Evidencija Režija",
"description": "Evidencija Režija je aplikacija za praćenje režija koja pomaže vlasnicicama nekretnina da upravljaju svojim objektima i obavještavaju zakupce o dospjeloj najamnini i režijama."
},
"why": {
"title": "Zašto primate emailove?",
"description": "Vaš vlasnik nekretnine je konfigurirao aplikaciju da šalje obavijesti o dospjeloj najamnini i/ili režijama na vašu email adresu."
},
"what-happens": {
"title": "Što se događa nakon odjave?",
"description": "Nakon što se odjavite, više nećete primati nikakve obavijesti o dospjeloj najamnini ili režijama putem emaila. Vaš vlasnik nekretnine će vas morati kontaktirati drugim putem."
},
"button": {
"unsubscribe": "Potvrdi Odjavu",
"unsubscribing": "Odjava u tijeku..."
},
"success": {
"title": "Uspješno Odjavljeni",
"message": "Odjavljeni ste od email obavijesti. Više nećete primati podsjednike o najamnini ili režijama."
},
"error": {
"title": "Odjava Nije Uspjela",
"unknown": "Došlo je do greške prilikom odjave. Molimo pokušajte ponovno ili kontaktirajte vašeg vlasnika nekretnine."
}
},
"privacy-policy-page": {
"title": "Politika privatnosti za web aplikaciju za evidenciju režija",
"meta": {